C is a general programming language. Small compiler, lots of free compilers. Quite easy to learn once you get the hang of the syntax. It is available on almost every platform you can think of. Note that there are 3 main variants of C: K&R, C89 and C99. Most compilers are C89.
C++ is an Object Oriented variant of C. If you are going the C++ route, don't learn C first: you'll get into a lot of bad habits. However, it is a big language with lots of new concepts. If you are intending to write GUIs, this is probably the way to go. It is not available on as many platforms as C. There is a standard library of algorithms STL which does all the standard stuff like linked lists, vectors etc. There are lots of free compilers about.
C# is a Microsoft Language. It is big, slow, still being developed and a very bad excuse for a faster processor. You can download the Express version from the microsoft site or get the CDs for £3. Don't try it on a system less than 1GHz 256Mb. It is XP based but will work on 2000. It is not a good first language.