令和4年度 ITパスポート 問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に入れる字句の適切な組合せはどれか。

- アa:2 × num + i b:i を 1 から 7 まで 3 ずつ増やす
- イa:2 × num + i b:i を 2 から 6 まで 2 ずつ増やす
- ウa:num + 2 × i b:i を 1 から 7 まで 3 ずつ増やす
- エa:num + 2 × i b:i を 2 から 6 まで 2 ずつ増やす
答えを見る
正解 エa:num + 2 × i b:i を 2 から 6 まで 2 ずつ増やす
要点変数の変化をトレースして、式と繰返し条件を当てはめて確かめる
解説
calcXは i=1,2,3 で num が 1→3→7→13 と変化します。
- a=num+2×i:1+2×1=3、3+2×2=7、7+2×3=13 で一致します。
- a=2×num+i:2×1+1=3、2×3+2=8 となり一致しません。
よって a は num+2×i です。
calcYは num が 1→5→13→25 と変化し、増分は4,8,12なので、2×i が4,8,12、つまり i=2,4,6 です。
- i を2から6まで2ずつ増やす:1+4=5、5+8=13、13+12=25 で一致します。
- i を1から7まで3ずつ増やす:1+2=3 となり一致しません。
したがってエが正解です。