ITパスポート試験 過去問解説
関数calcXをcalcX(1)とは?ITパスポート試験 2022年 (令和4年) 問96を解説
ITパスポート試験 2022年 (令和4年) 問96は、関数calcXをcalcX(1)に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
関数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に入れる字句の適切な組合せはどれか。 〔プログラム1〕 ○整数型: calcX(整数型: inData) 整数型: num, i num ← inData for (i を 1 から 3 まで 1 ずつ増やす) num ← [a] endfor return num 〔プログラム2〕 ○整数型: calcY(整数型: inData) 整数型: num, i num ← inData for ( [b] ) num ← [a] endfor return num
この問題の出題ポイント
- 関数calcXをcalcX(1)の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
- 関連タグ: プログラミング、繰返し処理、図表問題。
選択肢
- ア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の変数numは、1→3→7→13と増分が2, 4, 6で変化し、これはループ変数iが1, 2, 3のときの 2 × i に等しいので、aは num + 2 × i である。同じ式でcalcYを動かすと、1→5→13→25の増分4, 8, 12は、iが2, 4, 6のときの 2 × i に当たる。したがって、bはiを2から6まで2ずつ増やす指定になる。
なぜ他の選択肢が違うのか
ア
aを 2 × num + i とするとcalcXは1→3→8→19と変化し、7や13にならない。
イ
aを 2 × num + i とするとcalcXは1→3→8→19となって13にならず、calcYも1→4→12→30となって25にならない。
ウ
aは num + 2 × i で合っているが、iを1から7まで3ずつ増やすとiは1, 4, 7になり、calcYは1→3→11→25と変化して、5や13を通らない。
エ(正解)
正しい。aを num + 2 × i とすると、calcXはiが1, 2, 3で1→3→7→13、calcYはiが2, 4, 6で1→5→13→25となり、問題文の変化と一致する。
解き方の整理
関数calcXをcalcX(1)の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連問題
前後の問題
2022年 (令和4年) の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。