基本情報技術者令和3年免除 問9
問9
再帰的に定義された手続きprocで,proc(5)を実行したとき,印字される数字を順番に並べたものはどれか。
proc(n)
n=0 ならば戻る
そうでなければ
{
nを印字する
proc(n-1)を呼び出す
nを印字する
}
を実行して戻る
n=0 ならば戻る
そうでなければ
{
nを印字する
proc(n-1)を呼び出す
nを印字する
}
を実行して戻る
- 543212345
- 5432112345
- 54321012345
- 543210012345
- [出典]
- 午前免除試験 R3-1月 問9
- 応用情報技術者 H25 問8と同題
分類
テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム
正解
イ
解説
proc(5)の流れをトレースします。
- proc(5)
n=0ではないので5を印字
proc(4)を呼び出す - proc(4)
n=0ではないので4を印字
proc(3)を呼び出す - proc(3)
n=0ではないので3を印字
proc(2)を呼び出す - proc(2)
n=0ではないので2を印字
proc(1)を呼び出す - proc(1)
n=0ではないので1を印字
proc(0)を呼び出す - proc(0)
n=0なのでproc(1)内に戻る - proc(1)
1を印字してproc(2)内に戻る - proc(2)
2を印字してproc(3)内に戻る - proc(3)
3を印字してproc(4)内に戻る - proc(4)
4を印字してproc(5)内に戻る - proc(5)
5を印字して処理を終了する