1. В чем разница между компилятором и препроцессором?
При каждом запуске компилятора первым запускается препроцессор. Он читает исходный код и включает указанные вами файлы, а также выполняет другие вспомогательные операции. Подробно функции препроцессора рассматриваются на занятии 18.
2. В чем состоит особенность функции main()?
Функция main() вызывается автоматически при каждом выполнении программы.
3. Какие два типа комментариев вы знаете и чем они отличаются друг от друга?
Строки комментариев в стиле C++ задаются двумя символами слеша (//), которые блокируют любой текст до конца текущей строки. Комментарии в стиле языка С заключаются в пары символов (/* */), и все, что находится между этими символами, блокируется от выполнения компилятором. Следует внимательно отнестись к использованию пар символов комментариев, чтобы не заблокировать целый блок программы.
4. Могут ли комментарии быть вложенными?
Да, комментарии в стиле C++ могут быть вложены внутрь комментариев в стиле С. Можно также комментарии в стиле С вкладывать внутрь комментариев в стиле C++, но при этом следует помнить, что комментарии в стиле C++ заканчиваются в конце текущей строки.
5. Могут ли комментарии занимать несколько строк?
Это позволено лишь комментариям в стиле С. Если же вы хотите продолжить на следующей строке комментарии в стиле C++, необходимо поставить в начале второй строки еще одну пару символов (//).
1. Напишите программу, которая выводит на экран сообщение I love C++.
1: #include
2:
3: int main()
4: {
5: cout << "I love C++\n";
6: return 0;
7: }
2. Напишите самую маленькую программу, которую можно скомпилировать, скомпоновать и выполнить.
int main() { returna 0; }
3. Жучки: введите эту программу и скомпилируйте ее. Почему она дает сбой? Как ее можно исправить?
1: #include
2: int main()
3: {
4: cout << Is there a bug here?";
5: return 0;
6: }
В строке 4 пропущена открывающая кавычка для строкового выражения.
4. Исправьте ошибку в упражнении 3, после чего перекомпилируйте ее, скомпонуйте и запустите на выполнение.
1: #include
2: int main()
3: {
4: cout << " Is there а bug fiere?";
5: return 0;
6: }
1. В чем разница между целочисленной и вещественной (с плавающей точкой) переменными?
Целочисленные переменные предназначены для работы с целыми числами, а вещественные — с вещественными числами, содержащими плавающую десятичную точку. Числа с плавающей точкой могут быть представлены с использованием мантиссы и экспоненты.
2. Каково различие между типами unsigned short int и long int?
Ключевое слово unsigned означает, что данная целочисленная переменная будет содержать только положительные числа. В большинстве компьютеров для коротких (short) целых чисел отводится 2 байта, а для длинных (long) — 4 байта.
3. Каковы преимущества использования символьной константы вместо литерала? Символьная константа "говорит сама за себя", т.е. само имя константы указывает на ее назначение. Кроме того, при внесении изменений символьную константу достаточно переопределить в одной строке исходного кода, в то время как при использовании литералов программисту придется редактировать код всюду, где встречается этот литерал.
4. Каковы преимущества использования ключевого слова const вместо директивы #define?
Константы, объявленные с помощью ключевого слова const, используются с контролем за соответствием типа, поэтому компилятор сможет заметить ошибку в случае неправильного определения или применения такой константы. Кроме того, поскольку эти константы остаются в программе после ее обработки препроцессором, они доступны отладчику.
5. Как влияет на работу программы "хорошее" или "плохое" имя переменной? Хорошее имя переменной говорит о назначении этой переменной; плохое не несет никакой информации. Например, MyAge (МойВозраст) и PeopleOnTheBus (Пассажиров в автобусе) — это хорошие имена переменных, а в таких именах, как xjk и prndl, вероятно, мало пользы.
6. Если перечисление (enum) заданно таким образом, то каково значение его члена Blue?
enum COLOR { WHITE, BLACK = 100, RE0, BLUE, GREEN = 300 }; BLUE = 102
7. Какие из следующих имен переменных являются хорошими, плохими и вообще недопустимыми?
а) Age — хорошее имя;
б) !ex — недопустимое имя;
в) R79J — допустимое, но неудачное имя;
г) TotalIncome — хорошее имя;
д) _Invalid — допустимое, но неудачное имя.
Читать дальше