問7 メインプログラムを実行した後、メインプログラムの変数X,Yの値は幾つになるか。ここで、仮引数Xは値呼び出し(call by value)、仮引数Yは参照呼び出し(call by reference)であるとする。

■メインプログラム
X=2;
Y=2;
add(X,Y);  

■手続きadd(X,Y)
X=X+Y;
Y=X+Y;
return;  

 X   Y 
 2   4 
 2   6 
 4   2 
 4   6 


正解 イ


解説

注目キーワード 「値呼出し」 「参照呼出し」

「仮引数Xは値呼出し」と言う事は、変数Xは「add(X,Y);」を実行しても「2」のまま変化しません。
よって、選択肢ウエは間違いです。


「仮引数Yは参照呼出し」ですので、変数Yは「add(X,Y);」を実行すると値が変わってしまいます。
それでは「add(X,Y);」の内容を見て行きましょう。

手続 add(X,Y)の内容

X = X + Y; → X = 2 + 2; → X = 4
Y = X + Y; → Y = 4 + 2; → Y = 6

変数Yの値は最終的に「6」になるため、選択肢イが正解となります。


最終更新:2013年07月07日 21:51