- •Максимов м.Н.
- •3. Скалярные типы и выражения 51
- •5. Адреса, указатели, массивы, память 96
- •6. Функции, указатели, ссылки 133
- •7 Структуры, объединения и классы 171
- •Введение
- •Модуль 1
- •1.2. Этапы подготовки исполняемой программы
- •1.3. Системы счисления
- •Представление чисел от 0 до 16 в разных системах счисления
- •2.1. Общие сведения о программах, лексемах и алфавите
- •2.2. Идентификаторы и служебные слова
- •2.3. Типы данных
- •2.4. Константы
- •Типы, выбираемые компилятором по умолчанию для целых констант
- •ZzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzТаблица 2.3 Данные вещественного типа
- •2.5. Операции
- •2.6. Разделители
- •3. Скалярные типы и выражения
- •3.1. Определение и описание переменных
- •3.2. Явное и неявное преобразование типа
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Список литературы
- •Модуль 2
- •4.1. Последовательно выполняемые операторы
- •4.2. Операторы выбора
- •If( выражение) оператор_1 else оператор_2
- •4.3. Операторы цикла
- •4.4. Операторы передачи управления
- •If (условие) break;
- •4.5. Примеры численного моделирования цепей первого порядка
- •5. Адреса, указатели, массивы, память
- •5.1. Указатели и адреса объектов
- •5.2. Адресная арифметика, типы указателей и операции над ними
- •5.3. Свойства указателя типа void*
- •5.4. Свойства объекта cout
- •5.5. Массивы и указатели
- •5.6. Многомерные массивы, массивы указателей, динамические массивы
- •Проектные задания к модулю
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •6.2. Функции с переменным количеством параметров
- •6.3. Рекурсивные функции
- •6.4. Подставляемые (инлайн-) функции
- •6.5. Функции и массивы
- •6.6. Указатели на функции
- •Void f3(float) (...) // Определение функции
- •Int* f4(char *){...} // Определение функции
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Модуль 4
- •7 Структуры, объединения и классы
- •7.1 Структура как тип и совокупность данных
- •7.3 Объединения разнотипных данных
- •7.4 Деревья
- •7.5 Битовые поля структур и объединений
- •7.6 Компонентные функции структурированных объектов
- •7.7 Расширение действия (перегрузка) стандартных операций
- •7.8 Доступ к компонентам структурированного объекта
- •7.9 Классы и шаблоны
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Список литературы
- •Приложение 1
- •Приложение 2 Стандартная библиотека функций языка Си
Проектные задания
Набрать и отладить программу 6.1, выполнить её в пошаговом режиме, в функции print задать значение по умолчанию для параметра vilue.
Набрать и отладить программу 6.2, объяснить, как функция с переменным количеством параметров обменивается данными при её вызове.
Набрать и отладить программу 6.3, объяснить чем способ передачи данных в функцию в программе 6.3 отличается от программы 6.2
Набрать и отладить программу 6.4, нарисовать её алгоритм, рассказать об быстрой сортировки
Написать на языке Си++ несколько примеров подставляемых функций
Набрать и отладить программу 6.5, объяснить чем отличается способ передачи данных в функцию по указателю от передачи данных по значению.
Набрать и отладить программу 6.6 и 6.7, написать свою функцию, вычисляющую сумму элементов массива.
Напишите функцию, принимающую в качестве параметров указатели (или ссылки) на две строки и возвращающую указатель на новую строку, являющуюся результатом слияния этих строк.
Приведите примеры передачи функции как параметра динамического и статического массивов памяти.
Напишите функцию, принимающую указатель (или ссылку) на матрицу в качестве параметра и возвращающую указатель на копию этой матрицы, повернутую по часовой стрелке.
Напишите функцию, принимающую указатель (или ссылку) на матрицу в качестве параметра и возвращающую указатель на копию этой матрицы, повернутую против часовой стрелки.
Напишите функцию, принимающую указатель (или ссылку) на матрицу в качестве параметра и возвращающую указатель на копию этой матрицы, транспонированную относительно неглавной диагонали.
Напишите функцию, принимающую указатель (или ссылку) на матрицу в качестве параметра и возвращающую указатель на копию этой матрицы, повернутую зеркально вниз.
Напишите функцию, принимающую указатель (или ссылку) на матрицу в качестве параметра и возвращающую указатель на копию этой матрицы, повернутую зеркально вправо
Тесты рубежного контроля
Какой тип компоновки имеют функции в языке Си++
Внутренний тип компоновки
Внешний тип компоновки
Могут ли имена функций совпадать
Нет
Да
Нужно ли в описании функции приводить имена формальных параметров
Да
нет
Какие ограничения накладывает синтаксис языка Си++ на начальные значения параметров функций
Никаких
Если параметр имеет умалчиваемое значение, то все параметры, специфицированные справа от него, также должны иметь начальные значения
В какой последовательности по умолчанию функции с переменным количеством параметров размещают свои параметры в стеке
первым обрабатывается и помещается в стек последний из параметров функции
первым обрабатывается и помещается в стек первый параметр функции
Существует ли преимущество у рекурсивных алгоритмов над итерационными.
Да
Нет
У рекурсивных и итерационных алгоритмов имеются свои достоинства и недостатки, поэтому применяются и те и другие.
В чём достоинства подставляемых функций
В малом размере
В простоте реализации
В быстроте выполнения
Какой способ передачи данных в функцию называется передачей по указателю.
Когда формальный параметр функции является объектом
Когда формальный параметр функции является указателем
Найдите, где правильно определён указатель на функцию ptr имеющую тип int и один формальный параметр типа long.
Int (ptr*)(long);
Long ptr (int)
Int* ptr(long);
Таблица правильных ответов
№ Вопроса |
Правильный ответ |
№ Вопроса |
Правильный ответ |
1 |
b |
6 |
c |
2 |
a |
7 |
c |
3 |
b |
8 |
b |
4 |
b |
9 |
a |
5 |
a |
10 |
|