科目Bサンプル問題 [科目B]問2

問2

 次のプログラム中のabに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。

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

〔プログラム〕
b02_1.gif/image-size:396×178

分類

アルゴリズムとプログラミング » プログラムの基本要素

正解

解説

例示されている配列{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} なので正しい逆順にはなりません。
したがって「ウ」の組合せが適切です。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop