I would choose C++ even though it is a bit harder to learn than C#. The reason: you can code a wide variety of programs with C++ while with C# you are stuck with .NET applications
I respectfully disagree. C# gives you the best variety of platforms you can write for and I just made a big post explaining it. Unfortunately, the anti-spam system doesn't allow it for some reason, so I'll try editing this post multiple times to make myself clear
EDIT1 : Okay, apparently every attempt to edit this post with information failed so I'll just list every type of application you can develop with c# and you can google the rest :
Standard desktop apps using WPF or Windows Forms;
Web apps using ASPNET (preferrably mvc);
Windows phone 7,8;
Windows8 Metro style apps;
iPhone and android apps and games using Monotouch, MonoForAndroid and Monogame;
Linux and MacOS stuff using Mono (and Monogame if you're writing a game)
EDIT2 : Sorry for the somewhat unreadable post but I couldn't make it pass the anti-spam system otherwise, so if you have any questions regarding the stuff above you can ask me.
EDIT3 : Another advantage would be that you have probably the best video tutorials on the web, although most of them aren't free and they are also imho best suited for people who have read at least 1 book about c#.
EDIT4 : And the final advantage is that c# is by far the easiest one to learn from the 3.