ITパスポート 令和8年度公開問題科目A問67

科目A問67

手続 sort は,要素数が2以上の整数型の配列を引数 numberArray で受け取り,その要素を昇順に並べ替えた結果を出力する。手続 sort の動作確認のために,処理の途中でjの値と workArray の全ての要素を出力する。配列 numberArray を{3,5,1,2,4}とし,手続 sort を sort(numberArray) として呼び出したとき,jの値が3と出力された直後の workArray の全ての要素の出力はどれか。ここで,配列の要素番号は1から始まる。

〔プログラム〕
1,2,3,4,5
1,2,3,5,4
4,5,3,2,1
5,4,3,2,1
『情報処理過去問.com』からiPhoneアプリがリリースされました!!

正解

解説

引数の配列をworkArrayにコピーし、外側のforjを1から(要素数-1)まで動かし、内側のforminIndex(最小要素の位置)を探してからworkArray[j]workArray[minIndex]を入れ替えます。各回の最後にjworkArray全要素を出力します(要素番号は1始まりです)。
初期値:workArray = {3,5,1,2,4}

j=1:minIndex=1 → 比較の結果minIndex=3 → 1番目と3番目を交換 → {1,5,3,2,4} を出力
j=2:minIndex=2 → 比較の結果minIndex=4 → 2番目と4番目を交換 → {1,2,3,5,4} を出力
j=3:minIndex=3 → 以降の要素により小さい値なし → 3番目と3番目を交換(変化なし) → {1,2,3,5,4} を出力

よって、j=3 が出力された直後の workArray は「1,2,3,5,4」です。正解はです。
ア.1,2,3,4,5
「1,2,3,4,5」ではありません。j=3 の直後は {1,2,3,5,4} のままです。
イ.1,2,3,5,4
j=3 の処理後は交換が発生せず、直前の {1,2,3,5,4} がそのまま出力されます。正解です。
ウ.4,5,3,2,1
降順の並び「4,5,3,2,1」にはなりません。処理は未整列部分の最小を前方へ移す流れです。
エ.5,4,3,2,1
降順の並び「5,4,3,2,1」にはなりません。j=3 の直後は {1,2,3,5,4} です。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする