Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Магистратура Языки программирования С,C++ / Экзаменационные билеты по дисциплине ЯП,C++

.pdf
Скачиваний:
5
Добавлен:
23.05.2023
Размер:
185.34 Кб
Скачать

Экзаменационные билеты по дисциплине «Языки программирования C/C++»

Список теоретических вопросов

1.Языки программирования С и С++. Краткая история C и C++. Эффективность программ на C++. Сложности программирования на C++.

2.Превращение кода в программу: компиляция и линковка.

3.Структура программы на C/C++: файлы кода и заголовочные файлы.

4.Макросы для защиты от повторного включения заголовочного файла.

5.Зависимости между частями программы.

6.Принципы работы разработанного программного обеспечения. Во что превращается программный код в исполняемом файле?

7.Структура исполняемой программы. Раздел кода, раздел данных.

8.Использование памяти в работающей программе. Стек и «куча».

9.Как передаются параметры функции? Где оказываются переменные? Что происходит при линковке?

10.Указатели и ссылки. Передача параметра с помощью указателя.

11.Взятие адреса переменной и наоборот, значения по адресу.

12.Неинициализированные указатели. Нулевой указатель.

13.Массивы и указатели. Арифметика указателей.

14.Потенциальные проблемы при использовании указателей.

15.Ссылки. Сходство ссылок с указателями и их отличия.

16.Как хранятся ссылки? Что такое «lvalue» и «rvalue»?

17.Динамическая память. Язык C: пояснить назначение malloc/calloc/realloc/free.

18.Динамическая память. Язык C++: пояснить назначение new/delete и new[]/delete[].

19.Динамическая память. Почему необходимо 2 набора операторов?

20.Динамическая память. Потенциальные проблемы. Вопросы производительности.

21.Динамическая память. Двумерные массивы. Ввод-вывод в C и C++.

22.Структуры. Идея инкапсуляции.

23.Структуры. Конструктор и деструктор.

24.Структуры. Поля и методы.

25.Определение класса в .hpp и в .cpp.

26.Класс самоуправляющегося массива. Автоматический вызов деструктора

27.Расскажите об опасности неожиданного завершения программы.

28.Структуры. Различия между malloc/free и new/delete.

29.Структуры.Конструкторкопирования.Проблемысприсваиваниемобъектов.Какзапретитьприсваивание?

30.Структуры. Ограничение прав доступа к членам класса. Почему все поля должны быть «private»? Какие методы стоит делать «public»? Принцип “всегда целого” объекта. «Placement new».

31.Структуры. Инициализация и «const».

32.Структуры. Потенциальные проблемы: неинициализированные переменные и случайное изменение переменных.

33.Возможности инициализации в конструкторе, константные поля.

34.Константные методы. Константное возвращаемое значение.

35.Идея возвращения значения по ссылке.

36.Возможность создания парных методов const/не-const. Константность «this». Ключевое слово «mutable».

37.Наследование, перегрузка, переопределение.

38.Идея расширения типа. Наследование.

39.Неявное приведение типов, «protected».

40.Переопределение методов.

41.Виртуальные методы. Таблица виртуальных методов. Виртуальные методы в конструкторе и деструкторе.

42.Объектно-ориентированное программирование. Основные идеи ООП.

1

43.Различия между наследованием и агрегированием. Особенности наследования в C++. Ключевое слово

«friend».

44.Перегрузка операторов. Какие операторы можно перегружать?

45.Стандартная семантика операторов. Приоритеты операций.

46.Как правильно реализовывать «+» через «+=»?

47.Перегрузка «и» «или», «‘», «’» . Перегрузка «[]» и «()».

48.Ключевые слова «static» и «inline». Вопросы производительности.

49.Статические «глобальные» переменные. Статические «локальные» переменные.

50.Статические функции. Статические члены класса. «Code conventions»

51.Указатели на функции и члены классов.

52.Указатели на методы. Указатели на члены данных.

53.Использование указателей на функции в качестве функторов. Пример использование указателей на мето-

ды – паттерн «Listener».

54.Шаблоны. Что такое «умные» указатели?

55.Шаблоны функций и классов. Вывод шаблонных параметров из аргументов функций.

56.Шаблоны конструкторов и обычных методов.

57.Компиляция шаблонов. Почему их нужно определять в заголовочных файлах? Аргументы шаблонов по умолчанию.

58.Концепция RAII. scoped-ptr, unique-ptr/auto-ptr, shared-ptr, intrusive-ptr, linked-ptr, weak-ptr.

59.Специализация шаблонов. Отличие специализации от перегрузки. Частичная специализация шаблонов.

60.Нетиповые шаблонные параметры. Использование зависимых имён (использование typename).

2

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №1

1.Структуры. Потенциальные проблемы: неинициализированные переменные и случайное изменение переменных.

2.Динамическая память. Почему необходимо 2 набора операторов?

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №2

1.Структуры. Идея инкапсуляции.

2.Шаблоны функций и классов. Вывод шаблонных параметров из аргументов функций.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

3

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №3

1.Как передаются параметры функции? Где оказываются переменные? Что происходит при линковке?

2.Динамическая память. Потенциальные проблемы. Вопросы производительности.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №4

1.Использование указателей на функции в качестве функторов. Пример использование указателей на методы – паттерн «Listener».

2.Динамическая память. Язык C: пояснить назначение malloc/calloc/realloc/free.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

4

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №5

1.Указатели на функции и члены классов.

2.Статические «глобальные» переменные. Статические «локальные» переменные.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №6

1.Идея расширения типа. Наследование.

2.Использование памяти в работающей программе. Стек и «куча».

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

5

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №7

1.Концепция RAII. scoped-ptr, unique-ptr/auto-ptr, shared-ptr, intrusive-ptr, linked-ptr, weak-ptr.

2.Структура исполняемой программы. Раздел кода, раздел данных.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №8

1.Ключевые слова «static» и «inline». Вопросы производительности.

2.Возможность создания парных методов const/не-const. Константность «this». Ключевое слово «mutable».

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

6

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №9

1.Массивы и указатели. Арифметика указателей.

2.Возможности инициализации в конструкторе, константные поля.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №10

1.Структуры. Конструктор и деструктор.

2.Взятие адреса переменной и наоборот, значения по адресу.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

7

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №11

1.Указатели на методы. Указатели на члены данных.

2.Языки программирования С и С++. Краткая история C и C++. Эффективность программ на C++. Сложности программирования на C++.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №12

1.Расскажите об опасности неожиданного завершения программы.

2.Указатели и ссылки. Передача параметра с помощью указателя.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

8

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №13

1.Структуры. Поля и методы.

2.Потенциальные проблемы при использовании указателей.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №14

1.Неявное приведение типов, «protected».

2.Принципы работы разработанного программного обеспечения. Во что превращается программный код в исполняемом файле?

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

9

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №15

1.Класс самоуправляющегося массива. Автоматический вызов деструктора

2.Определение класса в .hpp и в .cpp.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики» (МТУСИ)

Направление подготовки: 09.04.01 Информатика и вы-

числительная техника Профили подготовки: Программная защита информа-

ции;Распределительныеинформационныесистемыиприложения; Управление большими данными Кафедра: Системное программирование Дисциплина: Языки программирования C/C++

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №16

1.Структура программы на C/C++: файлы кода и заголовочные файлы.

2.Идея возвращения значения по ссылке.

Составитель

 

 

к.т.н., доцент Фатхулин Т.Д.

И.О. заведующий кафедрой

 

 

д.т.н., профессор Полищук Ю.В.

 

Утверждено на заседании кафедры №7 от «03» марта 2023г.

10