CO-P07|情報Ⅰ 対策問題
次のプログラムは配列を逆順に表示する。空欄【ア】に入るものはどれか。 (1) Data = [10, 20, 30, 40] (2) i を 【ア】 ながら繰り返す: (3) ⎿ 表示する(Data[i]) (表示: 40 30 20 10)
解答・解説を見る
正解: 1
正答
1
この問題のポイント
逆順ループの範囲指定(減らしながら繰り返す) を問う問題です。
解説
空欄補充は、求める出力から逆算します。表示したいのは「40 30 20 10」。最初に表示すべき40は Data[3]、最後に表示すべき10は Data[0] です。つまり i は3から始まり、0で終わり、1ずつ減る——「3 から 0 まで 1 ずつ減らし」が正解です。
正解の候補でトレースして確かめます。
i=3のとき: Data[3]=40 を表示。
i=2のとき: Data[2]=30 を表示。
i=1のとき: Data[1]=20 を表示。
i=0のとき: Data[0]=10 を表示。
「40 30 20 10」と一致します。
ここで注意すべきは「1つずれ」の罠です。要素数4の配列の添字は0〜3なので、「4から1まで」だと最初に Data[4] を参照して範囲外になり、「3から1まで」だと Data[0] の10を表示しそこねます。始まりの値と終わりの値の両端を必ず代入して検算するのが、この型で確実に得点するコツです。
共通テストの試作問題でも、逆順ループの範囲(どこから始めてどこで終わるか)の選択肢が並ぶ問題が出題されました。「要素数nなら添字は0〜n-1、逆順なら n-1 から 0 へ」と、両端の対応をいつでも言えるようにしておきましょう。
選択肢の確認
1.○ 添字3→2→1→0で全要素を逆順に表示。両端の検算も一致。
2.× 0から3まで増やすのは正順(10 20 30 40)の表示。
3.× 最初に Data[4] を参照するが、添字は0〜3なので範囲外。
4.× 0まで行かないので Data[0]=10 が表示されない。
ここだけは覚えよう
ループ範囲は両端を代入して検算 — 逆順は「n-1 から 0 まで減らす」。最初と最後の要素が出るかを必ず確認。