平成25年度 秋期 応用情報技術者試験 午前 問8
再帰的に定義された手続 proc で,proc(5) を実行したとき,印字される数字を順番に並べたものはどれか。
proc(n)
n=0 ならば戻る
そうでなければ
{
n を印字する
proc(n−1) を呼び出す
n を印字する
}
を実行して戻る
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:イ
proc(n) は「n を印字 → proc(n−1) → n を印字」なので,
- proc(5) = 5,proc(4),5
- proc(4) = 4,proc(3),4
- …
- proc(1) = 1,proc(0),1
- proc(0) は何も印字せずに戻ります。
展開すると 5 4 3 2 1 1 2 3 4 5 となります。0 は印字されません。
-
ア: 543212345
誤り。1 は proc(1) の前後で2回印字されるので,「11」が並びます。 -
イ: 5432112345
正しい。5432112345 となり,手順どおりです。 -
ウ: 54321012345
誤り。n=0 のときは何も印字せずに戻るので,0 は印字されません。 -
エ: 543210012345
誤り。n=0 のときは何も印字せずに戻るので,0 は印字されません。
答え
イ: 5432112345
出典:平成25年度 秋期 応用情報技術者試験 午前 問8