2. Файл исходного кода содержит код в том виде, в каком он написан на языке, который использует программист. Файл объектного кода содержит код на машинном языке; ему не обязательно быть полным кодом завершенной программы. Исполняемый файл содержит полный код на машинном языке, формирующий исполняемую программу.
3. а Определение целей программы.
б. Проектирование программы.
в. Написание кода программы.
г. Компиляция программы.
д. Запуск программы.
е. Тестирование и отладка программы.
ж. Сопровождение и модификация программы.
4. Компилятор транслирует исходный код (например, код, написанный на языке С) в эквивалентный код на машинном языке, называемый также объектным кодом.
5. Компоновщик объединяет исходный код с кодом библиотек и кодом запуска для создания исполняемой программы.
Ответы на вопросы для самоконтроля из главы 2
1. Они называются функциями.
2. Синтаксическая ошибка — это нарушение правил, регламентирующих составление предложений или программ. Примером ошибки синтаксиса русского языка может служить предложение: “Говорить моя хорошо по-русски”. Ниже приведен пример синтаксической ошибки в программе на языке С:
printf"Куда подевались скобки?";
3. Семантическая ошибка — это ошибка, связанная с неправильным применением понятий. Например: “Это предложение — прекрасный образец английского языка”. Или в программе на языке С (имя thr ice_n по смыслу означает “трижды п”): thrice_n=3 + n;
4. Строка 1: начните строку с символа #; правильно введите имя файла stdio.h;
поместите это имя файла в угловые скобки.
Строка 2: используйте(), а не {}; завершите комментарий символами */, а не /*. Строка 3: используйте {, а не (.
Строка 4: дополните оператор символом точки с запятой.
Ответы на вопросы для самоконтроля 793
Строка 5: только эта строка (пустая) в программе является правильной!
Строка 6: используйте для присваивания символ =, а не :=. (Судя по всему, Джо немного знаком с языком Pascal.) Для количества недель в году укажите 52, а не 56.
Строка 7: эта строка должна выглядеть следующим образом:
printf("В году содержится %d недель.\n", s);
Строка 9: эта строка отсутствует, но должна существовать и состоять из закрывающей фигурной скобки }.
После внесения всех исправлений код должен выглядеть следующим образом:
#include
int main(void) /* выводит количество недель в году */
{
int s;
s = 52;
printf("В году содержится %d недель.\n", s); return 0;
}
5. а. Бе, бе, Черная Овечка.У тебя найдется шерсть для меня?
(Обратите внимание на отсутствие пробела после точки. Пробел можно вставить, указав " У вместо "У.)
б. Прочь!
Вот наглая свинья!
(Обратите внимание на то, что курсор остается в конце второй строки.)
В. Что?
Не/nклюет?
(Обратите внимание, что обычная косая черта (/) не оказывает такое же влияние, как обратная косая черта (\); она просто выводится на экран.)
Г. 2 + 2 = 4
(Обратите внимание на замену каждой последовательности символов %d значением соответствующей переменной из списка. Кроме того, символ + означает операцию сложения, и это вычисление может выполняться внутри оператора printf().
6. int и char (main — имя функции, function (функция) — технический термин, относящийся к языку С, а = представляет собой символ операции.)
7. printf("Текст содержал %d слов и %d строк.\n", words, lines);
8. После выполнения строки 7 значение а равно 5, а b — 2. После выполнения строки 8 значения а и b равны 5. После выполнения строки 9 значения а и b по-прежнему равны 5. (Обратите внимание, что значение а не может быть равным 2, поскольку на момент выполнения оператора а = b; значение переменной b уже изменено на 5.)
9. После выполнения строки 7 значение х равно 10, а значение b — 5. После выполнения строки 8 значение х равно 10, а значение у — 15. После выполнения строки 9 значение х равно 150, а значение у — 15.
794 Приложение А
Ответы на вопросы для самоконтроля из главы 3
1. а. int, возможно short, unsigned или unsigned short; население города пред
ставляет собой целое число.
б. float; маловероятно, чтобы стоимость была целым числом. (Можно было бы использовать тип double, но в данном случае повышенная точность не требуется.)
в. char.
г. int, возможно unsigned.
2. Во-первых, тип long может вмещать большие числа, чем int; во-вторых, если требуется обработка больших значений, то использование типа, для которого во всех системах гарантируется длина, по меньшей мере, 32 бита, улучшает переносимость кода.
3. Чтобы получить в точности 32 бита, можно использовать тип int32_t, если он определен для данной системы. Для более короткого типа, который мог бы хранить, по меньшей мере, 32 бита, необходимо применять int_least32_t. Чтобы получить тип, который обеспечил бы самые быстрые вычисления с 32-битными значениями, следует выбрать int_fast32_t.
Читать дальше