Список вопросов к экзамену (прошлогодний)

  1. Алгоритмы сортировки сравнением. Сортировка вставкой, выбором, слиянием.
  2. Целые числа. Типы целых чисел в языке Си. Представления чисел со знаком и без знака в виде дополнения двойки. Приведения типов чисел при арифметических операциях.
  3. Числа с плавающей точкой. Представление чисел с плавающей точкой. Функции математической библиотеки.
  4. Логические выражения. Операторы сравнения и логические операторы. Ленивость логических операторов С.
  5. Условный оператор. Вложенные условные операторы. Каскадный условный оператор.
  6. Ввод-вывод с помощью функций scanf и printf.
  7. Циклы while, do-while. Операторы break и continue. Бесконечный цикл. Логические переменные (флаги).
  8. Цикл for. Вложенные циклы. Операторы постфиксного и префиксного инкремента и декремента.
  9. Представление символов в кодировке ASCII. Спецсимволы. Посимвольный ввод-вывод. Цикл по вводимым символам. Константа EOF.
  10. Ввод/вывод в файлы. Функции стандартной библиотеки для ввода/вывода. Текстовый и бинарный режим открытия файлов. Вспомогательные функции.
  11. Препроцессор. Директивы #define, #ifndef, #ifdef, #endif.
  12. Массивы. Индексы массивов. Многомерные массивы.
  13. Линейный поиск значения в массиве. Поиск минимума/максимума. Бинарный поиск.
  14. Строки. Строки как массивы языка С. Символ конца строки. Инициализация строк. Функции стандартной библиотеки для работы со строками.
  15. Механизм вызова функций. Стек. Указатели. Операторы разыменования указателя и получения адреса. Функция swap.
  16. Константа NULL. Приведение типов указателей. Нетипизированные указатели.
  17. Двумерные массивы и указатели. Массивы строк. Аргументы командной строки.
  18. Отладка программы. Локализация ошибок. Отладочная печать. Использование макроса assert.
  19. Классы памяти. Стек, куча, статический класс памяти.
  20. Функции malloc, free, realloc. Динамическое выделение памяти. «Наивная» реализация realloc.
  21. Механизм вызова функций. Стек. Рекурсия.
  22. Раздельная компиляция. Защита от множественного включения.
  23. Структуры. Массивы структур. Выравнивание значений в памяти.
  24. Проектирование программ. Разделение реализации и интерфейса. Абстрактные типы данных.
  25. Указатели на структуры. Тип данных «дерево».
  26. Связные списки.
  27. Хеш-таблицы.
  28. Побитовые операции. Битовый сдвиг влево. Логический и арифметический сдвиг вправо. Побитовые отрицание, логическое «и», логическое «или», логическое исключающее «или». Приоритеты операций.
  29. Методы численного решения одномерных уравнений. Метод деления отрезка пополам, метод хорд, метод Ньютона.
  30. Оператор typedef. Указатели на функции.
  31. Алгоритмическая сложность. Обозначения O(f(n)) и o(f(n))
  32. Конечные автоматы.
  33. Оператор switch.