정보처리기사 실기C언어C - 이중 재귀 트레이싱난이도 2SHORT_ANSWER

정보처리기사 실기 C - 이중 재귀 트레이싱 기출문제 #733

문제

다음 C 코드의 실행 결과를 쓰시오.

C
#include <stdio.h> int process(int x) { if (x <= 1) return x; int left = process(x - 2); printf("%d ", x); int right = process(x - 1); return left + right; } int main() { process(4); return 0; }

정답

4 2 3

4 2 3

해설

process(4) 호출 시: 먼저 process(2)를 호출하고, process(2)에서는 process(0)을 호출한 후 '2'를 출력하고 process(1)을 호출한다. process(4)로 돌아와 '4'를 출력한 후 process(3)을 호출하고, process(3)에서는 process(1)을 호출한 후 '3'을 출력하고 process(2)를 호출한다. 따라서 출력 순서는 2, 4, 3이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.