чисто теоретически , все пункты , за исключением b , валидны с точки зрения возможных определений. А в пункте B просто нет смысла , ибо длинна строки может быть вычислена по кол-ву символов автоматом.
Только вот здесь мы определяем не длину строки а количество повторений символа 'h'
сам тест дурацкий , на память а не на логику. Обычно ненужно помнить какие-то мелочи , всегда есть студия , кроме того , от версии к версии компилятора мелочи могут меняться.
в других языках , строку можно определить как через одинарные так и через двойные кавычки , и нет никаких причин для каких-то ограничений в этом плане.
Были причины , например , отказаться от множественного наследования , т.к они приводили к неочевидным для пользователя коллизиям , которые сложно отловить.