- •1.Принципиальная схема компьютера. Потоки управления и потоки данных.
- •3. Принципы фон Неймана.
- •4. Создание исполняемых программ в машинных кодах, на Ассемблере и на языках высокого уровня.
- •5. Компиляторы и интерпретаторы, их преимущества и недостатки.
- •6. Классификация программных кодов. Схема создания исполняемого кода.
- •8. Определение и свойства алгоритма. Способы записи алгоритмов.
- •9. Блок-схемы. Основные управляющие структуры блок-схем.
- •10. Технологии программирования. Структурное программирование.
- •17. Операторы присваивания, инкремента и декремента. L-value выражения.
- •18. Условный оператор. Оператор запятая.
- •19. Инструкция-выражение. Инструкции выбора if и switch.
- •20. Инструкции передачи управления..
- •22. Алгоритмы обработки числовых данных (алгоритм Евклида, нахождение всех делителей числа, нахождение простых делителей числа, нахождение простых чисел, чисел Фибоначчи).
- •23. Указатели. Типизированные и безтиповые указатели. Операция разыменования и операция получения адреса.
- •25. Арифметические операции над указателями.
- •26. Проблемы и типичные ошибки при работе с указателями.
- •30. Двумерные и многомерные массивы (алгоритмы обработки матриц).
- •31. Многомерные массивы. Реализация многомерных массивов с помощью указателей.
- •32. Динамическое выделение памяти под одномерные и двумерные массивы.
- •34.Передача массивов в качестве параметров.
- •35. Подпрограммы. Определение и объявление подпрограмм. Процедуры и функции.
- •36.Формальные и фактические параметры. Соответствие типов в формальных и фактических параметрах.
- •38. Механизм работы с модифицируемыми параметрами, использующий указатели.
- •40. Использование ссылочного типа при выходе из подпрограмм. Константные ссылки.
- •41. Побочный эффект подпрограмм, его преимущества и недостатки.
- •42. Рекурсия. Формы рекурсивных подпрограмм. Глубина и текущий уровень рекурсии.
- •43. Зацикливание рекурсивных подпрограмм. Примеры неэффективности рекурсии.
- •44. Перегрузка функций. Ошибки, возникающие при перегрузке функций.
- •45.Указатели на функции. Callback-функции.
- •46. Функция main. Передача параметров в функцию main.
- •47. Директивы препроцессора. Директивы #pragma и #include.
- •48. Директивы #define и #undef. Константы времени компиляции.
- •49. Макросы. Преимущества и недостатки использования макросов.
- •50.Директивы условной компиляции. Страж включения.
- •51. Пространства имён. Работа с пространствами имён. Оператор using. Приоритеты и конфликты имён.
- •52. Строки. Операции над строками.
- •54. Строки string. Функции стандартной библиотеки для обработки строк.
- •55. Основные алгоритмы обработки строк (выделение слова, подстроки, разбиение на слова, поиск символа, поиск слова).Ответ в 53.
- •56. Пользовательские типы данных. Перечислимый тип enum.
- •57. Пользовательские типы данных. Тип struct. Массивы структур.
- •58. Объединения (union). Битовые поля.
- •59. Понятие сложности алгоритма. Оценка сложности с использованием о-символики.
- •60. Алгоритмы сортировки и поиска. Обменные сортировки. Сортировки вставками. Сортировки выбором. Сравнительный анализ методов сортировки.
- •61. Последовательный поиск. Бинарный поиск. Сравнительный анализ методов поиска.
- •62. Файлы. Основные принципы работы с файлами. Механизм чтения данных из файла. Определение конца файла. Открытие и закрытие файлов.
- •63. Текстовые файлы. Создание и обработка. Функции ввода/вывода в стиле с. Ввод-вывод нуль-терминированных строк. Посимвольный ввод-вывод. Форматированный ввод-вывод.
- •66. Исключительные ситуации. Системные и пользовательские исключения. Оператор try …catch. Виды блоков catch. Выброс исключений. И их обработка. Оператор throw.
- •70. Структура данных очередь. Кольцевая очередь. Реализация очереди с использованием списков.
- •71. Структура данных стек. Реализация стека с использованием массива.
- •72. Структура данных стек. Реализация стека с использованием списков.
- •73. Структуры данных. Списки. Типы списков. Представление этих структур в статической и динамической памяти. Обработка однонаправленных и двунаправленных списков. Сборка мусора.
- •75. Реализация линейного однонаправленного списка с использованием массивов.
- •76. Деревья. Обходы деревьев.
- •77. Бинарные поисковые деревья. Определение, концевой обход бпд.
- •78. Поиск и вставка нового элемента в бпд.
- •79.Удаление элемента из бпд.
- •80. Реализация бпд с использованием динамической памяти.
34.Передача массивов в качестве параметров.
Одномерные массивы – параметры Формальный параметр массив можно объявить тремя способами: массив с фиксированной длиной; безразмерный массив указатель, тип которого будет совпадать с типом элементов массива. При вызове функции, параметром которой является массив, в качестве фактического параметра указывается имя массива без индексов.
Двумерные массивы – параметры
Двумерный массив как формальный параметр можно объявить следующими способами: 1. Двумерный массив с фиксированной длиной; 2. Двумерный массив с фиксированной размерностью первого измерения, т.е. второй размерностью (количество столбцов); 3. Указатель, которому при вызове будет соответствовать адрес первого элемента двумерного массива; 4. Массив указателей на массивы строк; 5. Динамический двумерный массив.
35. Подпрограммы. Определение и объявление подпрограмм. Процедуры и функции.
Подпрограмма – это именованная группа операторов, оформленная специальным образом, которая может вызываться по имени. При вызове подпрограммы управление вычислительным процессом передается подпрограмме.Различают объявление и определение функции. Объявление (прототип) функции совпадает с ее заголовком, отличие лишь в том, что оно заканчивается точкой с запятой: int max3(int a,int b,int c); В объявлении можно не указывать имена формальных параметров: int max3(int,int,int); Определение функции описывает, как она работает, т.е. какие действия надо выполнить, чтобы получить искомый результат. Определение функции состоит из заголовка и тела.Определение функции задает:- тип возвращаемого значения, - имя функции, - типы и число формальных параметров, - объявления локальных переменных, - операторы ( тело функции), определяющие действие функции. Подпрограммы бывают двух типов: процедуры и функции. В С и С ++ есть только функции.
36.Формальные и фактические параметры. Соответствие типов в формальных и фактических параметрах.
При вызове функции вместо формальных подставляются фактические параметры – значения, с которыми функция будет работать.
Функцию можно рассматривать как операцию, определенную пользователем. Операнды функции, или формальные параметры, задаются в списке параметров через запятую. Список параметров заключается в круглые скобки. Через параметры в функцию можно передавать значения. Параметр описывает тип значения, которое будет передано в функцию при ее вызове.
37. Способы передачи параметров (по значению и по адресу). Реализация передачи параметров в C++.Все параметры в функции C++ передаются по значению, т. е. при вызове функции в стек заносится копия значения фактического параметра, и операторы в теле функции работают с этой копией. Поэтому значения фактических параметров, которые переданы в функцию, не изменяются. Передача параметров по значению предусматривает следующие действия:1. При компиляции функции выделяются участки памяти для формальных параметров. 2. Формальные параметры - это внут-ренние объекты функции. Для параметров типа float формируются объекты типа double. Для параметров типа char, short int создаются объекты типа int. 3. Если параметром является массив, то формируется указатель на начало этого массива и он служит представлением массива-параметра в теле функции.
Вычисляются значения выражений, использованных в качестве фактических параметров при вызове функции. 5. Значения выражений-фактических параметров заносятся в участки памяти, выделенные для формальных параметров функции. 6. В теле функции выполняется обработка с использованием значений внутренних объектов-параметров, и результат передается в точку вызова функции как возвращаемое ею значение. 7. Никакого влияния на фактические параметры функция не оказывает.