メインコンテンツへスキップ
基本情報技術者令和6年度 CBT科目B4

令和6年度 CBT 基本情報技術者 科目B4

難度標準

次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は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回実行される

解説

結論 → 詳細 → 補足 の 3 層構成

展開
解説Layer 1

イは、最終的な結合処理のループにおける `work[k] ← data2[j]` の実行回数を問うています。関数 `merge({2, 3},{1, 4})` の場合、data1は{2, 3}でn1=2、data2は{1, 4}でn2=2です。最初のwhileループでは、data1[1] (2) > data2[1] (1)のため、work[1]に1が代入されjは2になります。次にdata1[1] (2) ≤ data2[2] (4)のため、work[2]に2が代入されiは2になります。さらにdata1[2] (3) ≤ data2[2] (4)のため、work[3]に3が代入されiは3になります。ここで最初のwhileループは終了します。iがn1を超えたため、次の`while (i ≤ n1)`ループは実行されません。最後に`while (j ≤ n2)`ループに入ります。jは2、n2は2なので条件を満たします。`work[k] ← data2[j]` が実行されwork[4]に4が代入されます。その後jは3、kは5となります。jがn2を超えたためこのループは1回実行され終了します。したがって、αの行は1回実行されます。アは最初のwhileループで処理が完了しないため間違いです。ウ、エは実行回数が実際と異なるため誤りです。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

アルゴリズムとプログラミング の他の問題