本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成25年度 秋期 応用情報技術者試験問題と解説

問8

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

ア 543212345

イ 5432112345

ウ 54321012345

エ 543210012345


正解


解説

proc(5) を呼び出すと、引数が0でないので、
5を印字する。
proc(5 - 1) = prov(4) を呼び出す。
  proc(4) を呼び出すと、引数が0でないので、
 4を印字する。
 proc(4 - 1) = prov(3) を呼び出す。
   proc(3) を呼び出すと、引数が0でないので、
   3を印字する。
   proc(3 - 1) = prov(2) を呼び出す。

    ・・・

     proc(1) を呼び出すと、引数が0でないので、
     1を印字する。
     proc(1 - 1) = prov(0) を呼び出す。
       proc(0) を呼び出すと、引数が0なので戻る。
     1を印字する。
     戻る

    ・・・

   3を印字する。
   戻る。
 4を印字する。
 戻る
5を印字する。
戻る

従って、印字結果は、5432112345となる。

問7 目次 問9