Ich denke, der TE schmeißt hier ein bisschen ANSI-C und C++ durcheinander. ANSI-C ist der C-Dialekt, wo es noch richtig schmutzig zur Sache geht. Da gibts nichtmal n bool'schen Typ.
C++ ist, wie der Name vermuten lässt, eine Erweiterung von ANSI-C. Als Maschinensprache würde ich ANSI-C (!, C++ in keinem Falle) nicht bezeichnen, allerdings kannst du recht Hardware-nahe programmieren, da du mit C Operationen durchführen kannst, die mit anderen Compilern zwar möglich, aber nicht so einfach sind. Die einzige vernünftige Maschinensprache ist immernoch Assembler.
C# ist eine Sprache für das .NET-Framework. Dass der Pascal-Entwickler an ihr mitgebastelt hat, merkt man der Sprache an, weswegen sie auch für Einsteiger recht gut zu verstehen ist.
Ich habe meine ersten Schritte damals mit Delphi gemacht, hab mich dann irgendwann mal mit C/C++ beschäftigt und bin dann bei Free Pascal (mit Lazarus) hängengeblieben. C# habe ich mir ebenfalls kurz angesehen, konnte mich aber nicht mit .NET anfreunden. Das wird sich in Zukunft wohl ändern, denn mein AG fährt darauf voll ab.
Wie robin. schon sagte, konzentriere dich auf eine Sache, bspw. C# und fuchse dich da rein. Alternativ kannst du dir auch Free Pascal anschauen, die Sprache ist für den Einsteiger leichter zu verstehen. Generell ist es aber so, sobald du die Logik hinter dem Programmieren verstanden hast, ist die Sprache nur noch das Werkzeug - und das kann man bekanntlich wechseln, auch wenn es Übung verlangt.