QUESTION 12
次の処理が終了したときのmの値はいくつか。この問題では配列の要素番号は0から始まる。forの開始値と終了値はどちらも含む。 整数型の配列: a ← {3, 8, 2, 7} 整数型: m ← a[0] 整数型: i for (i を 1 から 3 まで 1 ずつ増やす) if (a[i] > m) m ← a[i] endif endfor
出典:本サイト オリジナル教材(2026年)
本サイトで独自に作成。IPAの試験問題からの転載ではありません。
公開日:
選択肢を選んで、答え合わせをしましょう。
回答せずに正解・解説を確認する
正解:エ 8
この表示だけでは、回答数や正答率は変わりません。
解説
mには、そこまでに見た要素の最大値を保持します。初期値3から8へ更新され、2と7は8より小さいため更新されず、最終値は8です。
ア
2は最小値です。比較の向きに注意します。
イ
3は初期値ですが、8を見た時点で更新されます。
ウ
最後の要素を無条件に代入する処理ではありません。
エ
全要素の中で最大の8が残ります。
関連知識
各繰返しの後、mには読み終えた要素の最大値が入るという性質が保たれます。配列に負数が含まれる場合も、初期値を最初の要素にすれば正しく比較できます。
間違えやすいポイント
最大値の初期値を常に0にすると、全要素が負数の配列で誤ります。添字の開始位置も問題文で確認します。
覚え方
最初を仮の最大値にし、大きいときだけ更新。
実務での意味
観測値の最大を求める処理では、空のデータの扱いと負数を含むケースも確認します。
解説:本サイト編集部によるオリジナル文章