정보처리산업기사 실기 시험 기출 문제 - 재귀 함수
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: recursive_printing.c
#include <stdio.h>
#define NUM 4
int prn(int n);
int main() {
prn(NUM);
}
int prn(int n) {
if (n > 1) prn(n - 1);
printf("%d", n);
}
입력 예시
이 프로그램은 사용자로부터 입력을 받지 않습니다.
출력 예시
1234
해설
이 프로그램은 재귀 함수 prn
을 사용하여 1부터 주어진 상수 NUM
(값이 4)까지의 수를 출력합니다.
prn
함수는 인자n
으로 주어진 수가 1보다 큰 경우 자기 자신을 호출하면서n-1
을 인자로 넘깁니다. 이 과정은n
이 1보다 큰 동안 반복됩니다.- 재귀 호출의 종료 조건은
n
이 1 이하가 되었을 때입니다. 이때, 함수는 더 이상 자기 자신을 호출하지 않고 다시 호출 스택을 거슬러 올라가며, 각 재귀 단계에서의n
값을 출력합니다. - 함수의 첫 호출에서
n
은 4입니다. 이 함수는 자기 자신을n=3
,n=2
, 그리고n=1
이 될 때까지 계속 호출합니다. 각 호출이 완료된 후, 각 재귀 레벨에서의n
을 출력합니다. 출력은 호출 순서의 역순인 1부터 4까지 순차적으로 진행됩니다.
이 프로그램은 재귀 호출을 이용해 숫자를 역순으로 처리하고, 처리 완료 후 순차적으로 결과를 출력하는 과정을 보여줍니다. 이는 프로그래밍에서 재귀적 사고를 적용하는 방법을 설명하는 좋은 예제입니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!