ITパスポート 過去問
令和7年度
問78 (テクノロジ系 問23)
問題文
手続calcMod3を呼び出したときの出力はどれか。
[プログラム]
◯calcMod3()
整数型:totalValue、i
totalValue←0
for(iを1から7まで1ずつ増やす)
if(i÷3の余りが0と等しい)
totalValue←totalValue+i
endif
endfor
totalValueを出力する
[プログラム]
◯calcMod3()
整数型:totalValue、i
totalValue←0
for(iを1から7まで1ずつ増やす)
if(i÷3の余りが0と等しい)
totalValue←totalValue+i
endif
endfor
totalValueを出力する
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
ITパスポート試験 令和7年度 問78(テクノロジ系 問23) (訂正依頼・報告はこちら)
手続calcMod3を呼び出したときの出力はどれか。
[プログラム]
◯calcMod3()
整数型:totalValue、i
totalValue←0
for(iを1から7まで1ずつ増やす)
if(i÷3の余りが0と等しい)
totalValue←totalValue+i
endif
endfor
totalValueを出力する
[プログラム]
◯calcMod3()
整数型:totalValue、i
totalValue←0
for(iを1から7まで1ずつ増やす)
if(i÷3の余りが0と等しい)
totalValue←totalValue+i
endif
endfor
totalValueを出力する
- 2
- 3
- 7
- 9
正解!素晴らしいです
残念...
この過去問の解説 (1件)
01
本問はプログラムの処理内容を読み解いて、ループ処理と条件分岐が組み合わさった場合の実行結果を正確に導き出す能力を問うものです。一見複雑でとっつきにくそうですが、一つ一つの処理を順番に行えば、正解できます。
まず、for文はループ処理を行い、if文は条件分岐をします。
forはiを1から7まで1ずつ増やす、というループ処理をします。
ifの条件が、i÷3の余りが0と等しいとなっているので、iの値が3で割り切れる値になったら、totalValueにそれを入れます。
プログラムを実行したらどうなるのかを実際に説明します。
初期状態: totalValueは0から始まります。
ループ処理開始: iは1から7まで、1ずつ増えながら処理を繰り返します。
i = 1 3で割り切れないため、何も足されず、totalValueは0のままです。
i = 2 3で割り切れないため、何も足されず、totalValueは0のままです。
i = 3 3で割り切れるため、totalValueにiの値である3を足します。
totalValue 0 + 3 = 3
i = 4 3で割り切れないため、何も足されず、totalValueは3のままです。
i = 5 3で割り切れないため、何も足されず、totalValueは3のままです。
i = 6 3で割り切れるため、totalValueにiの値である6を足します。
totalValue 3 + 6 = 9
i = 7 3で割り切れないため、何も足されず、totalValueは9のままです。
ループ処理終了: iが7になったので、繰り返し処理が終わります。
出力: 最後にtotalValueの値として9が出力されます。
正解は 9 となります。
2の値を出力することはないため、本選択肢は不正解です。
totalValueの値が3になることは起こりますが、i=7まで処理を継続するため、最終的に出力する値は3にはなりません。
そのため本選択肢は不正解です。
7の値を出力することはないため、本選択肢は不正解です。
先に解説したように出力する値は、9であるため本選択肢が正解です。
本問のようにプログラムの実行結果を問うような問題が出題された場合は、まず落ち着いてわかる範囲からプログラムの内容を読み解きます。
次に、実行結果を確認するときは書き出して、確認しながら行えば勘違いや、計算間違いを防止できます。
参考になった数0
この解説の修正を提案する
前の問題(問77)へ
令和7年度 問題一覧
次の問題(問79)へ