모두CBT

22-1다음 C 프로그램의 출력 결과를 적으시오.#include &lt… | 2022년 정보처리기사실기 1회차 기출문제 상세 페이지

18

22-1

다음 C 프로그램의 출력 결과를 적으시오.

#include <stdio.h>

int calc(int n) {
    if (n <= 2)
        return n;
    return n * calc(n - 2);
}

int main(void) {
    int start = 7;
    printf("%d", calc(start));
    return 0;
}
해설

105


[해설]

calc 는 n 이 2 이하가 될 때까지 n−2 로 자신을 다시 호출하고, 돌아오면서 값을 곱하는 재귀 함수다.

  • calc(7) = 7 × calc(5)
  • calc(5) = 5 × calc(3)
  • calc(3) = 3 × calc(1)
  • calc(1) 은 종료 조건(n ≤ 2)에 걸려 1을 반환한다.

따라서 7 × 5 × 3 × 1 = 105가 출력된다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.