It's a subjective choice, obviously. Depends on your needs and goals. Personally, I'd say C is the best if you want to learn the nuts-n-bolts of programming. The language is small and relatively easy to bend your brain around, and the library is the same. A lot of programming profs will tell you to write your own library routines rather than relying on someone else's work. Probably good advice for the student.
I use C# for work and most of my personal stuff as well, though I've spent some time with Ruby and *really* like it. I think you could learn the fundamentals of programming rather handily with Ruby, as long as you didn't rely too much (or at all) on it's fairly nice library.
True, modern programming is often about using libraries and components and the such (especially according to your boss), but still, you want to learn to walk before you try to run. I'm sure there are other cliches that apply as well. And heck, sometimes a cliche is true.
Just one guy's opinion.