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

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

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

出典:基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問7(問題文は IPA の公開問題。解説は当サイト作成)

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:イ

覚える知識

再帰関数のトレース計算

再帰手続は自分自身を呼び出し、呼出しの前後の処理が入れ子状に実行される。

この問題で必要なこと

proc(n)は、nを印字、proc(n-1)を呼び出し、再びnを印字する。n=0で戻るので0は印字されず、5432112345になる。

ひっかけ

n=0を印字すると誤解してウ・エを選ぶ。

この知識の出題:本試験系 8 回・免除試験 11 回(公開問題での観測値)。頻出知識ランキング29位(全1,254件中)。

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

同じ知識の過去問