ITパスポート過去問 令和7年度(2025年)問78
手続calcMod3を呼び出したときの出力はどれか。

選択肢
- ア:2
- イ:3
- ウ:7
- エ:9
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
手続calcMod3は、iを1から7まで順に増やしながら、iを3で割った余りが0のときだけtotalValueにiを加算します。1~7で条件を満たすのは3と6なので、totalValueは0+3+6=9となり、出力は9です。
Point
この問題は、forによる繰り返し、ifによる条件分岐、及び「割り算の余り」を使った条件判定を、変数の値を追いながら正しく読み取れるかを確認することがねらいです。
解くために必要な知識
この問題を解くには、繰り返し処理、条件分岐、剰余(余り)による判定の意味を理解している必要があります。
用語の整理
| 用語名 | 意味 |
|---|---|
| 整数型 | 小数点を含まない数値を扱うデータ型です。 |
| 繰り返し処理(for) | 指定した範囲の値を順に変化させながら処理を繰り返す構造です。 |
| 条件分岐(if) | 条件が真のときだけ特定の処理を実行する構造です。 |
| 剰余(余り) | 割り算をしたときに余る値です。例として、7 ÷ 3 の余りは1です。 |
解くための手順
-
変数の初期値を確認します。
-
繰り返しの範囲(開始値、終了値、増分)を確認します。
-
ifの条件が何を判定しているかを確認します。
-
条件が真になる場合だけ、加算などの更新処理を行います。
-
ループ終了後の変数を出力と照合します。
問題の解法手順
解く手順
1. 初期値を確認する
totalValueは0で始まります。
2. 繰り返し範囲を確認する
iは1から7まで、1ずつ増えます。
3. 条件「i÷3の余りが0」を満たすiを見つける
これは「iが3の倍数」であることを意味します。
- 1〜7の3の倍数は、3と6です。
4. 条件を満たす値だけを加算する
| i | i÷3の余り | 加算するか | totalValue |
|---|---|---|---|
| 1 | 1 | いいえ | 0 |
| 2 | 2 | いいえ | 0 |
| 3 | 0 | はい | 3 |
| 4 | 1 | いいえ | 3 |
| 5 | 2 | いいえ | 3 |
| 6 | 0 | はい | 9 |
| 7 | 1 | いいえ | 9 |
5. 出力を確認する
繰り返し終了後のtotalValueは9なので、出力は9です。
選択肢ごとの解説
- ア:不正解
1から7の範囲にある3の倍数は2個(3と6)ですが、この手続が求めているのは「個数」ではなく「合計値」なので誤りです。
- イ:不正解
i=3の加算だけを考えた値です。i=6でも条件を満たして加算されるため誤りです。
- ウ:不正解
iの最大値が7であることと、条件に合う値の合計は一致しないため誤りです。
- エ:正解
3の倍数である3と6が加算されるので、3+6=9となり正しいです。
まとめ
手続calcMod3は、iを1から7まで順に増やしながら、iを3で割った余りが0のときだけtotalValueにiを加算します。1~7で条件を満たすのは3と6なので、totalValueは0+3+6=9となり、出力は9です。
テクノロジ系 > 基礎理論 > アルゴリズムとプログラミング
1から7の範囲にある3の倍数は2個(3と6)ですが、この手続が求めているのは「個数」ではなく「合計値」なので誤りです。
i=3の加算だけを考えた値です。i=6でも条件を満たして加算されるため誤りです。
iの最大値が7であることと、条件に合う値の合計は一致しないため誤りです。
3の倍数である3と6が加算されるので、3+6=9となり正しいです。