I use C++, every company I've worked for has used C or C++. There's some assembly in there but usually very little, and shaders are written in their own language. It's increasingly common for parts of the game to be written in scripting languages as well (Python, Lua, LISP, etc.) but that's usually the behavioural parts rather than the graphics or heavily processor intensive parts.
Speed and control are the major reasons why C++ is still the language of choice; although both are becoming increasingly less important as machines get faster and have more memory.
So, to answer the OP, to a good first approximation games are written in C++.
No, you don't. That's a sloppy and ugly way of doing it. It also doesn't deal with the real problems of cross-platform development: differences in hardware capability and controls.
Speed and control are the major reasons why C++ is still the language of choice; although both are becoming increasingly less important as machines get faster and have more memory.
So, to answer the OP, to a good first approximation games are written in C++.
Actually C# could be more portable than C/C++. If there was a VM written for the PS3 it would be much easier to port your programs across. If your writing it in C/C++ you need tons of preprocessor directives to deal with the differences in architecture (PPC/x86 etc..)
No, you don't. That's a sloppy and ugly way of doing it. It also doesn't deal with the real problems of cross-platform development: differences in hardware capability and controls.