アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問9

再帰的に定義された手続 proc で,proc(5) を実行したとき,印字される数字を順番に並べたものはどれか。
proc(n) n=0 ならば戻る そうでなければ { n を印字する proc(n−1) を呼び出す n を印字する } を実行して戻る
  • ア 543212345
  • イ 5432112345
  • ウ 54321012345
  • エ 543210012345

出典:基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問9

答えと解説を見る

正解:イ

覚える知識

再帰関数のトレース計算

再帰呼出しの前後に処理があると、行きは呼出し順、戻りは逆順に実行される。

この問題で必要なこと

proc(n)はnを印字し、proc(n-1)を呼び、再びnを印字する。n=5から順に5〜1を行きに、戻りで1〜5を印字するので5432112345。

ひっかけ

n=0の印字有無や、戻り側の順序を逆にした選択肢が並ぶ。

この知識の出題:本試験系 8 回・免除試験 11 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「再帰呼出しと引数の渡し方」で学ぶ

同じ知識の過去問