基本情報トップに戻る
B難易度: 2026年度

基本情報技術者 予想問題B 第69問

問題

次のプログラムは、配列arrの中の最大値を求める関数である。空欄[ ]に入る正しい条件式はどれか。 ○ 整数型: findMax(整数型の配列: arr) 整数型: max ← arr[0] for (i を 1 から arr の要素数−1 まで 1 ずつ増やす) if ([ ]) max ← arr[i] endif endfor return max

選択肢

  1. 1ア arr[i] = max
  2. 2イ arr[i] < max
  3. 3ウ arr[i] > max
  4. 4エ arr[i] ≠ max

正解

3. ウ arr[i] > max

詳しい解説を見る

解説

最大値探索では、先頭要素arr[0]をmaxの初期値とし、2番目以降の要素を順にmaxと比較して、より大きい要素が見つかったときだけmaxを更新する。したがって空欄はウのarr[i] > maxが正解である。例えば{3,7,5}でトレースすると、max=3から始まり、arr[1]=7は3より大きいので更新(max=7)、arr[2]=5は7より小さいので更新されず、最終的に7が返る。誤答肢のイarr[i] < maxでは小さい要素のたびに更新されるため最小値を求める処理になってしまう。アの等号やエの不等号(≠)では大小を判定できず、最大値は求められない。比較演算子の向きを1つ変えるだけで最大値と最小値の処理が入れ替わる点が典型的な出題ポイントであり、初期値をarr[0]とすることで比較がi=1から始まる構造も頻出である。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。