"С" я бы назвал языком чуть выше от ассемблера. Или расширением ассемблера. Сейчас применяется мало. Но его ниша тоже довольно велика - почти все встроенные устройства, *никс системы, языки программирования некоторых контроллерных систем (например WinCC). Кроме того я зык сам посебе дал синтаксис и организацию, используемый в куче других я зыков, в том числе и C#.
C++ назвал бы расширением стандартного "С" до возможности работы с раскладом объектного ориентирования. Но в нем уже столько наворочено, появилось столько технологий, что уже можно говорить не об одно языке, а о группе.
C# это "ответ чемберлена" на возможности работы Java. За основу взят Mono, но что то огромной популярности он не съискал, кроме как реализации ветки на C# одной известной конторы. Перспективы у него тоже больше связанные с этой известной конторой.
Выводы: я бы выбрал C++. В основе этого языка лежит С. При необходимости понять, как создавать программы в подобном как C# не требует много времени. Но с точки зрения как специалистаквалификация на С++ более высокая, востребованная, но и требований больше.