Главная / Программирование /
Язык программирования 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) не возможно