2022年4月25日公開分 [科目B]問2

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
 次のプログラム中のabに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。

 次のプログラムは,整数型の配列 array の要素の並びを逆順にする。

〔プログラム〕
b02_1.gif

b02_2.gif
正解 問題へ
分野:アルゴリズムとプログラミング
カテゴリ:プログラムの基本要素
解説
例示されている配列{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} なので正しい逆順にはなりません。
したがって「ウ」の組合せが適切です。

Pagetop