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

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

문제

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

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

정답

4 2 2 3 2 2 3 4

4 2 2 3 2 2 3 44 2 2 3 2 2 3 4

해설

solve(4)부터 출력 순서를 직접 추적하면 된다.

  1. solve(4): 4 출력
  2. solve(2): 2 출력 → solve(0) 종료 → solve(1) 종료 → 2 출력
  3. solve(3): 3 출력 → solve(1) 종료 → solve(2): 2 출력 → solve(0) 종료 → solve(1) 종료 → 2 출력 → 3 출력
  4. 마지막으로 solve(4)에서 4 출력 따라서 전체 출력은 4 2 2 3 2 2 3 4이다.

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

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