Вопросы к экзамену — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
 
Строка 25: Строка 25:
 
#* string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr, strtok)
 
#* string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr, strtok)
 
#* stdlib.h (atoi, strtoll, srand/rand, qsort)
 
#* stdlib.h (atoi, strtoll, srand/rand, qsort)
# Ввод#*вывод на C. Текстовые файлы.
+
# Ввод-вывод на C. Текстовые файлы.
 
#* FILE, fopen, fclose, r/w, t/b
 
#* FILE, fopen, fclose, r/w, t/b
 
#* stdin, stdout, stderr
 
#* stdin, stdout, stderr

Текущая версия на 20:17, 17 января 2018

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

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