本文へ移動

基本情報技術者試験 · 学習ガイド

2024年度 科目B 公開問題の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2024年度 科目B 公開問題の概要
30:00

問題番号から選ぶ

3値の最大値を求める条件分岐

プログラミング · 条件分岐 / 論理演算 / 擬似言語

異なる3つの整数 x, y, z を引数として受け取り、その中の最大値を返す関数 maximum のプログラムがある。 プログラム中の空欄に入れる正しい条件式を解答群の中から選べ。 〔プログラム〕 ○整数型: maximum(整数型: x, 整数型: y, 整数型: z) if ( [ 空欄 ] ) return x elseif (y > z) return y else return z endif

解答・解説を表示

解答

イ

解説

まず要点:x が最大値だと判定するには、x が y より大きく、かつ z より大きいことを同時に確かめます。片方としか比べていないと、比べていない値の方が大きい場合に間違った答えを返してしまうからです。2つの条件を「かつ」(and:両方が成り立つときだけ真になる)でつなぎます。

解き方

  1. if で return x を実行する条件は、x が y と z の両方より大きいことだと整理します。
  2. 「x > y」と「x > z」を and でつないだ式を選びます。
選択肢 ア不正解
x > y だけでは z との大小が分からず、z が最大のときでも x を返してしまうから誤りです。
選択肢 イ正解
x が y より大きく、しかも z より大きいときだけ x が最大なので、この式は正しいです。
選択肢 ウ不正解
y > z という必要のない条件が入っているため、x > z > y のときに x を返せなくなるから誤りです。
選択肢 エ不正解
x > z だけでは y との大小が分からず、y が最大のときでも x を返してしまうから誤りです。
選択肢 オ不正解
z > y という必要のない条件が入っているため、x > y > z のときに x を返せなくなるから誤りです。
選択肢 カ不正解
x と比べていないので x が最大かどうかを判定できず、条件として使えないから誤りです。

覚えるポイント

  • 最大値判定では比較対象のすべての要素より大きいことを確認する
  • elseif以降の処理では手前の条件が不成立である前提を利用できる

間違えやすいところ

  • x と y の比較だけで x を最大と決めてしまう誤りです。
  • y と z の大小まで最初の条件に入れてしまう誤りです。

出題の前提:基本情報技術者試験 科目B 擬似言語仕様および論理演算の基本仕様に基づく。

出典:IPA『2024年度 科目B 公開問題』
公式問題冊子 p.4 ↗(www.ipa.go.jp)

2024年度 科目B 公開問題

参照した公式資料

IPAが公開した2024年度 科目B 公開問題の問題・解答資料です。