![]()
平成22年 春期 基本情報技術者 午後 問08
問08 必須問題次のプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラムの説明〕 プログラム Sort は配列に格納された整数値のデータを再帰的に分割し, 分割したデータの値の大小を比較しながら併合していくことでデータを昇順に整列するプログラムである。 Sort は併合に副プログラム Merge を使用する。 (1) num 個( num ≧1)のデータを配列 list に格納して Sort を呼び出すと, 整列された結果が配列 list に返却される。 (2) Sort では,次の手順で配列 list に格納された整数値のデータを整列する。 A Merge を使用し,二つの配列 slist1 と slist2 を併合して一つの配列 list にする。 (3) Merge では,次の手順で,整列済の二つの配列 slist1 と slist2 を併合し, 整列した一つの配列 list を作成する。 A 配列 slist1 と slist2 の要素を順に比較して,小さい方から順に配列 list に格納する。 B 配列 slist1 又は slist2 の残った要素を配列 list に追加する。 (4) Sort と Merge の引数の仕様を表1,2に示す。配列の添字は0から始まる。
表2 Merge の引数の仕様
次のデータを例にして,整列処理の流れを図に示す。 配列 list のデータ:5,7,4,2,3,8,1
図 整列処理の流れ 〔プログラム〕 ![]()
設問1 プログラム中の a に関する解答群 ウ num > 1 エ num > 2 ウ list[num1+i] エ list[num2+i] c に関する解答群 ウ ( j < num1 ) and ( i < num2 ) エ ( j < num1 ) or ( i < num2 ) オ ( i + j ) < ( num1 + num2 ) カ ( i + j ) ≦ ( num1 + num2 ) キ ( i + j ) > ( num1 + num2 ) ク ( i + j ) ≧ ( num1 + num2 )
設問2 最初に与えられた配列 list のデータが次の場合, プログラム Sort の α における配列 list の内容の移り変わりとして正しい答えを,解答群の中から選べ。 配列 list のデータ:3,8,2,7,5,1 なお,解答群の“→”は,内容が左から右へ移り変わっていくことを示している。 解答群 イ 3 → 8 → 3,8 → 2,3,8 → 7 → 5 → 5,7 → 1,5,7 → 1,2,3,5,7,8 ウ 2,8 → 2,3,8 → 1,5 → 1,5,7 → 1,2,3,5,7,8 エ 3,8 → 2,3,8 → 7,5 → 1,5,7 → 1,2,3,5,7,8 オ 2,3,8 → 1,5,7 → 1,2,3,5,7,8 カ 3,8,2 → 7,5,1 → 1,2,3,5,7,8
設問3 副プログラム Merge の β 部分と同じ結果を得る処理として正しい答えを, 解答群の中から選べ。 解答群
![]() [←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||||||||||||||