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

Лабы / ЭТМО / Этмо_экзамен

.doc
Скачиваний:
33
Добавлен:
16.04.2013
Размер:
35.33 Кб
Скачать

ВОПРОСЫ ПО КУРСУ «ООП» ДЛЯ ЭТМО (2003/04 ГГ.)

Лектор: старший преподовотель кафедры ВТ Березовский А.В.

Примечания.

  1. Число в скобках – количество в штуках. Например: аддитивные (2) – при ответе нужно рассмотреть 2 аддитивные операции + и –.

  2.  или  – необходимо привести поясняющий(ие) пример(ы).

  1. Сравнение С и С++: основатели, концепции. ООП и его основные черты: инкапсуляция, полиморфизм, наследование. Этапы формирования исполняемого файла из исходного текста.

  2. Операции (operator) в С++. Унарные операции (): взятия адреса, разыменования, изменения знака, инверсии, отрицания, инкремента, декремента, размера объекта. Бинарные операции (): аддитивные (2), мультипликативные (3), сдвига (2), поразрядные (3), отношения (6), присваивания (10), выбора элементов (2), особые (2), области видимости (1), разделитель (1). Тернарная операция ().

  3. Динамическое распределение памяти: этапы (5),  с картой памяти. Приоритеты операций: 16 рангов, ассоциативность.  на приоритеты и ассоциативность.

  4. Типы данных в С++ (11): размеры, диапазон, иерархия. Скалярные (4) и агрегатные (4) типы. Производные типы (6) и способы их образования (). Тип void ().

  5. Операции преобразования типов (2 формы и ограничение) и правила применения ().

  6. Области действия и видимости переменных. Локальные и глобальные переменные.  с использованием операции ::. Время жизни переменных.

  7. Условные операторы и циклы в С++ (синтаксис, особенности, ): if/else, switch/case, while, пустой оператор, do while, прерывания выполнения (3).

  8. Пользовательские типы (синтаксис, ): переименование типов и перечисляемые типы. Структуры, объединения (синтаксис, , особенности размещения в памяти, размер).

  9. Структуры (struct). Инициализация полей. Доступ к ним через указатели и ссылки. Программа, реализующая двунаправленный список.

  10. Объединения (union). Представление структур и объединений в памяти. Выравнивание по четным адресам. Правила инициализации и работы с объединениями.

  11. Символьные массивы и основные функции из библиотеки string.h.  использования.

  12. Препроцессор С++. Директивы, назначение, ограничения на них и : #define, #undef, #, ##, #include, макросы с параметрами. Недостатки.

  13. Препроцессор С++. Условная компиляция и ее директивы (4). Правила условной компиляции (6). Операторы (): #defined, #line, #error. Предопределенные макросы (): __LINE__, __FILE__, __DATE__, __TIME__.  (2) макросов с параметрами.  защиты заголовочного файла от повторного включения.

  14. Функции, описание функции (прототип), определение функции, вызов, список аргументов, возвращаемое значение, взаимодействие функций main с операционной системой. Рекурсии. Оператор передачи возвращаемого значения.

  15. Вызов функции (). Фактические и формальные параметры (). Значения по умолчанию (правила, ). Техника работы с функциями, имеющих переменное количество параметров (явное указание количества, стандартные макросы va_ ), .

  16. Массивы и функции. Способы работы с многомерными массивами: преобразование к одномерному, массивы указателей, использование классов. Индексная арифметика.

  17. Указатели и техника работы с ними. Константные указатели и указатели на константу. Указатели void*-типа ().

  18. Указатели на функции. Массив указателей на функции. Передача указателей на функцию.  использования стандартной функции qsort.

  19. Ссылки и правила (3) работы с ними. Ограничения. Способы инициализации ссылок. Ссылки при работе с функциями: формальные параметры, ссылки на функцию, ссылка как возвращаемое значение. Ссылки и массивы.

  20. Классы и объекты. Управление доступом и перекрытие данных в классах, структурах и объединениях (таблица, ). Определение элементов-функций (ЭФ) внутри и вне класса. Встроенные ЭФ. Указатель на ЭФ и операции ,* и ->* (). Операторы доступа (2) к ЭД и ЭФ. Указатель this.

  21. Специальные элементы-функции, назначение: конструктор, деструктор.

  22. Перегрузка элементов-функций (ЭФ) и операций класса. Правила и ограничения.

  23. Друзья класса. Назначение и правила. Указатель this, дружественная функция и операция присваивания. Перегруженные операции-друзья.  для operator + с операндами «объект», «целое» в произвольном порядке.

  24. Бинарные операции: операции отношения и логические операции. Особенности и . Перегрузка унарных операторов как элемент класса и с помощью friend.

  25. Наследование классов и полиморфизм ООП. Концепция иерархии классов. Базовый и производный классы: определения и синтаксис. Комбинации ключей доступа, доступа в базовом и производном классах (таблица).

  26. Конструкторы и деструкторы в наследовании. Правила (4) и .

  27. Виртуальные функции и классы. Отличие виртуальных функций от перегруженных функций. Условия работы для виртуальных функций.

  28. Правила для виртуальных функций. Причины и правила использования чистой виртуальной функции.

  29. Множественное наследование и базовые классы. Постановка и решение проблемы двух базовых классов в иерархии классов.

  30. Множественное наследование. Абстрактные классы и чистые виртуальные функции. .

  31. Ввод-вывод в С++. Библиотеки. Потоки и буферы. Подключаемые файлы и классы. Виды потоков по направлению Иерархия потоковых классов. Базовые классы для потоков. Достоинства потоков. Стандартные потоки (4) для базовых типов. Перегрузки потоков для пользовательских типов.

  32. Форматирование потоков ввода-вывода С++. Форматирующие функции-элементы и : ширина поля, заполняющий символ, точность вещественных чисел. Флаги форматирования и : методы, флаги.

  33. Манипуляторы потоков С++, особенности и : простые , параметризированные . Ошибки потоков и : тип io_state, функции опроса и установки состояния потока.

  34. Файловый ввод-вывод с использованием потоков. Применяемые классы. Конструкторы файловых потоков.  посимвольной перезаписи из файла в файл.

  35. Режимы доступа в потоках С++: тип open_mode. . Закрытие файла.

  36. Неформатированный ввод-вывод С++. Функции и : read, write, get(2), getline, ignore, gcount, peek, putback, seekg, seekp.

  37. Шаблоны функций С++, .

  38. Шаблоны классов С++, . Достоинства и недостатки шаблонов.

  39. Управление исключениями в С++ и достоинства механизма.

  40. Неассоциативные контейнеры,  использования vector<>.

  41. Ассоциативные контейнеры,  использования map<>.

  42. Стандартные объекты-функции,  использования. Конструирование О-Ф.

  43. Алгоритмы стандартной библиотеки шаблонов. Группы алгоритмов, .

Экзаменационный билет состоит из 2 вопросов и 1 задачи. Список задач оглашается на консультации.

Продолжительность письменного ответа на билет – 60 мин.

Соседние файлы в папке ЭТМО