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件)

解説

ITパスポート 2023年 (令和5年) 問60「手続printArrayは,配列integerArrayの要素を並べ替えて出力す…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約68%です。

正解

ア. 1,2,3,4

正答率 67.8%(1,894人中 1,284人が正解)

問題の解説

隣り合う二つの要素を比べ、前が後ろより大きければ入れ替える操作を繰り返しているので、昇順に整列するバブルソートである。1周目で 2,4,1,3 は 2,1,3,4 となり、最大値の4が末尾に定まる。2周目で 1,2,3,4 となり、3周目は入れ替えが起きない。最終的な出力は 1,2,3,4 である。

選択肢ごとの解説

  • ア正しい。1周目で 2,1,3,4、2周目で 1,2,3,4 となり、3周目は入れ替えが起きないため、昇順に整列した並びが出力される。
  • イどの周回を終えた時点でもこの並びにはならない。全ての周回を終えると必ず昇順に整うので、逆順の組(3と2)が残る並びは出力されない。
  • ウ入れ替えの条件は、前の要素が後ろの要素より大きいことである。全ての周回を終えた後に、大小が乱れた 3,1,4,2 のような並びが残ることはない。
  • エ降順になるのは、前の要素が後ろの要素より小さいときに入れ替える場合である。このプログラムは大きいときに入れ替えるので、昇順になる。

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

ITパスポート試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

ITパスポート試験 合格.dev を App Store でダウンロード