第40問 80点以上は何人?(配列)
6人のテストの点数を配列 ten(=[72,85,80,90,58,88])に入れました。左から ten[0], ten[1], … , ten[5] の6個です。80点以上の人が何人いるかを数えて表示するようにしよう。配列の番号は0から始まること、「以上」は80そのものもふくむことに気をつけよう(2か所の穴をうめよう)
難易度:★★★☆☆(3/標準)。共通テスト「情報I」で使われるDNCL(共通テスト用プログラム表記)の穴埋め問題です。JavaScriptを有効にすると、このページでプログラムを組み立てて実行しながら解けます。
プログラム
ten = [72,85,80,90,58,88]
nin = 0
i を 0 から [A] まで 1 ずつ増やしながら繰り返す:
もし ten[i] [B] 80 ならば:
nin = nin + 1
表示する("80点以上は" + nin + "人です")
空欄 [A]・[B] に当てはまるものを、次の選択肢から選びます。
選択肢
ヒント
配列は ten[0] から始まり、6個なら最後は ten[5] です。i を0から5まで動かせば全員を1回ずつ調べられます。「80点以上」は80もふくむので >= を使おう
解答
よくある間違い
- [A]
6 [B]>= … 配列 ten は6個ですが、番号は ten[0] から ten[5] までです。6まで繰り返すと ten[6] を見にいってしまい、配列の外を読むことになります。個数が6なら、最後の番号は6-1で5です
- [A]
4 [B]>= … 4までだと ten[5](=88点)を見ないまま終わってしまい、1人数え落とします。最後の番号は5です
- [A]
5 [B]> … > だと「80より大きい」になり、ちょうど80点の ten[2] が数に入りません。「80点以上」は80そのものもふくむので >= を使います
- [A]
6 [B]> … 2か所とも違います。番号は ten[0]〜ten[5] なので5まで、「80点以上」は80をふくむので >= です
- [A]
5 [B]<= … <= だと「80点以下」の人を数えてしまいます。数えたいのは80点以上の人なので >= です
- [A]
5 [B]< … < だと「80点より低い」人を数えることになります。向きが逆です。80点以上を数えるのは >= です
ほかの問題