2004-gre-cs-practice-book.pdf/Q24
Материал из DISCOPAL
Вопрос: 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;
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.