Главная / Программирование /
Язык программирования C++ / Тест 14
Язык программирования C++ - тест 14
Упражнение 1:
Номер 1
В чем заключается суть компоновки программы?
Ответ:
 (1) в переводе текстового файла в объектный модуль 
 (2) в подготовке программы к выполнению 
 (3) в объединении нескольких фрагментов программы в один 
Номер 2
Что является результатом компоновки программы?
Ответ:
 (1) заголовочный файл 
 (2) исполняемый файл или библиотека 
 (3) набор заголовочных файлов с определением в них всех используемых функций 
Номер 3
С какой целью производится вынесение функций в отдельный заголовочный файл?
Ответ:
 (1) для более наглядного и удобного представления функций 
 (2) для возможности использования в нескольких модулях программы 
 (3) для возможности использования в других программах 
Упражнение 2:
Номер 2
Сколько вызовов системных функций всегда будет в программе, независимо от ее реализации?
Ответ:
 (1) всегда 2 
 (2) по крайней мере один 
 (3) не менее двух 
Номер 3
Есть ли преимущество выноса определения функции в отдельный файл
Ответ:
 (1) да,при использования функции в нескольких файлах 
 (2) нет,это затрудняет работу программы 
 (3) да,можно определить функцию только один раз 
Упражнение 3:
Номер 1
Что произойдет, если определение класса будет находиться в файле в двух местах?
Ответ:
 (1) будет использоваться второе определение 
 (2) второе определение будет проигнорировано 
 (3) зависит от других факторов 
 (4) ошибка компиляции 
 (5) ошибка произойдет при сборке программы из нескольких файлов 
Номер 2
Что произойдет, если определение функции будет находиться в файле в двух местах?
Ответ:
 (1) будет использоваться второе определение 
 (2) второе определение будет проигнорировано 
 (3) зависит от других факторов 
 (4) ошибка компиляции 
 (5) ошибка произойдет при сборке программы из нескольких файлов 
Номер 3
Определение класса это
Ответ:
 (1) объявление всех его методов и полей 
 (2) вызов конструктора 
 (3) инициализация всех его полей 
Упражнение 4:
Номер 2
Для чего предназначен фрагмент текста из заголовочного файла:
//Пример файла test.h
#ifndef TEST
#define TEST
//прочие строки кода
#endif
Ответ:
 (1) для целей отладки 
 (2) для определения символьной константы Test 
 (3) для защиты от повторного включения файла test.h
 
 (4) для защиты от копирования 
 (5) для защиты от удаления 
Номер 3
Что будет выведено на экран в результате выполнения приведенной ниже программы:
#include "iostream.h"
#include "conio.h"
#define N=10
int main()
{
int x=N;
cout<<x;
getch();
return 0;
}
Ответ:
 (1) компилятор выдаст ошибку компиляции 
 (2) N
 
 (3) 10
 
 (4) x
 
Упражнение 5:
Номер 2
Какова последовательность создания исполняемого файла:
Создать файл с исходным текстом программы, который будет иметь расширение .cpp
.Скомпоновать объектный файл с необходимыми библиотеками.Скомпилировать исходный код.
Ответ:
 (1) 1-3-2 
 (2) 2-3-1 
 (3) 1-2-3 
 (4) 3-2-1 
 (5) 2-1-3 
Номер 3
Каково преимущество использования ключевого слова const
вместо директивы #define
?
Ответ:
 (1) константу, определенную с помощью const
, можно изменять во время работы 
 (2) к константе, определенной с помощью const
, можно применить операции инкремента и декремента 
 (3) константа, определенная с помощью const
, доступна в других модулях программы 
 (4) константа, определенная с помощью const
, имеет тип, и компилятор может проследить за ее использованием в соответствии с объявленным типом 
Упражнение 6:
Номер 1
С помошью какой директивы происходит подключение других модулей программы?
Ответ:
 (1) #include
 
 (2) #define
 
 (3) #ifndef
 
Номер 2
В чем различие использования следующих выражений #include <...>
и #include "..."
Ответ:
 (1) нет различий 
 (2) различие заключается в методе поиска препроцессором включаемого файла 
 (3) в различии использования заголовочных и исходных файлов 
Номер 3
Возможно ли использование подобного выражения?
#define myincl "D:\Project\Coding\CodingU.h"
#include myincl
Ответ:
 (1) нет 
 (2) да 
Упражнение 7:
Номер 1
Если в программе объявлен макрос #define CIRC(x) (3.14159 * (x) * (x))
, то как будет подставлен этот макрос в тексте программы при следующем вызове:
S = CIRC(a + b);
Ответ:
 (1) S = (3.14159 * a + b * a + b);
 
 (2) S = (3.14159 * (a + b) * (a + b));
 
 (3) S = (3.14159 * (a + b));
 
Номер 2
Какой результат будет у следующего выражения?
#define CIRC(x) (3 * (x) * (x))
#include <iostream.h>
int main()
{
int a = 1, b = 2;
std::cout << CIRC(a + b);
}
Ответ:
 (1) 9
 
 (2) 27
 
 (3) 16
 
 (4) 28
 
Номер 3
Отметьте истинные высказывания в отношении использования макросов и функций:
Ответ:
 (1) в большинстве случаев функции позволяют сокращать объем выполняемого файла 
 (2) в большинстве случаев макросы позволяют сокращать время выполнения 
 (3) недостатком макросов является отсутствие встроенного контроля согласования типов аргументов и формальных параметров 
Упражнение 8:
Номер 1
Отметьте истинные высказывания в отношении использования макросов и функций:
Ответ:
 (1) в большинстве случаев функции позволяют сокращать объем выполняемого файла 
 (2) в большинстве случаев макросы позволяют сокращать время выполнения 
 (3) недостатком макросов является отсутствие встроенного контроля согласования типов аргументов и формальных параметров 
Номер 2
Какой результат будет у следующего выражения?
// файл File1.h
#ifndef __File_h__
#define myconst 35
#else
#define myconst 30
#endif
// файл Test.cpp
#include <iostream.h>
#include "File1.h"
int main()
{ cout << myconst + 10;
}
Ответ:
 (1) 40
 
 (2) 45
 
 (3) 35
 
 (4) ошибка компиляции 
Номер 3
Если задано
#define f(x) x##4
то какой будет результат после препроцессора ?
#if 4
int d4;
f(d) = 5;
#endif
Ответ:
 (1) d4 = 5;
 
 (2) x*4 = 5;
 
 (3) пусто 
 (4) f(d4) = 5;
 
 (5) d = x;
 
 (6) = 5;
 
Номер 4
Если задано
#define foo(x,y) x##y
то какой будет результат после препроцессора ?
foo(a,c)
Ответ:
 (1) ac
 
 (2) "ac"
 
 (3) a c
 
 (4) a#c