Вопросы экзамена и примерные задачи

Эти вопросы полностью построены на основании программы курса, которая на сайте появилась в самом начале семестра.

  1. Классификация языков программирования (компилируемые, исполняемые на виртуальных машинах и интерпретируемые ЯП). Язык программирования C++. Стандарт языка. Стандартная библиотека.
  2. Структура простейшей программы на C++. Процесс компиляции.
  3. Базовые типы C++. Переменные, константы и литералы. Приведение типов.
  4. Хранение целых и вещественных чисел в памяти компьютера.
  5. Оператор присваивания. Арифметические операторы. Операторы сравнения и логические операторы. Порядок действий (приоритет операторов).
  6. Использование библиотечных функций на примере заголовочного файла cmath
  7. Ветвления в программе. Условный оператор и оператор множественного выбора.
  8. Операторы для организации циклов.
  9. Стандартные потоки ввода/вывода. Средства работы с потоками ввода/вывода. Специальные символы (символ перевода строки, символ табуляции, символ конца строки, нуль-терминатор).
  10. Псевдослучайные числа. Генерация псевдослучайных чисел на C++.
  11. Массивы в C++. Алгоритмы сортировки.
  12. C-строки (символьные массивы). Многомерные массивы.
  13. Ссылки в C++. Указатели в C++. Операция разыменования. Константные указатели и указатели на константы.
  14. Указатели и массивы. Операции над указателями.
  15. Статическая, автоматическая и динамическая память. Типичные ошибки, возникающие при использовании динамической памяти («утечка памяти»).
  16. Функции в C++. Прототип и описание функции.
  17. Формальные и фактические параметры. Передача параметров в функцию по значению, по ссылке, по указателю. Передача массива в функцию.
  18. Рекурсия. Некоторые подходы к замеру производительности программ.
  19. Параметры функций со значениями по умолчанию. Перегрузка функций.
  20. Объектно-ориентированный подход. Абстракция данных. Классы.
  21. Члены класса: поля и методы. Конструкторы и деструкторы. Перегрузка операторов.
  22. Уровни доступа к членам класса. Инкапсуляция.
  23. Наследование.
  24. Полиморфизм и способы его реализации. Шаблоны.

Примеры задач

Задача. Пользователь вводит с клавиатуры натуральное число, проверить корректность ввода, вычислить и вывести на экран сумму цифр введённого пользователем числа.

Задача. Пользователь вводит с клавиатуры трёхзначное натуральное число, которое сохраняется в переменную n, проверить корректность ввода, составить и вывести на экран число из цифр введённого числа n, так, чтобы выведенное число оказалось максимальным из возможных. Например, если пользователь ввёл число 195, то программа должна вывести число 951.

Задача. Пользователь вводит с клавиатуры строку символов (не более 80 символов). Подсчитать и вывести на экран количество раз, которое латинская буква «a» встречается в строке.

Задача. Пользователь вводит с клавиатуры натуральное число не большее 100, которое сохраняется в переменную n, проверить корректность ввода, создать массив из 10 случайных целых чисел из отрезка [-2n;n], вывести массив на экран в строку, подсчитать и и вывести на экран количество положительных чётных чисел в массиве.

Задача. Пользователь вводит с клавиатуры натуральное число, найти и вывести на экран наибольший нетривиальный (т.е. не равный введённому числу) делитель числа, либо сообщить, что число простое.

Задача. Пользователь вводит с клавиатуры строку символов (не более 80 символов). Сообщить, сколько слов в строке. Указание: слова разделяются одним или несколькими пробелами.