CO-S29|情報Ⅰ 対策問題
次のプログラムを実行したとき、表示される値はどれか。 (1) Data = [10, 20, 30] (2) gokei = 0 (3) i を 0 から 2 まで 1 ずつ増やしながら繰り返す: (4) ⎿ gokei = gokei + Data[i] (5) 表示する(gokei ÷ 3) ※ ÷は整数の商を求める演算、配列の添字は0から始まる。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
合計から平均を求めるプログラムのトレース を問う問題です。「合計を作ってから個数で割る」二段構えの流れを追います。
解説
平均を求めるプログラムは「①全部足して合計を作る ②個数で割る」の2段階で書くのが定番です。このプログラムでは、(2)〜(4)のループが合計づくり、(5)の「gokei ÷ 3」が個数で割る部分にあたります。表示されるのは合計ではなく平均であることに、まず注意してください。
1行ずつトレースします。
- (2) gokei = 0(合計用の変数を0で初期化)
- i=0の回: gokei = 0 + Data[0] = 0 + 10 = 10
- i=1の回: gokei = 10 + Data[1] = 10 + 20 = 30
- i=2の回: gokei = 30 + Data[2] = 30 + 30 = 60
- (5) 表示するのは gokei ÷ 3 = 60 ÷ 3 = 20
検算すると (10+20+30)÷3 = 20 で、確かに3つの値の平均です。ここでのひっかけは「最後に割り算があるのを見落として合計の60を選ぶ」こと。表示する式の中に計算が入っている場合は、最後まで気を抜かずに読みましょう。
共通テストでは、個数を3と直書きせずに「要素数(Data)」関数で取得し、どんな長さの配列でも動くように一般化した形で出ます。また「合計の初期化を忘れるとどうなるか」「÷が整数の商なので平均に端数が出る場合は?」といった変化球もあり得ます。合計→平均の2段構えを型として覚えておきましょう。
選択肢の確認
1.○ 合計60を3で割った平均値20が表示される。
2.× 60は割る前の合計。最後の÷3を見落とした値。
3.× 10は最初の要素Data[0]にすぎない。
4.× 30は最後の要素Data[2]にすぎない。
ここだけは覚えよう
平均=「合計を作ってから個数で割る」 — 表示する式の中の計算(÷3)を見落とさない。