Информатика: список вопросов для студентов первого курса
Материал из Department of Theoretical and Applied Mechanics
Список вопросов к экзамену по языкам программирования[править]
- Преподаватель: Панченко Артем Юрьевич, Асонов Игорь Евгеньевич
- Семестр: весна 2013
- Группа: 08 (10510)
- Предмет: Информатика
- В каждом билете один вопрос.
- Для чего нужно объектно-ориентированное программирование? Процедурные языки. Деление на функции. Недостатки структурного программирования. Неконтролируемый доступ к данным. Моделирование реального мира. Объектно-ориентированный подход. ООП: подход к организации программы. Характеристики объектно-ориентированных языков. Объекты. Классы. Наследование. Повторное использование кода.
- Структура программы (Функции, Операторы, Разделяющие знаки). Строковые константы. Директивы препроцессора. Синтаксис комментариев. Переменные целого типа. Целые константы. Оператор вывода. Символьные переменные. Определение переменных при первом использовании. Каскадирование операции <<. Выражения. Приоритеты выполнения операций. Вещественные типы. Префикс const. Тип bool. Без знаковые типы данных. Преобразования типов. Арифметические операции. Библиотечные функции.
- Циклы. Варианты цикла for. Определение счетчика цикла внутри оператора цикла for. Несколько инициализирующих выражений и условий цикла. Цикл while. Несколько операторов в цикле while. Приоритеты арифметических операций и операций отношения. Цикл do. Ветвления. Функция exit().Логические операции. Приоритеты операций С++. Операторы перехода. Глобальные переменные.
- Структуры. Перечисления.
- Простые функции. Передача аргументов в функцию. Значение, возвращаемое функцией. Ссылки на аргументы. Перегруженные функции. Рекурсия. Встраиваемые функции. Аргументы по умолчанию. Область видимости и класс памяти. Возвращение значения по ссылке. Константные аргументы функции.
- Объекты и классы. Простой класс. Класс как тип данных. Конструкторы. Объекты в качестве аргументов функций. Конструктор копирования по умолчанию. Объекты, возвращаемые функцией. Классы, объекты и память. Статические данные класса. Const и классы. Зачем нужны классы?
- Основы массивов. Массивы объектов. Строки. Массивы строк.
- Перегрузка унарных операций. Перегрузка бинарных операций. Преобразование типов. «Подводные камни» перегрузки операций и преобразования типов. Ключевые слова explicit и mutable.
- Наследование. Базовый и производный классы. Конструкторы производного класса. Операция разрешения и перегрузка функций. Иерархия классов. Абстрактный базовый класс. Общее и частное наследование. Уровни наследования. Множественное наследование. Включение: классы в классах.
- Адреса и указатели. Операция получения адреса &. Указатель на void. Указатели и массивы. Указатели-константы и указатели-переменные. Указатели и функции. Указатели на строки. Управление памятью: операции new и delete. Указатели на объекты. Связный список. Указатели на указатели.
- Виртуальные функции. Виртуальные базовые классы. Дружественные функции. Статические функции. Инициализация копирования и присваивания. Указатель this. Динамическая информация о типах. Проверка типа класса с помощью dynamic_cast.
- Потоки и файлы. Потоковые классы. Ошибки потоков. Потоковый ввод/вывод дисковых файлов. Указатели файлов. Обработка ошибок файлового ввода/вывода. Файловый ввод/вывод с помощью методов. Перегрузка операторов извлечения и вставки. Память как поток. Аргументы командной строки.
- Шаблоны функций. Шаблоны классов.
- Исключения.
- Стандартная библиотека шаблонов STL. Контейнеры. Алгоритмы. Итераторы.
Литература:
Объектно-ориентированное программирование в C++. Object-Oriented Programming in C++. Р. Лафоре. Питер. 2007 г.
Шаблоны C++: справочник разработчика. Дэвид Вандевурд, Николай М. Джосаттис. ВильямсГ. 2003 г.
Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ. Effective C++: 55 Specific Ways to Improve Your Programs and Designs. Скотт Мэйерс. ДМК Пресс. 2006 г.
Язык программирования С++. Бьерн Страуструп. Бином, Невский Диалект. 2008 г.