I вариант
1. Директива препроцессора, обеспечивающая включение в программу средств связи со стандартными потоками ввода/вывода:
a) for (; ;)
b) namespace std
c) # include
d) int main()
2. Выполнение программы начинается:
a) С функции main()
b) С функции fn()
c) С последовательности операторов, заключенных в фигурные скобки
d) С ключевого слова cout
3. Выбрать верное утверждение:
a) Переменные должны быть объявлены перед их использованием
b) Переменные должны быть использованы перед их объявлением
c) Неявным определением переменной является ее первое упоминание в левой части выражения
d) Объявленную переменную всегда необходимо инициализировать
4. Выбрать верное утверждение:
a) Для вычисления среднего арифметического оптимально использовать переменные
целочисленного типа
b) Попытка присвоить вещественной переменной значение 1.2345 приведет к отбрасыванию
дробной части
c) Попытка присвоить вещественной переменной значение 1.2345 приведет к округлению числа
d) Вещественные переменные не могут использоваться для перечисления
5. Значение (-я) булевого типа данных:
a) false
b) TRUE и FALSE
c) True
d) -1, 0 или 1.
6. Понижающее приведение – это
a) Приведение типа char к типу string
b) Приведение типа unsigned к типу unsigned int
c) Преобразование типа большего размера в меньший
d) Преобразование типа меньшего размера в больший
7. К унарным операторам относится оператор
a) ++
b) &
c) /
d) +=
8. В результате выполнения следующего фрагмента кода
int nomOfStudents, nomOfBook;
nomOfStudents = 25;
nomOfBook = ++ nomOfStudents;
переменные nomOfStudents и nomOfBook будут иметь следующие значения:
a) nomOfStudents = 25; nomOfBook = 25
b) nomOfStudents = 25; nomOfBook = 26
c) nomOfStudents = 26; nomOfBook = 25
d) nomOfStudents = 26; nomOfBook = 26
9. Каким будет результат работы программы
a) c = 9
b) c = 9,999999
c) c = 0
d) c = 1
10. Каким будет результат работы программы
a)
b)
c)
d)
11. После выполнения инструкции break (строка 19) в следующей программе
управление будет передано строке под номером
a) 25
b) 13
c) 21
d) 23
12. Что будет выведено на экран в результате работы следующей программы:
a) 012D.
b) 0112D.
c) 0112.D
d) 0112.D.
13. Какие символы используются в языке C++ для обозначения начала и конца блока
a) { }
b) ( )
c)
d) begin end
14. Программа, которая переводит входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке, называется:
a) Транслятор
b) Компилятор
c) Интерпретатор
d) Отладчик
15. Для чего используются встроенные функции
a) Для уменьшения размера программы
b) Для удаления лишних функций
c) Для увеличения скорости программы
d) Для инкапсуляции
16. Перегрузкой функции называется
a) Наличие множества вызываемых функций в теле одной функции
b) Длина кода функции более 100 строк
c) Сигнатура функции
d) Возможность называть несколько разных функций одним и тем же именем
17. Прототип функции содержит:
a) Имя функции, количество и типы аргументов, тело функции, возвращаемый тип данных.
b) Возвращаемый тип данных, типы аргументов и тело функции
c) Имя функции, количество и типы аргументов и возвращаемый тип данных
d) Имя и тело функции
18. В строке int X [100] = {50};
a) Все 100 элементов массива инициализируются значением 50
b) Все 50 элементов массива инициализируются значением 100
c) Сотый элемент массива инициализируется значением 50
d) Пятидесятый элемент массива инициализируется значением 100
19. В следующем фрагменте
a) A – фактический параметр, j – формальный параметр
b) A – формальный параметр, j – фактический параметр
c) A и j – фактические параметры
d) A и j – формальные параметры
20. Функция для сравнения двух строк (без учета регистра):
a) int strlen (string)
b) char *strncpy (target, source, n)
c) char *strcpy (target, source)
d) int stricmp (source1, source2)
21. При работе с указателями знак & используется для
a) Записи логического И
b) Записи логического ИЛИ
c) Получения адреса ячейки памяти
d) Разыменования и получения значения из ячейки памяти
22. Оператор new используется для
a) Выделения памяти в куче
b) Создания нового класса
c) Создания нового объекта
d) Создания новой функции
23. Выделение и освобождение места в динамической памяти:
a)
int *x = new int;
int *y = new int;
delete y;
delete x;
b)
int *x = new int;
int *y = new int;
delete *x;
delete *y;
c)
int x = new int;
int y = new int;
delete *x;
delete *y;
d)
int x = new int;
int y = new int;
delete *y;
delete *x;
24. Попытка обращения к недоступным для записи участкам памяти приведет к
a) Ошибке доступа
b) Ошибке времени выполнения
c) Ошибке сегментации
d) Обработке исключений
25. Пример передачи переменной по ссылке:
a)
void fn2 (int &X)
{&X = 2;}
b)
void fn2 (int *X)
{*X = 2;}
c)
void fn2 (int X)
{X = 2;}
d)
void fn2 (int &X)
{X = 2;}
26. Выбрать верное утверждение:
a) Объявление указателя на массив приводит к выделению памяти для массива
b) Указатель может состоять из массивов; объект может состоять из указателей
c) Массив может состоять из указателей; массив может состоять из объектов
d) Указатель на символьный массив " – " будет занимать в памяти 4 байта: по одному для 2 пробелов, тире и нулевого символа.
27. Экземпляр класса – это
a) Объект
b) Метод
c) Атрибут
d) Тип данных
28. Конструктор используется для создания
a) Объекта
b) Класса
c) Функции
d) Данных-членов и функций-членов
29. Члены класса – это
a) Объекты
b) Экземпляры класса
c) Атрибуты и методы
d) Конструкторы и деструкторы
30. К нестатической функции-члену класса следует обращаться через
a) Объект
b) Имя класса
c) Внешнюю функцию
d) inline-функцию
31. Оператор разрешения области видимости
a) ::
b) &&
c) **
d) ##
32. Конструкция наподобие pL-weight обеспечивает доступ к ______ и эквивалентна _______
a) Членам объекта (*pL).weight
b) Конструктору объекта pL.weight
c) Членам объекта *pL = &weight
d) Конструктору объекта (pL *weight)
33. Защищенные члены класса становятся доступными при использовании ключевого слова
a) protected
b) public
c) private
d) friend
34. Выбрать неверное утверждение:
a) Деструктор не имеет типа возвращаемого значения
b) Деструктор вызывается, когда объект выходит из области видимости
c) Вызов деструкторов имеет тот же порядок, что и вызов конструкторов
d) Деструктор уничтожает объекты с помощью ключевого слова delete
35. Создаются только один раз
a) Глобальные объекты
b) Локальные объекты
c) Статические объекты
d) Объекты абстрактного класса
36. Копирующий конструктор не может
a) Выполнять мелкое и глубокое копирование
b) Выполнять побитовое и поэлементное копирование
c) Принимать аргументы
d) Создавать копии объектов абстрактного класса
37. К статическому члену класса Student можно отнести
a) Имя студента
b) Средний балл в зачетной книжке
c) Общее количество прослушанных студентом часов
d) Количество студентов
38. Следующая строка кода class SleeperSofa : public Bed, public Sofa демонстрирует
a) Ромбовидное наследование
b) Полиморфизм
c) Наследование
d) Множественное наследование
39. Виртуальное наследование используется для устранения неоднозначностей при
a) Множественном наследовании
b) Полиморфизме
c) Инкапсуляции
d) Деструкции объектов
40. Позднее связывание
a) Более гибкое
b) Более быстрое
c) Требует меньше памяти
d) Определяет связь между объектом и функцией на этапе компиляции
41. Раннее связывание
a) Определяет связь между объектом и функцией на этапе выполнения
b) Используется при вызове стандартных функций, перегруженных функций.
c) Уменьшает скорость исполнения программы
d) Достигается с помощью использования виртуальных функций
42. Чтобы сделать функцию-член полиморфной, нужно пометить ее ключевым словом
a) polymorphic
b) static
c) protected
d) virtual
Ответы (1 вариант):
1. c
2. a
3. a
4. d
5. a
6. c
7. a
8. d
9. c
10. c
11. d
12. d
13. a
14. a
15. c
16. d
17. c
18. a
19. c
20. d
21. c
22. a
23. a
24. c
25. d
26. c
27. a
28. a
29. c
30. a
31. a
32. a
33. d
34. c
35. c
36. d
37. d
38. d
39. a
40. a
41. b
42. d
Ответы (2 вариант):
1. a
2. a
3. c
4. d
5. c
6. a
7. a
8. c
9. a
10. a
11. a
12. d
13. c
14. c
15. d
16. d
17. d
18. a
19. a
20. b
21. d
22. c
23. a
24. a
25. d
26. a
27. c
28. a
29. d
30. c
31. c
32. d
33. d
34. a
35. a
36. c
37. d
38. c
39. a
40. c
41. d
42. c
II вариант
1. Оператор new используется для
a) Выделения памяти в куче
b) Создания нового класса
c) Создания нового объекта
d) Создания новой функции
2. Выделение и освобождение места в динамической памяти:
a)
int *x = new int;
int *y = new int;
delete y;
delete x;
b)
int *x = new int;
int *y = new int;
delete *x;
delete *y;
c)
int x = new int;
int y = new int;
delete *x;
delete *y;
d)
int x = new int;
int y = new int;
delete *y;
delete *x;
3. Попытка обращения к недоступным для записи участкам памяти приведет к
a) Ошибке доступа
b) Ошибке времени выполнения
c) Ошибке сегментации
d) Обработке исключений
4. Пример передачи переменной по ссылке:
a)
void fn2 (int &X)
{&X = 2;}
b)
void fn2 (int *X)
{*X = 2;}
c)
void fn2 (int X)
{X = 2;}
d)
void fn2 (int &X)
{X = 2;}
5. Выбрать верное утверждение:
a) Объявление указателя на массив приводит к выделению памяти для массива
b) Указатель может состоять из массивов; объект может состоять из указателей
c) Массив может состоять из указателей; массив может состоять из объектов
d) Указатель на символьный массив " – " будет занимать в памяти 4 байта: по одному для 2 пробелов, тире и нулевого символа.
6. Экземпляр класса – это
a) Объект
b) Метод
c) Атрибут
d) Тип данных
7. Конструктор используется для создания
a) Объекта
b) Класса
c) Функции
d) Данных-членов и функций-членов
8. Члены класса – это
a) Объекты
b) Экземпляры класса
c) Атрибуты и методы
d) Конструкторы и деструкторы
9. К нестатической функции-члену класса следует обращаться через
a) Объект
b) Имя класса
c) Внешнюю функцию
d) inline-функцию
10. Оператор разрешения области видимости
a) ::
b) &&
c) **
d) ##
11. Конструкция наподобие pL-weight обеспечивает доступ к ______ и эквивалентна _______
a) Членам объекта (*pL).weight
b) Конструктору объекта pL.weight
c) Членам объекта *pL = &weight
d) Конструктору объекта (pL *weight)
12. Защищенные члены класса становятся доступными при использовании ключевого слова
a) protected
b) public
c) private
d) friend
13. Выбрать неверное утверждение:
a) Деструктор не имеет типа возвращаемого значения
b) Деструктор вызывается, когда объект выходит из области видимости
c) Вызов деструкторов имеет тот же порядок, что и вызов конструкторов
d) Деструктор уничтожает объекты с помощью ключевого слова delete
14. Создаются только один раз
a) Глобальные объекты
b) Локальные объекты
c) Статические объекты
d) Объекты абстрактного класса
15. Копирующий конструктор не может
a) Выполнять мелкое и глубокое копирование
b) Выполнять побитовое и поэлементное копирование
c) Принимать аргументы
d) Создавать копии объектов абстрактного класса
16. К статическому члену класса Student можно отнести
a) Имя студента
b) Средний балл в зачетной книжке
c) Общее количество прослушанных студентом часов
d) Количество студентов
17. Следующая строка кода class SleeperSofa : public Bed, public Sofa демонстрирует
a) Ромбовидное наследование
b) Полиморфизм
c) Наследование
d) Множественное наследование
18. Виртуальное наследование используется для устранения неоднозначностей при
a) Множественном наследовании
b) Полиморфизме
c) Инкапсуляции
d) Деструкции объектов
19. Позднее связывание
a) Более гибкое
b) Более быстрое
c) Требует меньше памяти
d) Определяет связь между объектом и функцией на этапе компиляции
20. Раннее связывание
a) Определяет связь между объектом и функцией на этапе выполнения
b) Используется при вызове стандартных функций, перегруженных функций.
c) Уменьшает скорость исполнения программы
d) Достигается с помощью использования виртуальных функций
21. Чтобы сделать функцию-член полиморфной, нужно пометить ее ключевым словом
a) polymorphic
b) static
c) protected
d) virtual
22. Директива препроцессора, обеспечивающая включение в программу средств связи со стандартными потоками ввода/вывода:
a) for (; ;)
b) namespace std
c) # include
d) int main()
23. Выполнение программы начинается:
a) С функции main()
b) С функции fn()
c) С последовательности операторов, заключенных в фигурные скобки
d) С ключевого слова cout
24. Выбрать верное утверждение:
a) Переменные должны быть объявлены перед их использованием
b) Переменные должны быть использованы перед их объявлением
c) Неявным определением переменной является ее первое упоминание в левой части выражения
d) Объявленную переменную всегда необходимо инициализировать
25. Выбрать верное утверждение:
a) Для вычисления среднего арифметического оптимально использовать переменные
целочисленного типа
b) Попытка присвоить вещественной переменной значение 1.2345 приведет к отбрасыванию
дробной части
c) Попытка присвоить вещественной переменной значение 1.2345 приведет к округлению числа
d) Вещественные переменные не могут использоваться для перечисления
26. Значение (-я) булевого типа данных:
a) false
b) TRUE и FALSE
c) True
d) -1, 0 или 1.
27. Понижающее приведение – это
a) Приведение типа char к типу string
b) Приведение типа unsigned к типу unsigned int
c) Преобразование типа большего размера в меньший
d) Преобразование типа меньшего размера в больший
28. К унарным операторам относится оператор
a) ++
b) &
c) /
d) +=
29. В результате выполнения следующего фрагмента кода
int nomOfStudents, nomOfBook;
nomOfStudents = 25;
nomOfBook = ++ nomOfStudents;
переменные nomOfStudents и nomOfBook будут иметь следующие значения:
a) nomOfStudents = 25; nomOfBook = 25
b) nomOfStudents = 25; nomOfBook = 26
c) nomOfStudents = 26; nomOfBook = 25
d) nomOfStudents = 26; nomOfBook = 26
30. Каким будет результат работы программы
a) c = 9
b) c = 9,999999
c) c = 0
d) c = 1
31. Каким будет результат работы программы
a)
b)
c)
d)
32. После выполнения инструкции break (строка 19) в следующей программе
управление будет передано строке под номером
a) 25
b) 13
c) 21
d) 23
33. Что будет выведено на экран в результате работы следующей программы:
a) 012D.
b) 0112D.
c) 0112.D
d) 0112.D.
34. Какие символы используются в языке C++ для обозначения начала и конца блока
a) { }
b) ( )
c)
d) begin end
35. Программа, которая переводит входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке, называется:
a) Транслятор
b) Компилятор
c) Интерпретатор
d) Отладчик
36. Для чего используются встроенные функции
a) Для уменьшения размера программы
b) Для удаления лишних функций
c) Для увеличения скорости программы
d) Для инкапсуляции
37. Перегрузкой функции называется
a) Наличие множества вызываемых функций в теле одной функции
b) Длина кода функции более 100 строк
c) Сигнатура функции
d) Возможность называть несколько разных функций одним и тем же именем
38. Прототип функции содержит:
a) Имя функции, количество и типы аргументов, тело функции, возвращаемый тип данных.
b) Возвращаемый тип данных, типы аргументов и тело функции
c) Имя функции, количество и типы аргументов и возвращаемый тип данных
d) Имя и тело функции
39. В строке int X [100] = {50};
a) Все 100 элементов массива инициализируются значением 50
b) Все 50 элементов массива инициализируются значением 100
c) Сотый элемент массива инициализируется значением 50
d) Пятидесятый элемент массива инициализируется значением 100
40. В следующем фрагменте
a) A – фактический параметр, j – формальный параметр
b) A – формальный параметр, j – фактический параметр
c) A и j – фактические параметры
d) A и j – формальные параметры
41. Функция для сравнения двух строк (без учета регистра):
a) int strlen (string)
b) char *strncpy (target, source, n)
c) char *strcpy (target, source)
d) int stricmp (source1, source2)
42. При работе с указателями знак & используется для
a) Записи логического И
b) Записи логического ИЛИ
c) Получения адреса ячейки памяти
d) Разыменования и получения значения из ячейки памяти