it-kakomon › ITパスポート › 令和4年度 › 問96

令和4年度 ITパスポート 問96(テクノロジ)

出典:令和4年度 ITパスポート試験 公開問題 問96(独立行政法人情報処理推進機構(IPA))

関数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
選択肢ab
ア2 × num + iiを1から7まで3ずつ増やす
イ2 × num + iiを2から6まで2ずつ増やす
ウnum + 2 × iiを1から7まで3ずつ増やす
エnum + 2 × iiを2から6まで2ずつ増やす
正解と解説を見る

正解:エ

【calcXの空欄a】

calcX(1)では、iが1、2、3と変わるたびに、numが 1 → 3 → 7 → 13 と変わります。それぞれの増え方は、+2、+4、+6 で、i = 1、2、3 のときの 2 × i と一致します。

したがって、空欄aは num + 2 × i です。

aを 2 × num + i とすると、i = 1 で 2 × 1 + 1 = 3、i = 2 で 2 × 3 + 2 = 8 となり、7になりません。

【calcYの空欄b】

calcY(1)では、numが 1 → 5 → 13 → 25 と変わります。aは num + 2 × i なので、増え方の +4、+8、+12 は、2 × i がそれぞれ4、8、12、つまりiが2、4、6のときです。

したがって、空欄bは「iを2から6まで2ずつ増やす」です。

bを「iを1から7まで3ずつ増やす」とすると、iは1、4、7となり、numは 1 → 3 → 11 → 25 と変わって、途中の値が一致しません。

aが num + 2 × i、bが iを2から6まで2ずつ増やす の組合せです。よって、正解は選択肢エです。

まず令和8年度の100問を通しで解いてみる(無料)