問題
問96
問96 関数 calcX と関数 calcY は、引数 inData を用いて計算を行い、その結果を戻り値とする。関数 calcX を calcX(1) として呼び出すと、関数 calcX の変数 num の値が、1→3→7→13 と変化し、戻り値は 13 となった。関数 calcY を calcY(1) として呼び出すと、関数 calcY の変数 num の値が、1→5→13→25 と変化し、戻り値は 25 となった。プログラム中の a, b に入れる字句の適切な組合せはどれか。


[出典:ITパスポート試験 令和4年度 問96]
スポンサーリンク
正解
正解は「エ」です。
解説
正解は「エ」です。プログラムにおける関数 calcX と calcY の動作を分析するために、各変数の変化を追跡します。
関数 calcX では、num の初期値は inData であり、i が 1 から 7 まで 3 ずつ増加します。選択肢「エ」の a は num + 2 × i であり、この操作によって、num の値が 1→3→7→13 と変化し、戻り値として 13 を得られます。
一方、calcY では、num の初期値は inData であり、i が 2 から 6 まで 2 ずつ増加します。同じ選択肢「エ」の b が適用されることで num の値は 1→5→13→25 となり、戻り値として 25 を得られます。
このように、プログラム内の変数の動きが問題文の条件と一致するため、正解は「エ」となります。
ア(2 × num + i):
この選択肢では、num の変化が問題文で示された条件と一致しません。
イ(2 × num + i):
この選択肢では、変数 num の動作が一致しないため不適切です。
ウ(num + 2 × i):
この選択肢では、i の範囲が問題文の条件に合わず正しくありません。
難易度
やや難しい
この問題はプログラム設計における変数の操作とループ構造の理解が必要です。初心者には若干難しく感じられるかもしれませんが、基本的なプログラミング知識を持っていれば解答可能な問題です。
スポンサーリンク
用語補足
変数:
プログラム内で値を保持するための記号や名前のことです。プログラムの実行中に値を変更することができます。
ループ:
プログラム内で特定の処理を繰り返し実行する構造のことです。条件に従ってループ回数を制御することができます。
対策
この問題を解くには、プログラム内での変数の操作やループ構造についての理解を深めることが重要です。特に、変数の値の変化を追う練習を積むことで、問題文に基づいた正確な判断ができるようになります。また、実際にプログラムを書いて動作を確認することで、実践的な理解も深めることができます。