Вопросы к экзамену

Материал из SEWiki
Перейти к: навигация, поиск

При ответе на любой вопрос необходимо приводить "содержательные" примеры. Например: не класс Foo с методов bar, а класс Matrix с методом add.

  1. Программа, состоящая из нескольких файлов.
    1. заголовочные файлы
    2. компиляция и линковка
    3. утилита make
  2. Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C.
    1. применение указателей и ссылок
    2. арифметика указателей
    3. глобальная/статическая память, стек, куча
    4. malloc/calloc/realloc/free
    5. void*
  3. Структуры. Неинтрузивный связный список на C.
    1. неинтрузивная реализация
    2. typedef
  4. Структуры. Интрузивный связный список на C.
    1. интрузивная реализация
    2. typedef
  5. Функции. Указатели на функции.
    1. как происходит вызов функции
    2. реализация сортировки

void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*));

  1. Обзор стандартной библиотеки C.
    1. string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr)
    2. stdlib.h (atoi, strtoll, srand/rand, qsort)
  2. Ввод##вывод на C. Текстовые файлы.
    1. FILE, fopen, fclose, r/w, t/b
    2. stdin, stdout, stderr
    3. printf, scanf, fprintf, fscanf, sprintf, sscanf
    4. обработка ошибок, feof, ferror
  3. Ввод##вывод на C. Бинарные файлы.
    1. FILE, fopen, fclose, r/w, t/b, буферизация
    2. fread, fwrite, fseek, ftell, fflush
    3. обработка ошибок, feof, ferror
  4. Классы и объекты.
    1. зачем нужно ООП?
    2. инкапсуляция: private/public
    3. конструктор (overloading), деструктор
    4. инициализация полей
  5. Работа с кучей на C++.
    1. new/delete
    2. cоздание объектов в куче
    3. конструктор копий
    4. оператор присваивания
  6. Наследование и полиморфизм.
    1. protected
    2. virtual (overriding)
    3. таблица виртуальных функций
    4. статическое/динамическое связывание
  7. Умные указатели.
    1. scoped_ptr
    2. auto_ptr
    3. shared_ptr
  8. Перегрузка операторов.
    1. бинарные и унарные
    2. в классе/вне классе
    3. приведение типов
  9. Ключевые слова extern, static, inline.
    1. extern у переменных
    2. static у переменных и функций
    3. static у полей и методов
    4. inline у функций
  10. Разное
    1. friend
    2. ключевые слова const, enum
  11. Элементы проектирования
    1. декомпозиция программы (Model, View)
    2. автотесты
  12. Наследование: детали
    1. сортировка и структуры данных C vs ООП
    2. множественное наследование
    3. private/protected наследование