Вопросы к экзамену по программированию, 1-й курс, 2 семестр, С++
- Строки в С, С++. Организация данных, ввод – вывод, стандартные функции.
- Тип данных – структуры (struct).
- Классы и объекты. Описание, обращение к членам класса.
- Инкапсуляция. Способы ограничения доступа к членам класса.
- Переопределение функций (методов) в С++.
- Конструкторы и деструкторы. Описание, назначение, использование.
- Inline – методы.
- Переопределение операторов в С++.
- Дружественные функции.
- Использование модификатора const при описании функции.
- Ключевое слово this при работе с объектами.
- Наследование: описание, модификаторы наследования.
- Наследование: правило присваивания объектов.
- Наследование: конструкторы и деструкторы при наследовании.
- Наследование: использование кода предка при переопределении методов наследника.
- Виртуальные функции.
- Полиморфизм.
- Конструктор копирования.
- Переопределение операции присваивания.
- Абстрактные классы и чисто виртуальные функции.
- Макросы в языке С.
- Заголовочные файлы и файлы реализации.
- Шаблоны для функций и классов.
- Обработка исключительных ситуаций в С++.
- Использование указателей на функцию.
- Битовая арифметика.
- Линейный список, особенности реализации и основные операции (создание, проверка на пустоту, добавление элемента, удаление элемента, удаление списка ).
- Стек. Принципы работы. Реализация основных операций (создание, проверка на пустоту, добавление элемента, удаление элемента, удаление списка) на основе линейного списка.
- Стек. Принципы работы. Реализация основных операций (создание, проверка на пустоту, добавление элемента, удаление элемента, удаление списка) на основе массива.
- Очередь. Принципы работы. Реализация основных операций (создание, проверка на пустоту, добавление элемента, удаление элемента, удаление списка) на основе линейного списка.
- Очередь. Принципы работы. Реализация основных операций (создание, проверка на пустоту, добавление элемента, удаление элемента, удаление списка) на основе массива.
Проверяемые умения:
1) Классы и объекты
a) Проектирование классов под конкретную задачу
b) Использование конструкторов (и при необходимости деструкторов)
c) Переопределение операторов, в том числе ввода-вывода
2) Битовая арифметика
a) Применение побитовых операций для работы с отдельным битом
b) Уметь реализовать любую операцию со множеством – классом set.
3) Динамические структуры данных: умение реализовать любую операцию из тех, что рассматривались с любым типом данных, который рассматривался (список, стек очередь).