2004-gre-cs-practice-book.pdf/Q24 — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) (Новая страница: « == Вопрос: Q24-4c9f66 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…») |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q24-4c9f66 == | == Вопрос: Q24-4c9f66 == | ||
− | + | {{24-25 вопрос из теста 2004}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | Предположим, что все параметры передаются '''по значению''' | |
− | + | ||
− | + | ||
− | + | Какие из следующих значений выводятся при вызове процедуры ''mystery''? | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | === Ответы === | ||
+ | * a = 2 b = 7 | ||
+ | * a = 2 b = 9 | ||
+ | * a = 9 b = 14 | ||
+ | * Правильный ответ: a = 14 b = 16 | ||
+ | * a = 30 b = 30 | ||
=== Объяснение === | === Объяснение === | ||
− | + | {{cstest-source|2004-gre-cs-practice-book.pdf|22|24}} | |
− | {{cstest-source|2004-gre-cs-practice-book.pdf| | + | |
+ | Параметры не меняются, но a-b изнутри вложенной процедуры можно изменить (замыкания): | ||
+ | |||
+ | y = 7 + 7; | ||
+ | x = 7 + 2; | ||
+ | b = 9 + 7 = 16; | ||
+ | a = 14; | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 07:49, 14 декабря 2024 (UTC)}} | |
− | + | [[Категория:Вызов функций]] |
Текущая версия на 07:49, 14 декабря 2024
Вопрос: Q24-4c9f66
Выходные данные процедуры mystery зависят от используемого метода передачи параметров
procedure mystery a : integer; b : integer; procedure enigma(x,y) begin y = y + b; x = b + x; b = x + b; a = y; end enigma; begin a = 2; b = 7; enigma(a,b); write(a); write(b); end mystery;
Предположим, что все параметры передаются по значению
Какие из следующих значений выводятся при вызове процедуры mystery?
Ответы
- a = 2 b = 7
- a = 2 b = 9
- a = 9 b = 14
- Правильный ответ: a = 14 b = 16
- a = 30 b = 30
Объяснение
Исходники — вопрос 24 на 22 странице книги «2004-gre-cs-practice-book.pdf»
Параметры не меняются, но a-b изнутри вложенной процедуры можно изменить (замыкания):
y = 7 + 7; x = 7 + 2; b = 9 + 7 = 16; a = 14;