정보처리기사 실기 - 2020년 3회 C언어 기출 풀이(while문 & 연산자 문제)

Alchemist·2025년 9월 4일

정보처리기사

목록 보기
2/114

✨ 문제

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

#include <stdio.h>
void main(){
    int i=0, c=0;
    while (i<10){
        i++;
        c *= i;
    }
    printf("%d", c);
}

🎯 출제 의도

  • while 반복문의 흐름 이해
  • 증감 연산자(i++) 동작 원리 파악
  • 복합 대입 연산자(*=)의 의미 확인
  • 변수 초기화가 연산 결과에 미치는 영향 이해
  • printf를 통한 출력 형식 확인

📘 개념 정리

1. 변수 초기화

int i = 0, c = 0;
  • i, c 모두 정수형 변수.
  • c가 0으로 초기화 → 곱셈에서는 매우 중요한 의미를 가짐.
    (0에 어떤 수를 곱해도 항상 0)

2. while 반복문

while (i < 10) {
    i++;
    c *= i;
}
  • 조건(i < 10)이 참일 동안 반복 실행.
  • 실행 흐름:
    1. 조건 검사 → 참이면 블록 실행
    2. 블록 실행 후 다시 조건 검사
    3. 거짓이면 종료

3. 증감 연산자 (i++)

  • i++i = i + 1과 동일.
  • i가 0에서 시작 → 1, 2, 3 … 10까지 변함.

4. 복합 대입 연산자 (c *= i)

  • c *= ic = c * i와 같은 의미.
  • 첫 번째 반복에서 c = 0 * 1 = 0.
  • 이후에도 0 * i = 0c는 영원히 0.

5. printf

printf("%d", c);
  • %d는 정수 출력 서식 지정자.
  • 최종적으로 c의 값(0)을 출력.

📝 풀이 과정

  1. 초기값: i=0, c=0

  2. 1회전: i=1, c=0*1=0

  3. 2회전: i=2, c=0*2=0

  4. … 10회전까지 모두 c=0

  5. 반복 종료 후 c=0 출력


✅ 최종 출력 결과

0

💡 정리

이 문제에서 꼭 기억해야 할 개념:

  • while 반복문은 조건이 참일 때 실행된다.
  • i++i를 1씩 증가시킨다.
  • c *= ic = c * i와 같다.
  • 곱셈 연산에서 초기값이 0이면 결과는 항상 0.
  • printf("%d", c)는 정수값 그대로 출력.
profile
html_programming_language

0개의 댓글