次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。…

科目B アルゴリズムとプログラミング 科目B 問4

次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。関数merge は,昇順に整列された整数型の配列data1 及びdata2 を受け取り,これらを併合してできる昇順に整列された整数型の配列を返す。関数merge をmerge({2, 3}, {1, 4}) として呼び出すと,/*** α ***/ の行は [  ] 。

基本情報技術者 2024年度(令和6年度)公開問題 科目B 問4の図基本情報技術者 2024年度(令和6年度)公開問題 科目B 問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 アルゴリズムとプログラミング」のほかの問題

  1. 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。
  2. 2025年度(令和7年度)公開問題 科目B 問5次の記述中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。
  3. 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  4. 2026年度(令和8年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  5. 2026年度(令和8年度)公開問題 科目B 問3次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  6. 2026年度(令和8年度)公開問題 科目B 問4次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ

問題文・解答の修正依頼

スポンサーリンク