次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数mergeは、昇順に整列された整数型の配列data1及びdata2を受け取り、これらを併合してできる昇順に整列された整数型の配列を返す。 関数mergeをmerge({2, 3}, {1, 4})として呼び出すと、/* α */ の行は 。 〔プログラム〕 ○整数型の配列: merge(整数型の配列: data1, 整数型の配列: data2) 整数型: n1 ← data1の要素数 整数型: n2 ← data2の要素数 整数型の配列: work ← {(n1 + n2)個の 未定義の値} 整数型: i ← 1 整数型: j ← 1 整数型: k ← 1 while ((i ≦ n1) and (j ≦ n2)) if (data1[i] ≦ data2[j]) work[k] ← data1[i] i ← i + 1 else work[k] ← data2[j] j ← j + 1 endif k ← k + 1 endwhile while (i ≦ n1) work[k] ← data1[i] i ← i + 1 k ← k + 1 endwhile while (j ≦ n2) work[k] ← data2[j] /* α */ j ← j + 1 k ← k + 1 endwhile return work
マージは先に尽きた側で抜け、残りを写す回数を数える
選択肢
- ア実行されない
- イ1回実行される
- ウ2回実行される
- エ3回実行される
正解と解説
正解:イ 1回実行される
併合の主ループでは、まず1が、次に2、3の順に取り出され、data1側が先に尽きて i が範囲を超えた時点でループを抜ける。このときdata2側には4が1個だけ残っている。したがってdata2の残りを写す最後のwhileが1回だけ実行される。
選択肢ごとの解説
- アdata2側に4が残るため、最後のループは必ず1回は実行される。
- イdata1が先に尽き、data2に残った4を写すために1回だけ実行される。
- ウdata2の残りは1要素だけなので、2回は実行されない。
- エ併合対象の要素数から見て3回実行されることはない。
同じ分野の他の問題
- クイックソートの処理方法を説明したものはどれか。2018年度 秋期 午前 問6
- 次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次の手続sortは、大域…2023年度 公開問題 科目B 問3
- 次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数binSortをbi…2022年度 公開問題 科目B 問11
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問4
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。