12 다음 C 언어로 구현된 프로그램을 분석하여 5를 입력했을 때 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int func(int a) {
if(a <= 1) return 1;
return a * func(a-1)
}
int main() {
int a;
scanf("%d", &a);
printf("%d", func(a));
}
답
더보기
120
해설
코드 | 실행순서 및 해석 | ||
1 | #include <stdio.h> | ||
2 | int func(int a) { | 5 | 호출 → func(5) |
3 | if(a <= 1) return 1; | 6 | // a가 1과 같아질 때까지 반복 a는 5이므로 실행하지 않음 |
8 | a는 4이므로 실행하지 않음 | ||
10 | a는 3이므로 실행하지 않음 | ||
12 | a는 2이므로 실행하지 않음 | ||
14 | a는 1이므로 1 반환 | ||
4 | return a * func(a-1) | 7 | 5*func(4) 반환 // 재귀함수 |
9 | 5*4*func(3) 반환 | ||
11 | 5*4*3*func(2) 반환 | ||
13 | 5*4*3*2*func(1) 반환 | ||
15 | 5*4*3*2*1 반환 | ||
5 | } | ||
6 | int main() { | 1 | 실행 |
7 | int a; | 2 | |
8 | scanf("%d", &a); | 3 | 정수형 a를 입력받음 |
9 | printf("%d", func(a)); | 4 16 |
func(a)를 호출해 출력 출력: 120 |
10 | } |
'자격증 > 정보처리기사 실기 - 기출문제' 카테고리의 다른 글
[정보처리기사 실기] 2022년 1회 14 - 블랙 박스 테스트 (0) | 2025.07.19 |
---|---|
[정보처리기사 실기] 2022년 1회 13 - 사용자 인터페이스 (2) | 2025.07.19 |
[정보처리기사 실기] 2022년 1회 11 - 인터페이스 구현 검증 도구 (1) | 2025.07.19 |
[정보처리기사 실기] 2022년 1회 10 - 소스 코드 품질 분석 도구 (1) | 2025.07.19 |
[정보처리기사 실기] 2022년 1회 09 - 보안 프로토콜 (0) | 2025.07.19 |