CO-P05情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは、配列 Data の各要素に同じ計算を行って書き換える。実行したとき、表示される配列はどれか。 (1) Data = [3, 1, 4, 1, 5] (2) i を 0 から 4 まで 1 ずつ増やしながら繰り返す: (3) ⎿ Data[i] = Data[i] × 2 (4) 表示する(Data)

解答・解説を見る

正解: 1

正答

1

この問題のポイント

配列の全要素の書き換え(マッピング処理) を問う問題です。

解説

(3)の「Data[i] = Data[i] × 2」は、「i番目の要素を2倍した値で、i番目の要素を上書きする」という意味です。ループで i を 0 から 4 まで動かすので、配列の全要素が順に2倍に書き換わります。

配列の中身を1ステップずつトレースします。
i=0のとき: Data[0] = 3×2 = 6 → [6, 1, 4, 1, 5]
i=1のとき: Data[1] = 1×2 = 2 → [6, 2, 4, 1, 5]
i=2のとき: Data[2] = 4×2 = 8 → [6, 2, 8, 1, 5]
i=3のとき: Data[3] = 1×2 = 2 → [6, 2, 8, 2, 5]
i=4のとき: Data[4] = 5×2 = 10 → [6, 2, 8, 2, 10]
よって表示されるのは [6, 2, 8, 2, 10] です。

「配列を先頭から順に処理して、各要素を同じ規則で変換する」処理は、テストの点数の一律加点、円からドルへの換算、画像の各画素の明るさ調整など、あらゆる応用の基本形です。ループの範囲が 0〜4 で要素5個をちょうど回りきっているか(処理もれ・範囲外がないか)も、トレースの最初に確認する癖をつけましょう。

共通テストでは、この形に条件を組み合わせて「60点未満の要素だけ2倍にする」のような発展形で出題されます。まず「全要素を変換する基本形」を確実にトレースできることが土台になります。

選択肢の確認

1.○ 全要素が2倍。i=0〜4 の5回で全部書き換わる。
2.× 元の配列のまま。(3)の代入で上書きされることを見落としている。
3.× ×2ではなく+2をした場合の値。
4.× i=4 の処理を忘れ、最後の5だけ元のままにした値。

ここだけは覚えよう

Data[i] = Data[i] × 2 は「変換して上書き」 — ループ範囲が全要素(0〜n-1)を覆っているかを最初に確認。

関連問題

CO-P04CO-P06