정보처리기사 실기 - 2021년 2회 C언어 기출 풀이(함수 & 거듭제곱 문제)

Alchemist·2025년 9월 7일

정보처리기사

목록 보기
6/114

✨ 문제

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

int main(){
   int res;
   res = mp(2,10);
   printf("%d",res);
   return 0;
}

int mp(int base, int exp) {
   int res = 1;
   for(int i=0; i < exp; i++){
      res = res * base;
   }
   return res; 
}

🎯 출제 의도

  • 사용자 정의 함수의 선언과 호출 이해
  • 매개변수 전달 방식(값에 의한 호출) 이해
  • for 반복문 동작 방식 이해
  • 거듭제곱 연산을 반복문으로 구현하는 방법 이해

📘 개념 정리

1. 함수 정의 & 호출

  • int mp(int base, int exp)
    • 반환형: int (정수 반환)
    • 매개변수: base, exp
    • 역할: baseexp번 곱한 값을 계산(거듭제곱).
  • res = mp(2,10);
    • base=2, exp=10으로 함수 호출.
    • 반환값은 res에 저장.

2. 매개변수 전달

  • 함수 호출 시 값에 의한 전달(call by value).
  • base=2, exp=10이 함수 내부로 복사됨.

3. for 반복문

for(int i=0; i < exp; i++){
    res = res * base;
}
  • i=0부터 시작 → exp(10) 미만일 동안 반복.
  • 총 10번 반복 실행됨.

4. 거듭제곱 계산 과정

  • 초기값: res=1
  • 반복:
    • 1회: res = 1*2 = 2
    • 2회: res = 2*2 = 4
    • 3회: res = 4*2 = 8
    • 4회: res = 8*2 = 16
    • 10회: res = 512*2 = 1024

5. printf 출력

printf("%d", res);
  • %d → 정수 출력
  • 최종적으로 res=1024 출력됨.

📝 풀이 과정

  1. main() 실행 시작
  2. mp(2,10) 호출 → 2의 10제곱 계산
  3. 반복문에서 res=1024 반환
  4. printf("%d", res);1024 출력

✅ 최종 출력 결과

1024

💡 정리

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

  • 사용자 정의 함수: 직접 만든 함수 정의/호출
  • 매개변수: 호출 시 값이 복사되어 함수로 전달
  • for 반복문: 지정한 횟수만큼 연산 반복
  • 거듭제곱 계산: 반복문으로 곱셈을 누적 수행
  • printf("%d"): 정수 출력
profile
html_programming_language

0개의 댓글