アルゴリズムとプログラミング

ITパスポート試験手続 printArray は,配列 integerArray の要素を並べ替えて出力する。手続…

テクノロジ系アルゴリズムとプログラミング難易度:normal
手続 printArray は,配列 integerArray の要素を並べ替えて出力する。手続 printArray を呼び出したときの出力はどれか。ここで,配列の要素番号は1から始まる。 〔プログラム〕
○printArray()
  整数型: n, m
  整数型の配列: integerArray ← {2, 4, 1, 3}
  for (n を 1 から (integerArray の要素数 − 1) まで 1 ずつ増やす)
    for (m を 1 から (integerArray の要素数 − n) まで 1 ずつ増やす)
      if (integerArray[m] > integerArray[m + 1])
        integerArray[m] と integerArray[m + 1] の値を入れ替える
      endif
    endfor
  endfor
  integerArray の全ての要素を先頭から順にコンマ区切りで出力する
1,2,3,4
1,3,2,4
3,1,4,2
4,3,2,1
正解
ア.1,2,3,4

内側ループが隣接要素を比較して大きい方を後方へバブルさせる昇順バブルソートであり,{2,4,1,3}は{1,2,3,4}に整列される。先頭から出力した「1,2,3,4」が正しく,アである。

?選択肢ごとの解説

ア ○内側ループが隣接要素を比較して大きい方を後方へバブルさせる昇順バブルソートであり,{2,4,1,3}は{1,2,3,4}に整列される。先頭から出力した「1,2,3,4」が正しく,アである。
イ ×1,3,2,4は,2と3の比較・交換を1回省くなどトレースを途中で打ち切った場合に出る誤りで,整列が完了していない。
ウ ×3,1,4,2は,比較の向き(>を<と取り違える)や入れ替え対象を誤った場合の中間状態に近く,昇順整列の結果ではない。
エ ×4,3,2,1は降順に並べた結果で,if条件のinteger Array[m]>integerArray[m+1](昇順用)を逆に解釈した誤りである。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

ITパスポート試験は全2,669問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 最終更新 2026-08-15 · ITパスポート試験 過去問 · itpass-r5k-q60

【ITパスポート試験】手続 printArray は,配列…|正解「1,2,3,4」|ukamiru 過去問