Java y C# generalmente implican máquina virtual (o .NET Framework); C o C++ no.
C# generalmente implica Windows, mientras que Java, C o C++ no.
Los cuatro necesitan librerías y runtimes ya instalados, aunque es frecuente que un programa escrito en C o C++ no necesite nada que no esté previamente instalado en el sistema operativo (otras veces sí)
Una introducción a C#:
https://en.wikipedia.org/wiki/C_Shar...ng_language%29
Y hay un par de respuestas concretas en:
https://stackoverflow.com/questions/...-sharp-and-net