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

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: «Регламент: * 1 теоретический вопрос в билете, чтобы подтвердить оценку семестра * 1 практи…»)
 
 
Строка 22: Строка 22:
 
- арифметика указателей
 
- арифметика указателей
 
- глобальная/статическая память, стек, куча
 
- глобальная/статическая память, стек, куча
- malloc/calloc/realloc
+
- malloc/calloc/realloc/free
 
- void*
 
- void*
  
03. Стуктуры. Cвязный список на C.
+
03. Стуктуры. Неинтрузивный связный список на C.
 
- неинтрузивная реализация
 
- неинтрузивная реализация
 +
- typedef
 +
 +
04. Стуктуры. Интрузивный связный список на C.
 
- интрузивная реализация
 
- интрузивная реализация
 
- typedef
 
- typedef
  
04. Функции. Указатели на функции.
+
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*));
  
05. Обзор стандартной библиотеки C.
+
06. Обзор стандартной библиотеки C.
 
- string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr)
 
- string.h (memcpy, memcmp, strcpy, strcmp, strcat, strstr, strchr)
- stdlib.h (malloc/free, calloc, realloc, atoi, strtoll, srand/rand, qsort)
+
- stdlib.h (atoi, strtoll, srand/rand, qsort)
  
06. Ввод-вывод на C.
+
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, буферизация
- stdin, stdout
 
- printf, scanf, fprintf, fscanf, sprintf, scanf
 
 
- fread, fwrite, fseek, ftell, fflush
 
- fread, fwrite, fseek, ftell, fflush
 
- обработка ошибок, feof, ferror
 
- обработка ошибок, feof, ferror
  
07. Классы и объекты.
+
09. Классы и объекты.
 
- зачем нужно ООП?
 
- зачем нужно ООП?
 
- инкапсуляция: private/public
 
- инкапсуляция: private/public
 
- конструктор (overloading), деструктор
 
- конструктор (overloading), деструктор
- инициализация
+
- инициализация полей
  
08. Работа с кучей на C++.
+
10. Работа с кучей на C++.
 
- new/delete
 
- new/delete
 
- cоздание объектов в куче
 
- cоздание объектов в куче
Строка 58: Строка 65:
 
- оператор присваивания
 
- оператор присваивания
  
09. Наследование и полиморфизм.
+
11. Наследование и полиморфизм.
 
- protected
 
- protected
 
- virtual (overriding)
 
- virtual (overriding)
Строка 64: Строка 71:
 
- статическое/динамическое связывание
 
- статическое/динамическое связывание
  
10. Умные указатели.
+
12. Умные указатели.
 
- scoped_ptr
 
- scoped_ptr
 
- auto_ptr
 
- auto_ptr
 
- shared_ptr
 
- shared_ptr
  
11. Перегрузка операторов.
+
13. Перегрузка операторов.
 
- бинарные и унарные
 
- бинарные и унарные
 
- в классе/вне классе
 
- в классе/вне классе
- friend
 
 
- приведение типов
 
- приведение типов
  
12. Ключевые слова extern, static, inline.
+
14. Ключевые слова extern, static, inline.
 
- extern у переменных
 
- extern у переменных
 
- static у переменных и функций
 
- static у переменных и функций
Строка 81: Строка 87:
 
- inline у функций
 
- inline у функций
  
13. Разное
+
15. Разное  
- Автотесты
+
- friend
- Декомпозиция программы (Model, View)
+
- ключевые слова const, enum
- Ключевые слова 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)
- автотесты