次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。…
科目B アルゴリズムとプログラミング 科目B 問1
次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。関数maximum は,異なる三つの整数を引数で受け取り,そのうちの最大値を返す。
正答 イ
正答は イ。空欄には「x > y and x > z」が入ります。
プログラムは、if の条件が真なら x を返し、そうでなければelseif(y > z)で y と z の大きい方を返します。x を返してよいのは、x が三つの中で最大のとき、つまり「x が y より大きく、かつ x が z より大きい」ときだけです。x が最大でないときは、最大は y か z のどちらかなので、elseif と else で y と z を比べれば正しく最大値が返ります。
【トレース(イを入れた場合)】
(x, y, z)=(3, 1, 2):3 > 1 and 3 > 2 は真 → 3 を返す
解説の続きをみる続きを閉じる
(x, y, z)=(1, 3, 2):1 > 3 が偽 → y > z(3 > 2)が真
→ 3 を返す
(x, y, z)=(1, 2, 3):1 > 2 が偽 → y > z(2 > 3)が偽
→ else で 3 を返す
どの並びでも最大値 3 が返ります。
【ほかの選択肢】(どの値で食い違うか)
ア x > y 誤り
→ (2, 1, 3) で 2 > 1 が真になり、z=3 が最大なのに
2 を返してしまう
ウ x > y and y > z 誤り
→ (3, 1, 2) で 1 > 2 が偽なので if を通らず、
y > z も偽で else に進み、2 を返してしまう
エ x > z 誤り
→ (2, 3, 1) で 2 > 1 が真になり、y=3 が最大なのに
2 を返してしまう
オ x > z and z > y 誤り
→ (3, 2, 1) で 1 > 2 が偽なので if を通らず、
y > z が真で 2 を返してしまう
カ z > y 誤り
→ (1, 2, 3) で 3 > 2 が真になり、x=1 を返してしまう
【見分け方】
「x を返す」条件は、「x が最大である」ことそのものです。
x と他の二つの両方を比べる必要があるので、and で二つの比較をつなぎます。
出典:令和6年度 基本情報技術者試験 科目B 公開問題 問1(独立行政法人情報処理推進機構)出典元ページ
最終更新日
「科目B アルゴリズムとプログラミング」のほかの問題
- 2025年度(令和7年度)公開問題 科目B 問1次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
- 2025年度(令和7年度)公開問題 科目B 問2次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2025年度(令和7年度)公開問題 科目B 問3次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
- 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2025年度(令和7年度)公開問題 科目B 問5次の記述中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。
- 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
スポンサーリンク





