分類テクノロジ系 » アルゴリズムとプログラミング » アルゴリズムとプログラミング新しい試験範囲外(2027年度からの新しい試験には出ない分野)年度令和8年度の100問の一覧
手続sortは,要素数が2以上の整数型の配列を引数numberArrayで受け取り,その要素を昇順に並べ替えた結果を出力する。手続sortの動作確認のために,処理の途中でjの値とworkArrayの全ての要素を出力する。配列numberArrayを{3, 5, 1, 2, 4}とし,手続sortをsort(numberArray)として呼び出したとき,jの値が3と出力された直後のworkArrayの全ての要素の出力はどれか。ここで,配列の要素番号は1から始まる。
〔プログラム〕
○sort(整数型の配列: numberArray)
整数型: minIndex, j, k
整数型の配列: workArray ← numberArray // 配列の複製を作る
for (j を 1 から (workArray の要素数 - 1) まで 1 ずつ増やす)
// j 番目から末尾までの要素の中で最も小さい値をもつ要素の要素番号を
// 一つ求める
minIndex ← j
for (k を (j + 1) から workArray の要素数 まで 1 ずつ増やす)
if (workArray[k] が workArray[minIndex] より小さい)
minIndex ← k
endif
endfor
workArray[j] と workArray[minIndex] の値を入れ替える
// 動作確認のために,j の値と workArray の全ての要素を出力する
j の値を出力する
workArray の全ての要素 を先頭から順にコンマ区切りで出力する
endfor
workArray の全ての要素 を先頭から順にコンマ区切りで出力する
正解と解説
正解:イ
ア× 4周目(j=4)で5と4を入れ替えたあとの、並べ替えが終わった配列です。j=3の時点ではまだ末尾が5,4のままです。
イ○ 正解 3周目は最小の3がもともと3番目にあり並びが変わらないので、2周目のあとと同じ 1,2,3,5,4 が出力されます。
ウ× 1周目で最小の1が先頭に来るので、j=1以降の出力で先頭が1以外になることはありません。
エ× 比較を「より大きい」と読み違え、大きい順に並べた場合の出力です。プログラムは小さい値を探しているので、先頭は1になります。
解説
このプログラムは選択ソートです。外側の繰返しの1周で、j 番目から末尾までの中の最も小さい値を探し(内側の繰返し)、それを j 番目と入れ替えます。1周ごとに先頭から1つずつ小さい順に確定していきます。j の値と workArray は、入れ替えのあとに出力されます。
「j の値が3と出力された直後」の出力は、3周目の入れ替えまで終えた配列です。1周ずつ追います。
初め:3,5,1,2,4 j=1:要素1〜5で最小は 1(要素番号3) 要素1 と 要素3 を入れ替え → 1,5,3,2,4 j=2:要素2〜5で最小は 2(要素番号4) 要素2 と 要素4 を入れ替え → 1,2,3,5,4 j=3:要素3〜5で最小は 3(要素番号3) 要素3 と 要素3 を入れ替え(変化なし) → 1,2,3,5,4
3周目は最小の値がもともと3番目にあるので、自分自身との入れ替えになり、並びは変わりません。末尾の5と4が入れ替わるのは4周目です。
教科書 g37この問題の知識
アルゴリズムは問題を解くための手順で、順次・選択・繰返しの3つで組み立てます。流れ図と擬似言語の読み方、変数の値を書き出すトレース、空欄の埋め方、線形探索と2分探索、選択ソート・バブルソート・クイックソートと併合までを、公開問題を解ける形でまとめます。
Udemy の ITパスポート講座を、受講者数・★評価・口コミで比べたページです(広告を含みます)。
過去問教科書の一覧(現行の試験の順)教科書の一覧(新しい試験の順)
出典:IPA「ITパスポート試験 公開問題」令和8年度 問67。問題文と選択肢は改変せずに引用しています(表・図は文字に書き起こしたもの)。正解は IPA 公表の解答例によります。

