答え イ
【解説】
proc(5)を実行したときの動作をトレースします。
- proc(5)を実行すると、引数が0でないので、5を印字し、proc(5-1)=proc(4)を呼び出します。
- proc(4)を実行すると、引数が0でないので、4を印字し、proc(4-1)=proc(3)を呼び出します。
- proc(3)を実行すると、引数が0でないので、3を印字し、proc(3-1)=proc(2)を呼び出します。
- proc(2)を実行すると、引数が0でないので、2を印字し、proc(2-1)=proc(1)を呼び出します。
- proc(1)を実行すると、引数が0でないので、1を印字し、proc(1-1)=proc(0)を呼び出します。
- proc(0)を実行すると、引数が0なので、そのまま終了します。
- proc(1)の残りの処理として、1を印字し終了します。
- proc(2)の残りの処理として、2を印字し終了します。
- proc(3)の残りの処理として、3を印字し終了します。
- proc(4)の残りの処理として、4を印字し終了します。
- proc(5)の残りの処理として、5を印字し終了します。
したがって、印字結果は、
5 4 3 2 1 1 2 3 4 5(イ)になります。