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;

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.