本文へスキップ

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

この問題の解説と、これまでの解答の記録です。

問78
頻出度★★☆

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

出典 令和7年度 ITパスポート試験 問78
解説

問 78

  • 不正解ア

    2 は加算される値(3 と 6)でも合計でもありません。1〜7 の中で 3 の倍数は 3 と 6 の 2 個なので、その「個数」を答えと取り違えると 2 になりますが、出力されるのは個数ではなく合計 totalValue なので誤りです。

  • 不正解イ

    3 は i=3 のときに最初に加算した時点での途中経過です。ループは i=7 まで続き i=6 も 3 の倍数なので加算され、最終値は 9 になります。i=3 で集計を止めてしまうと 3 を選んでしまいます。

  • 不正解ウ

    7 はループの上限値(i の最大値)であって合計ではありません。totalValue は条件を満たした i の総和なので、上限の 7 がそのまま出力されることはありません。

  • エ

    正解 for ループで i を 1 から 7 まで 1 ずつ動かし、条件「i ÷ 3 の余り が 0 と等しい」(=i が 3 の倍数)を満たすときだけ totalValue に i を足し込みます。1〜7 のうち 3 の倍数は 3 と 6 だけなので、totalValue は i=3 で 0+3=3、i=6 で 3+6=9 となり、最後に出力されるのは 9 です。よって正解は エ「9」です。

ここがポイント
  • 「X ÷ N の余りが 0」は「X が N の倍数」を意味する。本問では 1〜7 のうち 3 の倍数(3 と 6)だけが加算対象。
  • for と if(選択)を組み合わせた擬似言語の繰返し処理を、i を 1 つずつ机上トレースして累計を求める考え方。
用語

解答の記録