

Ответ: меняется порядок столбцов.
34.
Условия:
1.Массив S[8]:
a.Это массив из 8 символов, где хотя бы один из них равен '\0' (терминальный ноль, используемый для обозначения конца строки в C/C++).
2.Указатель p:
a.Он инициализируется адресом первого элемента массива S (p = S).
3.Цикл for:
for |
(p |
= |
S; |
*p; |
p++); |
a.Начальное значение p равно адресу первого элемента массива.
b.Условие цикла: *p (значение по адресу, на который указывает p) должно быть истинным (не равно 0).
c.Инкремент p++: указатель смещается на следующий элемент массива.
4.Цикл завершится, когда *p == '\0', т.е. указатель p указывает на символ '\0'.

Вывод:
После завершения цикла указатель p будет хранить адрес первого символа '\0' в
массиве S.
Правильный ответ:
Указатель p будет хранить адрес первого символа '\0' в массиве S.
35.
Ответ: по идее как на скрине.
36.
Ответ: перейти в конец файла для записи новых данных после уже имеющихся; переместиться на любую позицию внутри файла; осуществить форматированный вывод данных.
37.

#include <iostream> int a[] = { 1,2,3,4,5 };
int* p[] = { a,a + 1,a + 2,a + 3,a + 4 }; int** pp = p;
void main()
{pp++; pp++; std::cout << pp - p << ' ' << *pp - a << ' ' << **pp;}
Комментарий:
Массив p содержит указатели на элементы массива a.
p[0] указывает на a[0] (т.е. на 1),
p[1] указывает на a[1] (т.е. на 2),
p[2] указывает на a[2] (т.е. на 3),
p[3] указывает на a[3] (т.е. на 4),
p[4] указывает на a[4] (т.е. на 5).
Объявление указателя на указатель pp:
int** pp = p; Указатель pp инициализируется указателем на массив указателей p. Таким образом, pp изначально указывает на p[0].
Увеличение указателя pp:
pp++; // Теперь pp указывает на p[1] pp++; // Теперь pp указывает на p[2] После двух инкрементов pp указывает на третий элемент массива p, то
есть на p[2], который указывает на a[2] (т.е. на 3).
Вывод результатов:
std::cout << pp - p << ' ' << *pp - a << ' ' << **pp;
pp - p: Это выражение вычисляет разницу между указателями pp и p. Поскольку pp указывает на p[2], а p указывает на p[0], разница будет равна 2 (то есть pp указывает на второй элемент массива p).
pp - a: Здесь pp разыменовывает указатель pp, получая p[2], который указывает на a[2]. Разница между p[2] и a (который указывает на a[0]) также будет равна 2, так как a[2] находится на два элемента дальше от начала массива a.
pp: Это выражение разыменовывает pp дважды. Сначала *pp дает указатель на a[2], а затем pp возвращает значение, на которое указывает этот указатель, то есть 3.
Ответ: 2 2 3.
38.

Ответ: setw; 15; 5; scientific ”\n”.
40.
Ответ: как на картинке.
Если функция должна изменить значение переменной, имя которой указано в списке аргументов при вызове функции, то в списке формальных параметров этой переменной должен соответствовать параметр, который передается "по адресу" или "по ссылке",
чтобы функция могла напрямую изменять исходную переменную. Разберем варианты:
1.Параметр-ссылка
•Правильный ответ.
•Параметр-ссылка (&) позволяет функции работать с оригинальной переменной, а не с её копией.
• |
Пример: |
|
void |
|
modify(int |
&x) |
{ |
|
|
x |
= |
42; |
// |
Изменяет |
оригинальную |
переменную |
|
|
} |
|
|
|
|
|
|
|
• |
При |
|
вызове: |
|
int |
a |
= |
10; |
modify(a);
// a теперь равно 42
2.Параметр со значением по умолчанию
•Неправильно.
•Значение по умолчанию просто задаёт параметру значение, если аргумент для него не передан. Это не имеет отношения к изменению переменной.
• Пример: void example(int x = 10) { x = 42; // Меняется только копия, оригинальная переменная не
изменяется}