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); }

  1. 5, 6
  2. 9, 12 ← 정답
  3. 15, 21
  4. 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이다.
🧩 프로그래밍 개념·기출 모아보기📄 2023 국가직9급 컴퓨터일반 전체 문항✏️ 이 시험 미니문제 풀기
출처: 2023 국가직9급 컴퓨터일반 기출 (원문 보존)해설 기준: 출제 당시 법령·판례 · 개정 사항은 ⚠️ 표시