문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> void trace(int x) { if (x <= 1) return; printf("%d ", x); trace(x - 3); printf("%d ", x); trace(x - 4); } int main() { trace(7); return 0; }
정답
7 4 4 7 3 3
7 4 4 7 3 3
해설
trace(7) 실행: 7 출력 → trace(4) 호출 → 4 출력 → trace(1) 호출(종료) → 4 출력 → trace(0) 호출(종료) → trace(7) 복귀하여 7 출력 → trace(3) 호출 → 3 출력 → trace(0) 호출(종료) → 3 출력 → trace(-1) 호출(종료). 최종 출력: 7 4 4 7 3 3