第33問 3人の中の最高点
3人のテストの点数 a(=72)、b(=85)、c(=63)の中から、一番高い点数を見つけて表示しよう。まず saidai に a を入れておき、b・c と順に比べて「saidai より大きければ saidai を入れかえる」を繰り返します。2つの if の条件に入る比較の記号を選ぼう(2か所の穴をうめよう)
難易度:★★☆☆☆(2/やさしい)。共通テスト「情報I」で使われるDNCL(共通テスト用プログラム表記)の穴埋め問題です。JavaScriptを有効にすると、このページでプログラムを組み立てて実行しながら解けます。
プログラム
a = 72
b = 85
c = 63
saidai = a
もし saidai [A] b ならば:
saidai = b
もし saidai [B] c ならば:
saidai = c
表示する("一番高い点数は" + saidai + "点")
空欄 [A]・[B] に当てはまるものを、次の選択肢から選びます。
選択肢
ヒント
「今の最大 saidai より、くらべる相手の方が大きければ入れかえる」と考えよう。saidai < b なら saidai を b にします。72 → b(85) の方が大きいので 85 → c(63) は小さいのでそのまま、答えは 85 です
解答
よくある間違い
- [A]
> [B]> … > だと「saidai の方が大きいとき」に入れかえてしまい、小さい方が残ります。72 > 85 は成り立たず 72 のまま、次に 72 > 63 が成り立って 63 になり、答えは 63 になってしまいます
- [A]
< [B]> … 1つ目は正しく 85 になりますが、2つ目が > なので 85 > 63 が成り立ち、せっかくの最高点 85 を 63 で上書きしてしまいます。2つ目も < にしましょう
- [A]
> [B]< … 1つ目が > だと 72 > 85 が成り立たず、最高点の b(85)を見のがしてしまいます。答えは 72 のままです。「今の saidai より大きければ入れかえる」は saidai < b と書きます
- [A]
== [B]< … == は「等しいか」を調べる記号なので、大小をくらべられません。72 == 85 は成り立たず、b の 85 を取りこぼします
- [A]
== [B]== … == は「等しいか」を調べる記号です。点数が同じときしか入れかえないので、saidai は最初の 72 のまま変わりません。大小をくらべる < を使いましょう
ほかの問題