2022年4月25日公開分 [科目B]問1

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

 ある施設の入場料は,0歳から3歳までは100円,4歳から9歳までは300円,10歳以上は500円である。関数 fee は,年齢を表す0以上の整数を引数として受け取り,入場料を返す。

〔プログラム〕
b01_1.gif

  • (ageが4以上) and (ageが9より小さい)
  • (ageが4と等しい) or (ageが9と等しい)
  • (ageが4より大きい) and (ageが9以下)
  • ageが4以上
  • ageが4より大きい
  • ageが9以下
  • ageが9より小さい
正解 問題へ
分野:アルゴリズムとプログラミング
カテゴリ:プログラムの基本要素
解説
設問のプログラムの分岐処理を流れ図で表すと以下のようになります。
b01_2.gif
入場料 ret を300にしたいのは4歳から9歳までなので、空欄には「ageが4以上9以下」のときにtrueとなる条件式が入ることになります。空欄の分岐処理は、ageが3以下がNoとなった後に位置しているため、この分岐処理にかかるのは必然的にageが4以上(4歳以上)という条件を満たしていることになります。よって、追加で9歳以下、すなわちageが9以下という式で絞り込めば、4歳以上9歳以下の人の入場料を300円とすることができます。したがって「カ」が正解です。
  • 誤り。9より小さいには9歳を含まないため、9歳が500円となってしまいます。
  • 誤り。4歳または9歳だけが300円となり、それ以外の5~8歳の入場料は500円となってしまいます。
  • 誤り。4より大きいには4歳を含まないため、4歳が500円となってしまいます。
  • 誤り。10歳以上の人も300円になってしまいます。
  • 誤り。4歳が500円となり、10歳以上の人が300円になってしまいます。
  • 正しい。
  • 誤り。9より小さいには9歳を含まないため、9歳が500円となってしまいます。

Pagetop