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

値呼出しは呼出し側に反映されず参照呼出しは反映される

応用情報技術者試験2016年度 春期 午前20/アルゴリズムとプログラミング / プログラム言語

メインプログラム: X=2; Y=2; add(X,Y); / 手続add(X,Y): X=X+Y; Y=X+Y; return;
メインプログラム: X=2; Y=2; add(X,Y); / 手続add(X,Y): X=X+Y; Y=X+Y; return;

選択肢

正解と解説

正解: X=2, Y=6

値呼出しの仮引数への代入は呼出し側に反映されないため、主プログラムのXは2のまま。参照呼出しのYは手続内の代入がそのまま反映される。手続内ではX=2+2=4、続いてY=4+2=6となるので、Yは6になる。

選択肢ごとの解説

出典:平成28年度 春期 応用情報技術者試験 午前 問20(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。