基本情報技術者試験の公開問題を解こう!(令和6年度・科目B)(1)「三つの整数の最大値」

スポンサーリンク
IT系

基本情報技術者試験の令和6年度の公開問題を解いてみよう。

テキスト, 手紙  AI によって生成されたコンテンツは間違っている可能性があります。

正解:イ

この問題は、最大値を求める関数 maximum を完成させるために、空欄に適切な条件式を選ぶという内容である。
■ プログラムの流れ

if (□)
    return x
elseif (y > z)
    return y
else
    return z
endif

この構造を見ると、最初の if 文で「xが最大の場合」を判断して x を返し、それ以外では y と z の大小を比較して大きい方を返している。
つまり、空欄には「xが最大である」ことを意味する条件が入るべきである。

ア)x > y

xとyだけの比較で、z との比較が含まれていないので不十分→ ❌

イ)x > y and x > z

「x が y より大きく、かつ z よりも大きい」 → x が最大値である条件
これが正解!

ウ)x > y and y > z

「x > y > z」である状況のみを考慮しており、例えば「x=3, y=2, z=10」などでは誤作動する → ❌

エ)x >z

x と z の比較だけで、y との比較が含まれていなので不十分 → ❌

オ)x> z and z > y

実質的に「x > z > y」だが、y が最大のケースを除外してしまう可能性がある → ❌

カ)x > z

これもxと z との比較だけなので不十分 → ❌

この関数では「x が最大であるか」をまず判断し、それ以外の場合に y と z を比較する形になっている。よって、最初の条件に入るべきは「x > y かつ x > z」という論理式となる。

コメント

タイトルとURLをコピーしました