令和3年免除試験問題 問9

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
再帰的に定義された手続きprocで,proc(5)を実行したとき,印字される数字を順番に並べたものはどれか。

proc(n)
 n=0 ならば戻る
 そうでなければ
 {
  nを印字する
  proc(n-1)を呼び出す
  nを印字する
 }
 を実行して戻る

  • 543212345
  • 5432112345
  • 54321012345
  • 543210012345
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズム
解説
proc(5)の流れをトレースします。
  1. proc(5)
    n=0ではないので5を印字
    proc(4)を呼び出す
  2. proc(4)
    n=0ではないので4を印字
    proc(3)を呼び出す
  3. proc(3)
    n=0ではないので3を印字
    proc(2)を呼び出す
  4. proc(2)
    n=0ではないので2を印字
    proc(1)を呼び出す
  5. proc(1)
    n=0ではないので1を印字
    proc(0)を呼び出す
  6. proc(0)
    n=0なのでproc(1)内に戻る
  7. proc(1)
    1を印字してproc(2)内に戻る
  8. proc(2)
    2を印字してproc(3)内に戻る
  9. proc(3)
    3を印字してproc(4)内に戻る
  10. proc(4)
    4を印字してproc(5)内に戻る
  11. proc(5)
    5を印字して処理を終了する
印字された数字を順番に並べると「5432112345」になります。

出典


Pagetop