関数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

テクノロジ系

ア a:2×num+i,b:iを1から7まで3ずつ増やす

なぜ違う: a=2×num+iではcalcXの値が1→3→7→13にならず誤り。

イ a:2×num+i,b:iを2から6まで2ずつ増やす

なぜ違う: aの2×num+iがcalcXのトレース結果と一致しないため誤り。

ウ a:num+2×i,b:iを1から7まで3ずつ増やす

なぜ違う: bでi=1,4,7だと増分が2,8,14となりcalcYの1→5→13→25に一致しない。

エ a:num+2×i,b:iを2から6まで2ずつ増やす

正解: エ

要点: a=num+2×i,b=iを2から6まで2ずつ増やす。

calcXでi=1,2,3のとき1→3→7→13となるのはnum←num+2×i(1+2=3, 3+4=7, 7+6=13)。calcYで1→5→13→25は増分が4,8,12でiが2,4,6なので,iを2から6まで2ずつ増やす。よってa=num+2×i,b=iを2から6まで2ずつ増やす。

この問題に出てくる用語

関連キーワード: 擬似言語・アルゴリズム・トレース

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

ITパスポートの学習アプリ(ITパストレ)

出典:令和4年度 ITパスポート試験 公開問題 問96