令和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,2,3,4
- イ1,3,2,4
- ウ3,1,4,2
- エ4,3,2,1
正解と解説を見る
正解:ア
このプログラムは、隣り合う要素を比べて大きい方を後ろへ送る操作を繰り返す、いわゆるバブルソートです。外側のループが1回終わるごとに最大値が末尾に確定していき、最終的に配列は昇順に並びます。初期値の{2, 4, 1, 3}は1,2,3,4の順に整列され、コンマ区切りで出力されます。比較条件が「>なら入れ替える」なので昇順になる点を押さえておくと、降順との取り違えを防げます。
文章だけだと分かりにくいときは「アルゴリズムとフローチャート」を図解で見る図解と確認問題つき・登録不要出典:令和5年度 ITパスポート試験 公開問題 問60
問題文・選択肢はIPA公開問題の原文です。解説は本サービスが独自に作成したもので、IPAの公式解説ではありません。
この問題のテーマを基礎から学ぶ
同じテーマの過去問
この分野の続きをアプリで解く
アプリでは公式過去問500問を本番の並びのまま解けるほか、分野別の演習や100問模試、合格準備度スコアで弱い分野と次の一歩が分かります。最初の7日間は学習記録も無料です。