アルゴリズムとプログラミング
基本情報技術者試験 科目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 回(公開問題での観測値)