プログラミングの基礎(擬似言語のトレース)
配列の要素番号は1から始まる。次のプログラムを実行した後の配列 a の内容はどれか。
整数型の配列: a ← {5, 1, 4, 2, 3}
整数型: t ← a[1]
for (i を 1 から 4 まで 1 ずつ増やす)
a[i] ← a[i + 1]
endfor
a[5] ← t
- A{1, 4, 2, 3, 5}
- B{1, 4, 2, 3, 3}
- C{3, 5, 1, 4, 2}
答えと解説を見る
正解:A. {1, 4, 2, 3, 5}
先頭の値5を t に退避してから、a[i] ← a[i + 1] で各要素を1つずつ前へ詰めます。i を小さい方から進めるので、上書きされる前の値が順に前へ移り、{1, 4, 2, 3, 3} になります。最後に a[5] ← t で末尾に5を入れ、{1, 4, 2, 3, 5} になります。全体を左へ1つ回転させる処理です。
- A. 正しい。先頭の5が末尾へ回り、残りが前へ詰まります。
- B. 最後の a[5] ← t を実行しなかった場合の内容です。
- C. 右へ1つ回転させた場合の内容です。この処理は要素を前へ詰めています。