情報処理試験プラス

■問題■[n1014]

 次の手続 add を考える。ここで、仮引数 X は値呼出し(call by value)、
 仮引数 Y は参照呼出し(call by reference)であるとする。
 主プログラムを実行した後、主プログラムの変数 X,Y の値はどうなるか。

  主プログラム    手続 add (X,Y)

   X := 2;      X := X + Y;
   Y := 2;      Y := X + Y;
   add(X,Y);     return;

   ┌───┬───┐
   │ X  │ Y  │
 ┌─┼───┼───┤
 │ア│  2 │  2 │
 │イ│  2 │  6 │
 │ウ│  4 │  2 │
 │エ│  4 │  6 │
 └─┴───┴───┘