応用情報技術者試験 応用情報技術者試験 平成28年度春期 午前20: メインプログラムを実行した後,メインプログラムの変数 X,Y の値は幾つになるか。ここで,仮引数 X は値呼出し(call by value),仮引数 Y は参

応用情報技術者試験 平成28年度春期 午前
Q 2020 / 80
メインプログラムを実行した後,メインプログラムの変数 X,Y の値は幾つになるか。ここで,仮引数 X は値呼出し(call by value),仮引数 Y は参照呼出し(call by reference)であるとする。 メインプログラムと手続 add(X,Y) の内容は図に示すとおりである。
XY
24
26
42
46
メインプログラム(X=2; Y=2; add(X,Y);)と手続 add(X,Y)(X=X+Y; Y=X+Y; return;)のプログラムコードボックス
この問の正解率:52.37%(949件)

解説

応用情報技術者試験 平成28年度春期 午前 問20「メインプログラムを実行した後,メインプログラムの変数 X,Y の値は幾つになるか…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約52%です。

正解

. X = 2,Y = 6

正答率 52.4%(949人中 497人が正解)

問題の解説

値呼出し(call by value)は引数の「値の複製」を渡すので手続側での変更は呼出し元に戻らず、参照呼出し(call by reference)は変数そのものを共有するので手続側での変更が呼出し元に反映される、という違いを問う問題である。メインで X=2,Y=2 として add を呼ぶと、手続内で X=X+Y=4、続いて Y=X+Y=4+2=6 となる。Xは値呼出しなので変更はメインに戻らずメインの X は2のまま、Yは参照呼出しなので変更が反映されメインの Y は6になる。よって正解はイ(X=2, Y=6)である。

応用情報技術者試験 平成28年度春期 午前 の過去問一覧に戻る・問20

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード