Главная / Программирование /
Основы программирования на языке C / Тест 11
Основы программирования на языке C - тест 11
Упражнение 1:
Номер 2
Как определить макрофункцию, которая возвращает минимальное из двух значений?
Ответ:
 (1) MIN(X,Y) ((X)<(Y) ? (X)<Y) 
 (2) #define MIN(X,Y) ((X)<(Y) ? (X) : (Y)) 
 (3) #define MIN(X,Y) ((X)>(Y) ? (X) : (Y)) 
 (4) #DEFINE MIN(X,Y) ((X)<(Y) ? (X) : (Y)) 
Номер 3
Отметьте правильные варианты включения файлов в код программы?
Ответ:
 (1) #include <stdio.h> 
 (2) #include "stdio.h" 
 (3) #include "nina.h" 
 (4) #include "a:nina.h" 
Упражнение 2:
Номер 1
Какая макрофункция печатает значения двух целых выражений?
Ответ:
 (1) #define P(X,Y) printf("X=%d, Y=%d.\n",X,Y) 
 (2) #define P (X,Y) printf("X=%d, Y=%d.\n", X,Y) 
 (3) #define P(X,Y) Printf("X=%d, Y=%d.\n") 
Номер 2
Имеется следующее объявление: int x, j = 1;. Какой вариант макроопределения приведет к ответу 9 в результате вызова x = NEW(j << 2);?
Ответ:
 (1) #define new(x) x+5 
 (2) #define NEW(x) x+5 
 (3) #define NEW (x) x+5 
 (4) #define NEW(X) ((X)+5) 
Упражнение 3:
Номер 1
В чем опасность применения макрофункций?
Ответ:
 (1) побочный эффект 
 (2) нет побочных эффектов 
 (3) тяжело программировать 
 (4) в создании строчного кода 
Номер 2
Как определить символьную константу DOG директивой #define?
Ответ:
 (1) #define DOG '5' 
 (2) #define DOG = 5 
 (3) #define(DOG) 
 (4) #define 5! = DOG 
Упражнение 4:
Номер 1
Где может появиться директива #define?
Ответ:
 (1) в начале файла 
 (2) под командами включения файлов 
 (3) в середине файла 
 (4) в конце файла 
Номер 2
Что лучше использовать: макроопределение или функцию?
Ответ:
 (1) на этот счет нет строгих правил 
 (2) выбор макроопределения приводит к увеличению объема памяти 
 (3) выбор функции - к увеличению времени работы программы 
 (4) не использовать ни того ни другого 
Номер 3
Каково назначение препроцессора?
Ответ:
 (1) назначение препроцессора - обработка исходного текста программы до ее компиляции 
 (2) назначение препроцессора - подготовка программиста к серьезной работе 
 (3) назначение препроцессора - облегчить работу программиста по созданию описания программы 
 (4) назначение препроцессора - для сокращения времени работы компилятора 
Упражнение 5:
Номер 1
Где имеет силу даваемое определение директивы #define?
Ответ:
 (1) от места появления до конца файла или до #undef 
 (2) от начала файла до места появления 
 (3) в первой описанной функции файла 
 (4) в последней описанной функции файла 
Номер 2
Где может находиться программная строка #include?
Ответ:
 (1) программная строка #include может находиться в середине файла исходного текста 
 (2) программная строка #include может находиться в начале файла исходного текста 
 (3) программная строка #include может находиться в конце файла исходного текста 
Номер 3
Из каких стадий состоит препроцессорная обработка?
Ответ:
 (1) все системно-зависимые обозначения перекодируются в стандартные коды 
 (2) каждая пара из символов '\' и "конец строки" вместе с пробелами между ними убираются, и тем самым следующая строка исходного текста присоединяется к строке, в которой находилась эта пара символов 
 (3) в тексте распознаются директивы и лексемы препроцессора, а каждый комментарий заменяется одним символом пустого промежутка 
 (4) выполняются директивы препроцессора и производятся макроподстановки 
Упражнение 6:
Номер 1
Какие утверждения верны?
Ответ:
 (1) препроцессор не выполняет вычислений 
 (2) препроцессор делает предложенные подстановки 
 (3) препроцессор выполняет вычисления 
Номер 2
Как задается пустая директива?
Ответ:
 (1) # 
 (2) #pragma 
 (3) #empty 
Номер 3
Каковы действия обработки директив препроцессора?
Ответ:
 (1) замена идентификаторов заранее подготовленными последовательностями символов 
 (2) включение в программу текстов из указанных файлов 
 (3) исключение из программы отдельных частей ее текста, условная компиляция 
 (4) макроподстановка, то есть замена обозначения параметризованным текстом