Сигнатура функции f(int a, int *b, int &c). Первая переменная приходит по значению, вторая - по указателю, третья - по ссылке. Это значит, что изменения переменных b и с в функции будут влиять на переданные переменные.
Итак, мы имеем переменные
a = 3; b = 1; c = 2;
Передаём переменные в функцию как f(c, &b, a). Здесь а и с меняются местами.
В функции получаем
a = 2; b = 1; c = 3;
++a - увеличивает переменную на 1 и возвращает 3. a = 3
++(*b) - увеличивает переменную на 1 и возвращает 2. b = 2
с++ - возвращает 3 и увеличивает переменную на 1. с = 4.
Получаем return 3 + 2 + 3 (=8)
Переменные перед выходом
a = 3; b = 2; c = 4;
Выходим из функции. Не забываем про связь между переменными в вызове f(c, &b, a).
Если как на скрине, то E) 41325
В коде который написан текстом есть ошибки.
Объяснение:
Если исправить ошибку в условии заменой cout на std::cout, то:
Индексы массива начинаются с 0. Т.е.
mas[0] == 1;
mas[1] == 3;
mas[2] == 2;
mas[3] == 5;
mas[4] == 4;
На скрине расписал назначение каждой конкретной строчки.
Пройдем по итерациям первого цикла. Для краткости буду обозначать смену значений swap()
i=3; swap(mas[3], mas[4]) mas == {1,3,2,4,5}
i=2; swap(mas[2], mas[3]) mas == {1,3,4,2,5}
i=1; swap(mas[1], mas[2]) mas == {1,4,3,2,5}
i=0; swap(mas[0], mas[0]) mas == {4,1,3,2,5}
Второй цикл просто выводит массив поэтому на экран будет выедено
41325
============
Не забывайте нажать " ", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"
Успехов в учебе
Преобразуем выражение в (++a)+(++(*b))+(c++).
Сигнатура функции f(int a, int *b, int &c). Первая переменная приходит по значению, вторая - по указателю, третья - по ссылке. Это значит, что изменения переменных b и с в функции будут влиять на переданные переменные.
Итак, мы имеем переменные
a = 3; b = 1; c = 2;
Передаём переменные в функцию как f(c, &b, a). Здесь а и с меняются местами.
В функции получаем
a = 2; b = 1; c = 3;
++a - увеличивает переменную на 1 и возвращает 3. a = 3
++(*b) - увеличивает переменную на 1 и возвращает 2. b = 2
с++ - возвращает 3 и увеличивает переменную на 1. с = 4.
Получаем return 3 + 2 + 3 (=8)
Переменные перед выходом
a = 3; b = 2; c = 4;
Выходим из функции. Не забываем про связь между переменными в вызове f(c, &b, a).
Значит после выхода переменные равны
a = 4; b = 2; c = 2 (передавалась по значению);
z = 8.
На выход будет подано 4228.