Вопросы к экзамену первого семестра — различия между версиями
Материал из SEWiki
Linsky (обсуждение | вклад) (Новая страница: «Регламент: * 1 теоретический вопрос в билете, чтобы подтвердить оценку семестра * 1 практи…») |
Linsky (обсуждение | вклад) |
||
Строка 22: | Строка 22: | ||
- арифметика указателей | - арифметика указателей | ||
- глобальная/статическая память, стек, куча | - глобальная/статическая память, стек, куча | ||
− | - malloc/calloc/realloc | + | - malloc/calloc/realloc/free |
- void* | - void* | ||
− | 03. Стуктуры. | + | 03. Стуктуры. Неинтрузивный связный список на C. |
- неинтрузивная реализация | - неинтрузивная реализация | ||
+ | - typedef | ||
+ | |||
+ | 04. Стуктуры. Интрузивный связный список на 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. | |
- string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) | - string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) | ||
− | - stdlib.h ( | + | - stdlib.h (atoi, strtoll, srand/rand, qsort) |
− | + | 07. Ввод-вывод на C. Текстовые файлы. | |
+ | - FILE, fopen, fclose, r/w, t/b | ||
+ | - stdin, stdout, stderr | ||
+ | - printf, scanf, fprintf, fscanf, sprintf, sscanf | ||
+ | - обработка ошибок, feof, ferror | ||
+ | |||
+ | 08. Ввод-вывод на 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++. | |
- new/delete | - new/delete | ||
- cоздание объектов в куче | - cоздание объектов в куче | ||
Строка 58: | Строка 65: | ||
- оператор присваивания | - оператор присваивания | ||
− | + | 11. Наследование и полиморфизм. | |
- protected | - protected | ||
- virtual (overriding) | - virtual (overriding) | ||
Строка 64: | Строка 71: | ||
- статическое/динамическое связывание | - статическое/динамическое связывание | ||
− | + | 12. Умные указатели. | |
- scoped_ptr | - scoped_ptr | ||
- auto_ptr | - auto_ptr | ||
- shared_ptr | - shared_ptr | ||
− | + | 13. Перегрузка операторов. | |
- бинарные и унарные | - бинарные и унарные | ||
- в классе/вне классе | - в классе/вне классе | ||
− | |||
- приведение типов | - приведение типов | ||
− | + | 14. Ключевые слова extern, static, inline. | |
- extern у переменных | - extern у переменных | ||
- static у переменных и функций | - static у переменных и функций | ||
Строка 81: | Строка 87: | ||
- inline у функций | - inline у функций | ||
− | + | 15. Разное | |
− | - | + | - friend |
− | - | + | - ключевые слова const, enum |
− | - | + | |
+ | 16. Элементы проектирования | ||
+ | - декомпозиция программы (Model, View) | ||
+ | - автотесты | ||
+ | |||
</pre> | </pre> |
Текущая версия на 00:46, 20 января 2017
Регламент:
- 1 теоретический вопрос в билете, чтобы подтвердить оценку семестра
- 1 практическая задача на бумаге, чтобы поднять оценку на балл
Примеры из лекций:
01. Программа, состоящая из нескольких файлов. - заголовочные файлы - компиляция и линковка - утилита make 02. Указатели, массивы, ссылки. Три вида памяти. Работа с кучей на C. - применение указателей и ссылок - арифметика указателей - глобальная/статическая память, стек, куча - malloc/calloc/realloc/free - void* 03. Стуктуры. Неинтрузивный связный список на C. - неинтрузивная реализация - typedef 04. Стуктуры. Интрузивный связный список на C. - интрузивная реализация - typedef 05. Функции. Указатели на функции. - как происходит вызов функции - реализация сортировки void sort(void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); 06. Обзор стандартной библиотеки C. - string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr) - stdlib.h (atoi, strtoll, srand/rand, qsort) 07. Ввод-вывод на C. Текстовые файлы. - FILE, fopen, fclose, r/w, t/b - stdin, stdout, stderr - printf, scanf, fprintf, fscanf, sprintf, sscanf - обработка ошибок, feof, ferror 08. Ввод-вывод на C. Бинарные файлы. - FILE, fopen, fclose, r/w, t/b, буферизация - fread, fwrite, fseek, ftell, fflush - обработка ошибок, feof, ferror 09. Классы и объекты. - зачем нужно ООП? - инкапсуляция: 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) - автотесты