정보처리기사 실기 - 2020년 3회 C언어 기출 풀이(함수 호출 & return 문제)

Alchemist·2025년 9월 4일

정보처리기사

목록 보기
3/114

✨ 문제

다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include <stdio.h>
int r1(){
    return 4;
}
int r10(){
    return (30 + r1());
}
int r100(){
    return (200 + r10());
}
int main(){
    printf("%d\n", r100());
    return 0;
}

🎯 출제 의도

  • 함수 정의와 호출의 흐름 이해
  • return 문이 결과값을 전달하는 방식 이해
  • 함수 간 호출이 중첩될 때 실행 순서를 추적할 수 있는지 확인
  • printf를 통한 출력 방식 확인

📘 개념 정리

1. 함수(Function)

  • C언어에서 함수는 특정 작업을 수행하는 독립된 코드 블록.
  • 형식:
반환형 함수명(매개변수){
    실행문;
    return;
}
  • 반환형이 int이면, 정수형 데이터를 반환한다.

2. return 문

  • return 값; → 함수 실행 종료 후 결과값을 호출한 함수로 돌려줌.
  • 여러 함수가 연결되어 호출되면, 값이 아래에서 위로 전달됨.

3. 함수 간 호출 관계

  • r1() → 항상 4 반환
  • r10()30 + r1()30 + 4 = 34
  • r100()200 + r10()200 + 34 = 234

4. main 함수와 printf

int main(){
    printf("%d\n", r100());
    return 0;
}
  • main()은 프로그램의 시작점.
  • printf("%d\n", r100());r100() 호출 결과를 출력.
  • %d → 정수 출력, \n → 줄바꿈.

📝 풀이 과정

  1. main() 실행 시작
  2. r100() 호출
  • 내부에서 r10() 호출
    • 내부에서 r1() 호출 → 4 반환
    • 30 + 4 = 34 반환
  • 200 + 34 = 234 반환
  1. printf("%d\n", r100());234 출력 후 줄바꿈

✅ 최종 출력 결과

234

💡 정리

이 문제에서 꼭 알아야 할 개념:

  • 함수 호출 순서 추적: main → r100 → r10 → r1
  • return의 의미: 반환값이 위로 전달됨
  • printf와 서식 지정자: %d는 정수 출력, \n은 줄바꿈
profile
html_programming_language

0개의 댓글