if you ask out of interest, then yes I guess C is 'faster' than C++.
However, in practical terms, it's the algorithms you use, the data structures and the way you deal with them (page fault!) that have by far the most significant performance impact on your program.
I personally feel that unless you can achieve 2x the performance, you should do an optimisation, and thats assuming you are optimising in the first place. Often times performance problems will simply come down to whats already been mentioned, unintentional overuse of allocation, function calls, etc. Not really a language issue.
As for C#, in .net 1.1 the performance was within approximatly 10% of compiled C++ (using VS2003 compiler) with the exception of floating point which I believe ran in double precision by default (not 100% sure) - although I'm quite sure this has been fixed in 2.0 (and no doubt has other performance enhancements).
The real question is what language has most *potential* performance. In this case, it's actually the managed languages such as .net and to a lesser extent java that will (with time) provide the best performance. For example most native compiled apps may not take advantage of SSE1-3, 3dNow, MMX etc, yet a JIT compiled app can do so (or future tech). I've already had apps I've ported run faster in C# than C++ (although not always of course).