令和6年試験問題 [科目B]問1

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
次のプログラム中の に入れる正しい答えを,解答群の中から選べ。

 関数 maximum は,異なる三つの整数を引数で受け取り,そのうちの最大値を返す。

〔プログラム〕
b01_1.png

  • x > y
  • x > y and x > z
  • x > y and y > z
  • x > z
  • x > z and z > y
  • z > y
正解 問題へ
分野:アルゴリズムとプログラミング
カテゴリ:プログラムの基本要素
解説
条件式の部分が空欄になっているif文では、条件式がtrueと評価されるとき、戻り値として x を返しています。関数 maximum は、3つの変数のうち最大値を返すものですから、x を返すべきなのは3つの変数の中で x が最大と判断したときです。

x が最大となるのは、①x が y よりも大きい、②x が z よりも大きい、という2つの条件をともに満たす場合です。①はx > y、②はx > zと表すことができ、両方の条件を満たす場合なので、2つの条件をANDで結合する必要があります。したがって、空欄に入る条件式は「イ」となります。
  • x と z の比較を行っていません。z が最大値であるときに、x が返されてしまうため不適切です。
  • 正しい。
  • x の値にかかわらず、y が z 以下のとき右式はfalseと評価されます。x が最大である場合でも、y と z の関係によって x が返されないことがあるため不適切です。
  • x と y の比較を行っていません。y が最大値であるときに、x が返されてしまうため不適切です。
  • x の値にかかわらず、z が y 以下のとき右式はfalseと評価されます。x が最大である場合でも、y と z の関係によって x が返されないことがあるため不適切です。
  • x と他の変数の比較を行っていません。z が最大値であるときに、x が返されてしまうため不適切です。

Pagetop