問題
関数 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 b ア 2 × num + i i を 1 から 7 まで 3 ずつ増やす イ 2 × num + i i を 2 から 6 まで 2 ずつ増やす ウ num + 2 × i i を 1 から 7 まで 3 ずつ増やす エ num + 2 × i i を 2 から 6 まで 2 ずつ増やす
選択肢
- 1a: 2 × num + i, b: i を 1 から 7 まで 3 ずつ増やす
- 2a: 2 × num + i, b: i を 2 から 6 まで 2 ずつ増やす
- 3a: num + 2 × i, b: i を 1 から 7 まで 3 ずつ増やす
- 4a: num + 2 × i, b: i を 2 から 6 まで 2 ずつ増やす
正解
4. a: num + 2 × i, b: i を 2 から 6 まで 2 ずつ増やす
詳しい解説を見る解説を閉じる
解説
calcX(1)で num が 1→3→7→13 と変化するには、i=1,2,3 で a を試すと「num+2×i」のとき 1+2=3、3+4=7、7+6=13 と一致する(2×num+i では合わない)。次にcalcY(1)で 1→5→13→25 となるには、num+2×i で増分が 4,8,12 となるよう i=2,4,6 を取る必要があり、b=「2から6まで2ずつ増やす」が適合。(出典: 令和4年度分 ITパスポート試験 問96)
記憶定着問題
全200問を繰り返し学習