Лучше для чего? Эти языки предназначены решения разных задач. И выбирать язык надо не по названию, а по тому, насколько хорошо он подходит для твоих задач.
Если ты пишешь ядро операционной системы или интерпретатор языка
программирования - С. Язык системного программирования, позволяющий генерировать предельно производительный и максимально приближенный к "железу" код, не привязанный к стандартной RTL. Но написание качественного кода на C требует очень высокой квалификации программиста.
Если ты пишешь большую прикладную программу, в которой эффективность кода важнее затрат на его написание - C++. Механизмы высокого уровня делают C++ не слишком пригодным для системного программирования, а механизмы низкого уровня не позволяют нанимать разработчиков начального уровня. Но по скорости работы скомпилированного кода C++ проигрывает только C.
Если же ты занимаешься прикладным софтом, не требующим ни предельной оптимизации, ни высокого уровня разработчиков - C#. Типичный современный язык, предназначенный для снижения затрат на разработку.