科目Bアルゴリズム

2024年春 科目B 問4
アルゴリズムの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次の記述中の □ に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は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〜4キーで選択し、Enterキーで採点できます。

出典:令和6年度 基本情報技術者試験 科目B 問4
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は イ です。

merge({2,3},{1,4})のトレース:1回目: 1<2→work[1]=1,j=2,k=2。2回目: 2<4→work[2]=2,i=2,k=3。3回目: 3<4→work[3]=3,i=3,k=4。i=3>n1=2でwhile(i≦n1)は実行なし。j=2≦n2=2なのでwhile(j≦n2)が1回実行されwork[4]=4。よってαは1回実行される。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…