次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。…
科目B アルゴリズムとプログラミング 科目B 問4
次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。関数merge は,昇順に整列された整数型の配列data1 及びdata2 を受け取り,これらを併合してできる昇順に整列された整数型の配列を返す。関数merge をmerge({2, 3}, {1, 4}) として呼び出すと,/*** α ***/ の行は [ ] 。
正答 イ
正答は イ。/* α */ の行は 1 回実行されます。
プログラムは、二つの配列の先頭から小さい方を順に work に移し(一つ目の while)、どちらかの配列を使い切ったら、残った方の要素をそのまま後ろに移します(二つ目・三つ目の while)。α の行は三つ目の while の中にあり、data2 の要素が残ったときにその数だけ実行されます。
【トレース(data1={2, 3}、data2={1, 4}、n1=2、n2=2)】
一つ目の while(i ≦ 2 and j ≦ 2 の間)
解説の続きをみる続きを閉じる
1 回目:data1[1]=2 ≦ data2[1]=1 は偽
→ work[1] ← 1、j=2、k=2
2 回目:data1[1]=2 ≦ data2[2]=4 は真
→ work[2] ← 2、i=2、k=3
3 回目:data1[2]=3 ≦ data2[2]=4 は真
→ work[3] ← 3、i=3、k=4
i=3 で i ≦ 2 が偽になり、ループを抜ける
二つ目の while(i ≦ 2):i=3 なので 1 回も実行しない三つ目の while(j ≦ 2)
1 回目:j=2 → work[4] ← data2[2]=4(α の行)、j=3、k=5
j=3 で j ≦ 2 が偽になり、ループを抜ける
結果は work={1, 2, 3, 4} で、α の行は 1 回だけ実行されました。
【ほかの選択肢】
ア 実行されない 誤り
→ data1 が先に使い切られ、data2 の 4 が残るので、
三つ目の while が 1 回実行される
ウ 2 回実行される 誤り
エ 3 回実行される 誤り
→ data2 の 1 は一つ目の while で work に移っており、
三つ目の while で移るのは残った 4 だけ
【見分け方】
α の行の実行回数は、「一つ目の while を抜けたときに data2 に残っている要素の数」です。data1 の最大値 3 より大きい data2 の要素(4 の 1 個)を数えれば、すぐに分かります。
出典:令和6年度 基本情報技術者試験 科目B 公開問題 問4(独立行政法人情報処理推進機構)出典元ページ
最終更新日
「科目B アルゴリズムとプログラミング」のほかの問題
- 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2025年度(令和7年度)公開問題 科目B 問5次の記述中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。
- 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2026年度(令和8年度)公開問題 科目B 問2次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2026年度(令和8年度)公開問題 科目B 問3次のプログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。
- 2026年度(令和8年度)公開問題 科目B 問4次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
スポンサーリンク





