C++. Definitely..
C# executes in a runtime enviroment so it can't access specific machine functions nearly as easily a C. It would be quite similar to making a hack in Java.... :{ ew.
C however isn't as complex as C# and doesn't offer classes or many of the benefits that come with object oriented program.
C++ is right in the middle. Not completely completely as portable as C#, but offers all the functionality of C while having the ability to use classes. Only problem is it only runs on a native Windows environment.