Главная / Программирование /
Язык программирования C / Тест 4
Язык программирования C - тест 4
Упражнение 1:
Номер 1
Для чего служит оператор return
в функциях?
Ответ:
 (1) для возвращения значения из вызванной функции в функцию, которая к ней обратилась 
 (2) для обозначения конца функции 
 (3) для получения из вызываемой функции значений аргументов 
Номер 2
Как записать минимальную функцию, которая не совершает никаких действий?
Ответ:
 (1) function{}()
 
 (2) function(){}
 
 (3) function()[]
 
Номер 3
Каким образом осуществляется связь между функциями?
Ответ:
 (1) через аргументы и возвращаемые значения 
 (2) через внешние переменные 
 (3) через внутренние переменные 
Упражнение 2:
Номер 1
Какого типа значения, по умолчанию, возвращает функция?
Ответ:
 (1) char
 
 (2) int
 
 (3) float
 
Номер 2
Как выглядит описание функции, возвращающей значение типа double
?
Ответ:
 (1) double function()
 
 (2) function (double)
 
 (3) double int function (double)
 
Номер 3
Как выглядит описание функции, возвращающей значение типа char
?
Ответ:
 (1) char function()
 
 (2) function (char)
 
 (3) double function (char)
 
Упражнение 3:
Номер 1
Как функция изменяет элементы массива, если в качестве аргумента функции выступает его имя?
Ответ:
 (1) создается временный массив, куда копируются элементы оригинального массива; затем после преобразований, элементы из временного массива копируются обратно 
 (2) используя индексацию и адрес начала 
 (3) функция не может изменить элементы массива 
Номер 2
Можно ли на C написать действительно переносимую функцию, которая будет вычислять максимум от произвольного числа аргументов?
Ответ:
 (1) можно 
 (2) нельзя 
Номер 3
Какими переменными являются аргументы внутри функций?
Ответ:
 (1) глобальными 
 (2) локальными 
 (3) внешними 
Упражнение 4:
Номер 1
Как записать инфиксное выражение типа (1+2)*(3-4)=
, используя обратную польскую нотацию?
Ответ:
 (1) =*+12-34
 
 (2) 12+*34-=
 
 (3) 12+34-*=
 
Номер 2
Какие причины обеспечивают удобство в использовании внешних переменных?
Ответ:
 (1) внешние переменные более удобны и эффективны, чем использование длинных списков аргументов 
 (2) внешние массивы могут быть инициализированы, а автоматические нет 
 (3) внешние переменные существуют постоянно и могут сохранять свои значения в период от одного обращения к функции до другого 
Упражнение 5:
Номер 1
Что является областью действия для автоматической переменной, описанной в начале функции?
Ответ:
 (1) все функции, в которых описано имя этой переменной 
 (2) та функция, в которой описано имя этой переменной 
 (3) область программы от точки, в которой она объявлена в исходном файле, до конца этого файла 
Номер 2
Что является областью действия для внешней переменной?
Ответ:
 (1) все функции, в которых описано имя этой переменной 
 (2) та функция, в которой описано имя этой переменной 
 (3) область программы от точки, в которой она объявлена в исходном файле, до конца этого файла 
Номер 3
Чем отличается описание внешней переменной от ее определения?
Ответ:
 (1) описание и определение внешней переменной - синонимы 
 (2) описание указывает свойства переменной (ее тип, размер и т.д.) и вызывает отведение памяти; определение указывает только свойства переменной 
 (3) описание указывает свойства переменной (ее тип, размер и т.д.); определение вызывает еще и отведение памяти 
Упражнение 6:
Номер 1
int SP; double VAL[MAXVAL];
Что можно сказать об этих переменных, увидев их в коде программы вне какой бы то ни было функции?
Ответ:
 (1) они определяют внешние переменные SP
и VAL
, вызывают отведение памяти для них и служат в качестве описания для остальной части этого исходного файла 
 (2) они описывают внешние переменные SP
и VAL
и создают их, но не вызывают отведение памяти для них 
 (3) они не создают переменных и не отводят им места в памяти, а описывают в указанной части этого исходного файла переменную SP
как int
, а VAL
как массив типа double
/размер которого указан в другом месте/ 
Номер 2
extern int SP; extern double VAL[];
Что можно сказать об этих переменных, увидев их в коде программы?
Ответ:
 (1) они определяют внешние переменные SP
и VAL
, вызывают отведение памяти для них и служат в качестве описания для остальной части этого исходного файла 
 (2) они описывают внешние переменные SP
и VAL
и создают их, но не вызывают отведение памяти для них 
 (3) они не создают переменных и не отводят им места в памяти, а описывают в указанной части этого исходного файла переменную SP
как int
, а VAL
как массив типа double
/размер которого указан в другом месте/ 
Номер 3
Сколько раз может происходить определение внешней переменной?
Ответ:
 (1) во всех файлах, составляющих исходную программу, только один раз; другие файлы могут содержать описания extern
для доступа к ней 
 (2) столько раз, сколько необходимо обращение к ней 
 (3) столько раз, сколько существует файлов, составляющих исходную программу 
Упражнение 7:
Номер 1
Какие бывают статические переменные?
Ответ:
 (1) внешнее 
 (2) автоматические 
 (3) внутренние 
Номер 2
Какая особенность внутренних статических переменных?
Ответ:
 (1) они являются локальными для некоторой функции, но остаются существовать, а не появляются и исчезают вместе с обращением к этой функции 
 (2) они являются локальными для некоторой функции, появляются и исчезают вместе с обращением к этой функции 
Номер 3
Какая особенность внешних статических переменных?
Ответ:
 (1) они определены во всех файлах, но после первой инициализации они становятся константами до перезапуска программы 
 (2) они определены в остальной части того исходного файла, в котором они описаны, но не в каком-либо другом файле 
 (3) они определены во всех файлах, и являются глобальными переменными 
Упражнение 8:
Номер 1
Какие существуют классы памяти?
Ответ:
 (1) автоматические, статические, регистровые переменные и extern
 
 (2) внешние, внутренние, внешние статические, внутренние статические переменные 
 (3) глобальные, локальные, статические, регистровые, внешние, внутренние, автоматические и extern
 
Номер 2
Что указывает компилятору описание переменной register
?
Ответ:
 (1) что данная переменная будет редко использоваться 
 (2) что данная переменная будет часто использоваться 
 (3) что данная переменная будет использоваться через регистры процессора 
Номер 3
Отметьте верные утверждения:
Ответ:
 (1) в регистры можно поместить только несколько переменных в каждой функции, причем только определенных типов 
 (2) невозможно извлечь адрес регистровой переменной 
 (3) в случае превышения возможного числа или использования неразрешенных типов слово register
игнорируется 
Упражнение 9:
Номер 1
register int x;
Может ли часть int
быть опущена?
Ответ:
 (1) может 
 (2) не может 
Номер 2
int X; F(){double X; ...; X=X+1;}
Какой тип переменная X
имеет в выражении Х=Х+1
?
Ответ:
 (1) int
 
 (2) double
 
 (3) компилятор выдаст ошибку 
Номер 3
if (n > 0) { int i; for (i = 0; i < n; i++) ...}
Какова область действия переменной i
?
Ответ:
 (1) область ограниченная фигурными скобками 
 (2) область от первой фигурной скобки до конца программы 
 (3) весь файл 
Упражнение 10:
Номер 1
Что присваивается внешним и статическим переменным, если явная инициализация отсутствует?
Ответ:
 (1) 0 
 (2) неопределенные значения (мусор) 
 (3) 1 
Номер 2
Что присваивается автоматическим и регистровым переменным, если явная инициализация отсутствует?
Ответ:
 (1) 0 
 (2) неопределенные значения (мусор) 
 (3) 1 
Номер 3
Как можно инициализировать символьные массивы?
Ответ:
 (1) char SYMBOL_MASSIV[] ="THE"
 
 (2) char SYMBOL_MASSIV[] = 'THE'
 
 (3) char SYMBOL_MASSIV[] = { 'T', 'H', 'E', '\0' };
 
Упражнение 11:
Номер 1
Что означает использование функции рекурсивно?
Ответ:
 (1) это означает, что к функции буду обращаться несколько раз за время работы программы 
 (2) это означает, что функция может прямо или косвенно обращаться к себе самой 
Номер 2
Что происходит с автоматическими переменными, когда функция вызывает себя рекурсивно?
Ответ:
 (1) автоматические переменные не меняются 
 (2) при каждом обращении образуется новый набор всех автоматических переменных, совершенно не зависящий от предыдущего набора 
 (3) автоматические переменные увеличиваются на постоянную величину 
Номер 3
Отметьте верные утверждения:
Ответ:
 (1) рекурсия обычно не дает никакой экономии памяти, поскольку приходится где-то создавать стек для обрабатываемых значений 
 (2) рекурсивные программы огромны по объему кода, и они зачастую становятся сложными для понимания и написания 
 (3) использование рекурсии обычно не приводит к созданию более быстрых программ 
Упражнение 12:
Номер 1
С помощью какой команды осуществляется включение файлов?
Ответ:
 (1) #INCLUDE"FILENAME"
 
 (2) #DEFINE"FILENAME"
 
 (3) #INCLUDE 'FILENAME'
 
Номер 2
Какая область действия имени, определенного в #DEFINE?
Ответ:
 (1) все файлы программы 
 (2) от точки определения до конца исходного файла 
 (3) до следующего переопределения 
Номер 3
#DEFINE SQUARE(X) X * X
Возможно ли в C определение такого макроса?
Ответ:
 (1) возможно, только при обращении к ней, как SQUARE(Z+1)
, между именем макро и левой круглой скобкой, открывающей список ее аргументов, не должно быть никаких пробелов 
 (2) не возможно