Информатика: список вопросов для студентов первого курса

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск

Список вопросов к экзамену по языкам программирования[править]

  1. Для чего нужно объектно-ориентированное программирование? Процедурные языки. Деление на функции. Недостатки структурного программирования. Неконтролируемый доступ к данным. Моделирование реального мира. Объектно-ориентированный подход. ООП: подход к организации программы. Характеристики объектно-ориентированных языков. Объекты. Классы. Наследование. Повторное использование кода.
  2. Структура программы (Функции, Операторы, Разделяющие знаки). Строковые константы. Директивы препроцессора. Синтаксис комментариев. Переменные целого типа. Целые константы. Оператор вывода. Символьные переменные. Определение переменных при первом использовании. Каскадирование операции <<. Выражения. Приоритеты выполнения операций. Вещественные типы. Префикс const. Тип bool. Без знаковые типы данных. Преобразования типов. Арифметические операции. Библиотечные функции.
  3. Циклы. Варианты цикла for. Определение счетчика цикла внутри оператора цикла for. Несколько инициализирующих выражений и условий цикла. Цикл while. Несколько операторов в цикле while. Приоритеты арифметических операций и операций отношения. Цикл do. Ветвления. Функция exit().Логические операции. Приоритеты операций С++. Операторы перехода. Глобальные переменные.
  4. Структуры. Перечисления.
  5. Простые функции. Передача аргументов в функцию. Значение, возвращаемое функцией. Ссылки на аргументы. Перегруженные функции. Рекурсия. Встраиваемые функции. Аргументы по умолчанию. Область видимости и класс памяти. Возвращение значения по ссылке. Константные аргументы функции.
  6. Объекты и классы. Простой класс. Класс как тип данных. Конструкторы. Объекты в качестве аргументов функций. Конструктор копирования по умолчанию. Объекты, возвращаемые функцией. Классы, объекты и память. Статические данные класса. Const и классы. Зачем нужны классы?
  7. Основы массивов. Массивы объектов. Строки. Массивы строк.
  8. Перегрузка унарных операций. Перегрузка бинарных операций. Преобразование типов. «Подводные камни» перегрузки операций и преобразования типов. Ключевые слова explicit и mutable.
  9. Наследование. Базовый и производный классы. Конструкторы производного класса. Операция разрешения и перегрузка функций. Иерархия классов. Абстрактный базовый класс. Общее и частное наследование. Уровни наследования. Множественное наследование. Включение: классы в классах.
  10. Адреса и указатели. Операция получения адреса &. Указатель на void. Указатели и массивы. Указатели-константы и указатели-переменные. Указатели и функции. Указатели на строки. Управление памятью: операции new и delete. Указатели на объекты. Связный список. Указатели на указатели.
  11. Виртуальные функции. Виртуальные базовые классы. Дружественные функции. Статические функции. Инициализация копирования и присваивания. Указатель this. Динамическая информация о типах. Проверка типа класса с помощью dynamic_cast.
  12. Потоки и файлы. Потоковые классы. Ошибки потоков. Потоковый ввод/вывод дисковых файлов. Указатели файлов. Обработка ошибок файлового ввода/вывода. Файловый ввод/вывод с помощью методов. Перегрузка операторов извлечения и вставки. Память как поток. Аргументы командной строки.
  13. Шаблоны функций. Шаблоны классов.
  14. Исключения.
  15. Стандартная библиотека шаблонов 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 г.