모두CBT

21-2아래 C 프로그램의 실행 결과를 적으시오.#include &lt… | 2021년 정보처리기사실기 2회차 기출문제 상세 페이지

13

21-2

아래 C 프로그램의 실행 결과를 적으시오.

#include <stdio.h>

int main(void) {
    int arr[4] = {2};
    int total = 0;
    arr[2] = *(arr + 0) * 3;
    arr[3] = *(arr + 2) - 1;
    for (int k = 0; k < 4; k++)
        total += *(arr + k);
    printf("%d", total);
    return 0;
}
해설

13


[해설]

배열을 일부만 초기화하면 나머지 원소는 0으로 채워진다. 따라서 시작 상태는 arr = {2, 0, 0, 0}이다.

  • *(arr + 0)은 arr[0]이므로 arr[2] = 2 × 3 = 6
  • *(arr + 2)는 arr[2]이므로 arr[3] = 6 − 1 = 5
  • arr[1]은 한 번도 대입되지 않아 0

최종 배열 {2, 0, 6, 5}를 모두 더하면 13이다. 포인터 산술 *(arr + k)는 arr[k]와 같다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.