
- •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. Реализация бпд с использованием динамической памяти.
17. Операторы присваивания, инкремента и декремента. L-value выражения.
Операторы присваивания В С++ представлены как простой оператор присваивания, так и составные операторы присваивания, совмещающие выполнение арифметической операции или побитовой операции и присваивания. Простой оператор присваивания обозначается символом = (знак равенства), имеет два операнда: операнд1 = операнд2 В результате операнду1 присваивается значение операнда2 и вырабатывается значение, равное значению, полученному первым операндом. Операнд2 может быть выражением.
Составные операторы присваивания Формат: переменная оператор выражение Имеется 10 составных операторов, каждый из которых связан с арифметической или побитовой операцией, требующей двух операндов. Алгоритм выполнения составного оператора: - взять значение первого (левого) операнда; - выполнить требуемую операцию, используя в качестве первого операнда это значение левого операнда, а в качестве второго - выражение в правой части оператора присваивания; - присвоить полученное значение переменной в левой части оператора присваивания. Операторы инкремента и декремента Унарные операторы (++) и (–-) (инкремент и декремент) изменяют на единицу свой операнд. Префиксные (до) операторы указывают, что сначала увеличить (или уменьшить) значение переменной, а затем использовать это значение. Постфиксные (после) указывают, что сначала использовать значение переменной, а затем увеличить (или уменьшить) его.
Понятие L-выражений (L-values) Некоторые операторы (присваивания, декремент, инкремент и т.д.) изменяют значение одного из своих операндов. Не всякое выражение может служить изменяемым операндом таких операций. На этом месте должна стоять конструкция, однозначно адресующая некоторый участок памяти (например, имя переменной). Подобного рода выражения получили название L-выражений (L-values).
18. Условный оператор. Оператор запятая.
Имеет вид: условие ? выражение1 : выражение2 Его результат равен значению выражения1, если условие истинно, и значению выражения2 в противном случае. Это тернарная операция: первый операнд должен быть логическим значением, второй и третий операнды могут быть любого, но одного и того же, типа, а результат будет того же типа, что и третий операнд. Запятая. Служит для перечисления нескольких выражений в одной инструкции. Выражения вычисляются слева направо. Значением всего выражения является значение последнего из выражений. Синтаксис: выражение, выражение[,…,выражение]; Оператор запятая имеет самый низкий приоритет.
19. Инструкция-выражение. Инструкции выбора if и switch.
Любое синтаксически правильно составленное предложение языка С, которое заканчивается символом ‘ ; ‘, называется инструкцией. Любое число инструкций, объединённых в { }, называется блоком. Инструкция выбора if: Синтаксис: if (условие) инструкция1; [else инструкция2;] Инструкция выбора switch: Синтаксис:switch (целоч._выр.) { case константа1: инструкции; case константа2: инструкции; ... case константаN: инструкции; [default: инструкция;]}