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

- 2
- 3
- 7
- 9
[出典:ITパスポート試験 令和7年度 問78]
スポンサーリンク
正解
正解は「エ」です。
解説
この問題は、繰り返し処理と条件分岐による合計計算を問うアルゴリズムの問題です。
手続 calcMod3 では、i を 1~7 まで 1 ずつ増やしながら、i が 3 で割り切れる(つまり、3の倍数)ときに限り totalValue に i を加算します。1~7 の中で 3 の倍数となるのは 3 と 6 の2つです。
したがって、totalValue は 0 + 3 + 6 = 9 となり、出力は「9」となります。
このような問題は、for文による繰り返しとif文による条件処理の基本的な理解が問われます。特に「i ÷ 3 の余りが 0」という条件式の意味を正確に読み取れるかがポイントです。これは「i % 3 == 0」と同じ意味であり、iが3の倍数かどうかを判定しています。日常的な例で言えば、1週間の中で「水曜日と土曜日だけに何かする」というような決まりを毎週繰り返す場面を想像すると、for文の処理の流れがわかりやすくなります。
ア(2):
totalValue に加算されるのは3と6なので、合計2は誤りです。
イ(3):
3だけ加算された場合の値ですが、6も加算されるため不足しています。
ウ(7):
加算対象に含まれない4などが含まれているかのような誤解による選択と考えられます。
難易度
この問題の難易度は中程度です。繰り返し処理と条件式という基本的なアルゴリズムの理解が必要ですが、実際に手順を追って計算する力も求められます。プログラミング未経験者にとってはやや難しく感じられる可能性がありますが、手で数えながら処理の流れを確認することで解ける問題です。
スポンサーリンク
用語補足
繰り返し処理(for文):
一定の回数だけ処理を繰り返す構文です。今回の例では「1から7まで1ずつ増やす」動作を繰り返しています。
条件分岐(if文):
ある条件が満たされた場合にのみ処理を行う構文です。今回の「i ÷ 3 の余りが 0」の条件で処理が分かれています。
対策
繰り返しや条件分岐を含むアルゴリズムの問題は、実際に手書きや図を使って変数の変化を追っていく練習が効果的です。簡単なプログラムを紙に書いて、iやtotalValueの変化を1ステップずつ確認する癖をつけることで、ミスが減り理解も深まります。