令和7年度 ITパスポート試験 公開問題 問78

手続 calcMod3 を呼び出したときの出力はどれか。

〔プログラム〕
図の説明テキスト

〔プログラム〕
◯calcMod3()
整数型: totalValue, i
totalValue ← 0
for (i を 1 から 7 まで 1 ずつ増やす)
if (i ÷ 3 の余りが 0 と等しい)
totalValue ← totalValue + i
endif
endfor
totalValue を出力する

解答・解説

正解: エ. 9

〔プログラム〕の処理の流れを説明します。

  1. 変数の初期化
    totalValue は初期値 00 が設定されます。

  2. ループ処理
    i を 11 から 77 まで 11 ずつ増やしながら繰り返します。

  3. 条件判定と加算処理
    各 i の値について、if (i ÷ 3 の余りが 0 と等しい) が判定されます。つまり、i が 3の倍数 であるかを確認します。

    • i=1i=1: 余りは 11。条件不成立。
    • i=2i=2: 余りは 22。条件不成立。
    • i=3i=3: 余りは 00。条件成立。totalValue に 33 が加算され、33 になります。
    • i=4i=4: 余りは 11。条件不成立。
    • i=5i=5: 余りは 22。条件不成立。
    • i=6i=6: 余りは 00。条件成立。totalValue に 66 が加算され、3+6=93 + 6 = 9 になります。
    • i=7i=7: 余りは 11。条件不成立。
  4. 出力
    ループが終了した時点で totalValue は 99 となっています。最後にこの値が出力されます。

よって、出力される値は 99 となります。

各選択肢の解説

  • ア 2
    条件を満たした回数(33 と 66 の 22 回)と誤認した場合の値です。
  • イ 3
    最初に条件を満たした i=3i=3 だけを加算して処理を終了した場合の値です。
  • ウ 7
    ループ変数 i の最終的な値を出力した場合の値です。
  • エ 9
    正解です。

Spineチーム