2023 국가직9급 컴퓨터일반 12번 해설 — C 재귀 함수
정답 ②번출제 쟁점 C 재귀 함수발문 옳은 것 고르기
문제
다음 C 프로그램의 실행 결과는? #include <stdio.h> int funa(int); void main() { printf("%d, %d", funa(5), funa(6)); return 0; } int funa(int n) { if(n > 1) return (n + (funa(n-2))); else return (n % 2); }
- ① 5, 6
- ② 9, 12 ← 정답
- ③ 15, 21
- ④ 120, 720
선지별 해설
① 5, 6
이 선지 진술은 틀림(X)
funa(n)은 n을 더한 뒤 n-2에 대해 재귀 호출한다. funa(5)=5+3+1, funa(6)=6+4+2+0이다.
② 9, 12
이 선지 진술은 옳음(O)
funa(5)는 5+3+1=9이고 funa(6)는 6+4+2+0=12이다. 따라서 출력 쌍은 9, 12이다.
③ 15, 21
이 선지 진술은 틀림(X)
재귀 호출이 n-2로 진행되므로 같은 홀짝의 수만 더한다. 그래서 5와 6의 삼각수인 15, 21이 아니다.
④ 120, 720
이 선지 진술은 틀림(X)
팩토리얼이라면 곱셈 재귀가 필요하지만 이 함수는 덧셈을 수행한다. 5!과 6! 결과가 출력되지 않는다.
핵심 요약 (Q&A)
- Q. 2023 국가직9급 컴퓨터일반 12번의 핵심 쟁점은 무엇인가?
- A. 2023 국가직9급 컴퓨터일반 12번은 C 재귀 함수에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
- Q. 2023 국가직9급 컴퓨터일반 12번의 정답은?
- A. 정답은 ②번입니다. funa(5)는 5+3+1=9이고 funa(6)는 6+4+2+0=12이다. 따라서 출력 쌍은 9, 12이다.