- •Записать тернарную операцию для оператора (л.6):
- •Определите понятие «оператор». «Пустой оператор» и пример его использования. Каждый ли оператор заканчивается «точкой с запятой»? (л.6)
- •Синтаксис оператора if. (л.6).
- •Использование вложенного условного оператора для оптимизации выполнения условия. (л.6).
- •Указать область видимости переменной k: (л.6).
- •Использование операторов break, сontinue, return и функции exit() (л.6) .
- •Интерпретировать выражения:
- •Указать ошибку:
- •Являются ли эквивалентными приведенные две группы операторов:
- •Синтаксис оператора цикла с предусловием. Организация на его основе бесконечного цикла (л.7) .
- •Синтаксис оператора цикла с постусловием. Организация на его основе бесконечного цикла (л.7) .
- •Синтаксис оператора цикла for. Организация на его основе бесконечного цикла. Использование «неполных» форм записи оператора цикла for (л.7) .
- •Выражение оператора цикла for через while (л.7) .
- •2.1. Определить, какому интервалу из области определения функции принадлежит текущее значение х.
- •2.2. Вычислить значение функции y по соответствующей формуле.
- •2.3. Вывести значения X и y
- •. Нахождение корня нелинейного уравнения методом половинного деления
- •Приемы эффективного программирования (л.7) .
- •Определение наибольшей степени целого числа 100, которую можно вычислить, пользуясь типом long
- •Табулирование функции на отрезке с выбором расчетной формулы (л.7) . Табулирование функции на отрезке
- •Вычисление суммы членов бесконечного ряда (ряд Тейлора) на отрезке (л.7) .
- •Вычисление значения многочлена на отрезке по схеме Горнера (л.7) .
- •Проверить, является ли заданное число простым. (л.7) Проверка, является ли число простым
- •Логическое представление в компьютере целых чисел (с примерами) (л.8) .
- •Логическое представление в компьютере вещественных чисел (с примерами) (л.8) .
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Объяснить получение результата*:
- •Определение и способы инициализации указателей. Операции над указателями (л.9) .
- •Операции над указателями
- •Операции инкремента и декремента
- •Укажите особенности использования указателей типа void * (л.9) .
- •Составить описание типа(л.9):
- •Проинтерпретируйте выражение int *(*pp[15])(). (л.9)
- •Проинтерпретируйте выражение int *(*pp[15])(int *).(л.9)
- •Определите понятие «ссылка». Как инициализировать ссылку? (л.9)
- •Как изменить значение ссылки после инициализации? Можно ли построить ссылку на ссылку? указатель на ссылку? (л.9)
- •Виды указателей (указатель на константу, константный указатель, константный указатель на константу) и их особенности (л.9) . Виды указателей указатель на константу
- •Указатель-константа
- •Указатель-константа на константу
- •Указатель на указатель
- •Возможные присваивания (л.9):
- •Указать и объяснить ошибку, если она есть (л.9):
Операции над указателями
Для указателей-переменных разрешены операции:
доступа по указателю * (разыменования или косвенного обращения к объекту),
получения адреса (&),
присваивания,
приведения типов,
сложения с константой и вычитания константы,
вычитания двух указателей,
инкремента или декремента,
сравнения указателей (одного типа).
Можно ли определить указатель на указатель на заданный тип? Если да, то дайте объяснение, что это за объект (л.9) .
Результат выполнения операторов (л.9):
int *p=new int;
int *q=p;
delete p;
p=NULL;
Что выполняют следующие операторы? (л.9)
int *p=new int;
if (p=NULL) ….;
Указать правильные объявления указателей р и рр (л.9):
char *p, pp=NULL;
char *pp;
char *p=new char;
char *pp=p;
Особенности выполнения операций + - и ++ -- для указателей (л.9) .
Операции инкремента и декремента
!!! Помним об особенностях префиксных операций инкремента и декремента: они lvalue, поэтому выражения вида ++p =…; являются верными. В то же время, выражения вида p++ =…; где р – указатель, дадут ошибку компиляции, т.к. постфиксные операции инкремента и декремента не есть lvalue.
Укажите особенности использования указателей типа void * (л.9) .
Указатель void* (на объект типа void) является особым типом указателя. Ключевое слово void говорит об отсутствии данных о размере объекта в памяти. Указателю void* можно присвоить значение указателя любого типа, а также сравнивать его с любыми указателями. Так как компилятору (для корректной интерпретации ссылки на память через указатель) нужна информация о числе байтов, участвующих в операции, необходимо во всех случаях, при использовании указателя void*, явным образом приводить тип указателя (преобразовывать указатель) к требуемому типу.
Для доступа к объекту через указатели в С++ определена операция *(операция разыменования, т.е. обращения к содержимому участка памяти, адрес которого хранится в указателе). Чтобы операция разыменования выполнялась правильно, указатель должен иметь некоторое значение, получить которое он может в результате инициализации или присваивания.
Составить описание типа(л.9):
функция, невозвращающая значения, с параметрами типа
указатель на символ и ссылка на целое;
указатель на функцию, невозвращающую значения, с параметрами типа
указатель на символ и ссылка на целое;
функция с параметром, имеющим тип
указателя на функцию, невозвращающую значения, с параметрами типа
указатель на символ и ссылка на целое;
функция без параметров, возвращающая
указатель на функцию, невозвращающую значения, с параметрами типа
указатель на символ и ссылка на целое;
Запишите прототип функции, у которой параметр и возвращаемое значение имеют тип указателя на функцию с параметрами типа указатель на символ и ссылка на целое и невозвращающую значения. (л.9)
Проинтерпретируйте выражение int *(*pp[15])(). (л.9)
Проинтерпретируйте выражение int *(*pp[15])(int *).(л.9)
