科目Bサンプル問題 [科目B]問2
問2
次のプログラム中のaとbに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。
次のプログラムは,整数型の配列 array の要素の並びを逆順にする。
〔プログラム〕
次のプログラムは,整数型の配列 array の要素の並びを逆順にする。
〔プログラム〕
分類
アルゴリズムとプログラミング » プログラムの基本要素
正解
ウ
解説
例示されている配列{1, 2, 3, 4, 5}が、その逆順である{5, 4, 3, 2, 1}に変換されるかどうかについて、ループ1回目の処理を選択肢ごとに確認していきます。
- right ← 5 - 1 = 4
tmp = array[4] = 4
array[4] ← array[1] = 1
array[1] ← 4
この時点で array = {4, 2, 3, 1, 5} なので正しい逆順にはなりません。 - right ← 5 - 1 = 4
tmp = array[4] = 4
array[4] ← array[1] = 1
array[4] ← 4
この時点で array = {1, 2, 3, 4, 5} なので正しい逆順にはなりません。 - right ← 5 - 1 + 1 = 5
tmp = array[5] = 5
array[5] ← array[1] = 1
array[1] ← 5
この時点で array = {5, 2, 3, 4, 1} となり、先頭と末尾が入れ替わることで正しい逆順に変わります。その後ループ処理の2回目で、
right ← 5 - 2 + 1 = 4
tmp = array[4] = 4
array[4] ← array[2] = 2
array[2] ← 4
この時点で array = {5, 4, 3, 2, 1} と逆順となるため正しい処理です。 - right ← 5 - 1 + 1 = 5
tmp = array[5] = 5
array[5] ← array[1] = 1
array[5] ← 5
この時点で array = {1, 2, 3, 4, 5} なので正しい逆順にはなりません。