ITパスポート試験 ITパスポート 2023年 (令和5年)60: 手続printArrayは,配列integerArrayの要素を並べ替えて出力する。手続printArrayを呼び出したときの出力はどれか。ここで,配列の要素番

ITパスポート 2023年 (令和5年)
Q 6060 / 100
手続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 の全ての要素 を先頭から順にコンマ区切りで出力する
この問の正解率:67.79%(1,894件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

手続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要素を比較交換して整列するバブルソート.配列 {2,4,1,3} を昇順整列し最終的に 1,2,3,4 が出力される古典的なソートアルゴリズム.

選択肢ごとの解説

  • .正しい. バブルソートの最終出力は昇順整列の 1,2,3,4 となる.
  • .誤り. 1パス途中の状態でなく完全整列後の値が出力されるので誤り.
  • .誤り. ソート初期段階の途中値で最終出力でなく不正解の値となる.
  • .誤り. 降順 4,3,2,1 ではなく昇順整列の結果が出力される.

ITパスポート 2023年 (令和5年)過去問一覧へ戻る・問60