22-1다음 C 프로그램의 출력 결과를 적으시오.#include <… | 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가 출력된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.