Магистратура Языки программирования С,C++ / Экзаменационные билеты по дисциплине ЯП,C++
.pdfЭкзаменационные билеты по дисциплине «Языки программирования 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