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

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

문제

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

C
#include <stdio.h> void calculate(int depth) { if (depth <= 1) { printf("%d ", depth); return; } calculate(depth - 2); printf("%d ", depth); calculate(depth - 1); } int main() { calculate(4); return 0; }

정답

0 2 1 4 1 3 0 2 1

0 2 1 4 1 3 0 2 1

해설

calculate(4) 호출 과정을 순서대로 추적하면 다음과 같다.

  1. calculate(4) → calculate(2)
  2. calculate(2) → calculate(0) → "0 " 출력
  3. calculate(2)로 복귀 → "2 " 출력
  4. calculate(2) → calculate(1) → "1 " 출력
  5. calculate(4)로 복귀 → "4 " 출력
  6. calculate(4) → calculate(3)
  7. calculate(3) → calculate(1) → "1 " 출력
  8. calculate(3)로 복귀 → "3 " 출력
  9. calculate(3) → calculate(2)
  10. calculate(2) → calculate(0) → "0 " 출력
  11. calculate(2)로 복귀 → "2 " 출력
  12. calculate(2) → calculate(1) → "1 " 출력 따라서 최종 출력은 "0 2 1 4 1 3 0 2 1"이다.

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

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

[정보처리기사 실기] C - 이중 재귀 트레이싱 C언어 기출 #3442 | sqldpass