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

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

Версия 14:42, 19 декабря 2017

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

  1. Программа, состоящая из нескольких файлов.
    1. заголовочные файлы
    2. компиляция и линковка
    3. утилита make
  1. Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C.
    1. применение указателей и ссылок
    2. арифметика указателей
    3. глобальная/статическая память, стек, куча
    4. malloc/calloc/realloc/free
    5. void*
  1. Структуры. Неинтрузивный связный список на C.
    1. неинтрузивная реализация
    2. typedef
  1. Структуры. Интрузивный связный список на C.
    1. интрузивная реализация
    2. typedef
  1. Функции. Указатели на функции.
    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)
  1. Ввод##вывод на C. Текстовые файлы.
    1. FILE, fopen, fclose, r/w, t/b
    2. stdin, stdout, stderr
    3. printf, scanf, fprintf, fscanf, sprintf, sscanf
    4. обработка ошибок, feof, ferror
  1. Ввод##вывод на C. Бинарные файлы.
    1. FILE, fopen, fclose, r/w, t/b, буферизация
    2. fread, fwrite, fseek, ftell, fflush
    3. обработка ошибок, feof, ferror
  1. Классы и объекты.
    1. зачем нужно ООП?
    2. инкапсуляция: private/public
    3. конструктор (overloading), деструктор
    4. инициализация полей
  1. Работа с кучей на C++.
    1. new/delete
    2. cоздание объектов в куче
    3. конструктор копий
    4. оператор присваивания
  1. Наследование и полиморфизм.
    1. protected
    2. virtual (overriding)
    3. таблица виртуальных функций
    4. статическое/динамическое связывание
  1. Умные указатели.
    1. scoped_ptr
    2. auto_ptr
    3. shared_ptr
  1. Перегрузка операторов.
    1. бинарные и унарные
    2. в классе/вне классе
    3. приведение типов
  1. Ключевые слова extern, static, inline.
    1. extern у переменных
    2. static у переменных и функций
    3. static у полей и методов
    4. inline у функций
  1. Разное
    1. friend
    2. ключевые слова const, enum
  1. Элементы проектирования
    1. декомпозиция программы (Model, View)
    2. автотесты
  1. Наследование: детали
    1. сортировка и структуры данных C vs ООП
    2. множественное наследование
    3. private/protected наследование