アルゴリズムとプログラミング
基本情報技術者試験 科目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件中)。