The extension doesn't mean anything. You can name a file anything you want, and linux will look at the header. But generally, the convention is to name files needing a C compiler *.c. Anything that needs compiling is generally referred to as a "program", not a script.
Scripting uses an interpreter to read the commands in the file to do something. Most linux distros use Bash as their commandline. So you can generate a bash script that will be a series of commands that you can run in bash by typing /path/to/scriptname.sh
. These files start with a special line to tell you what language. See here
for more info.