過去問ぽちぽちby KKM Studio

令和5年度 ITパスポート 問60 解説

手続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. ア1,2,3,4
  2. イ1,3,2,4
  3. ウ3,1,4,2
  4. エ4,3,2,1
答えを見る

正解 ア1,2,3,4

要点隣同士を比べて大小を入れ替えるバブルソートで昇順に並ぶ

解説

このプログラムは隣り合う要素を比べ、左が大きければ入れ替えるバブルソートで、結果は昇順の1,2,3,4になりアが正解です。

  • n=1:{2,4,1,3} → 4と1を交換 {2,1,4,3} → 4と3を交換 {2,1,3,4}
  • n=2:2と1を交換 {1,2,3,4}(2と3はそのまま)
  • n=3:1と2はそのまま {1,2,3,4}
  • イ、ウ、エ:いずれも昇順になっていないので誤り。
App

スキマ時間に、1問ずつ。
アプリ「ITパスポート 過去問ぽちぽち」

全問を正答・解説つきで収録。毎日の10問に、忘れた頃の復習が自然に混ざります。広告なし・買い切り。

App Store近日公開Google Play近日公開