21-2아래 C 프로그램의 실행 결과를 적으시오.#include <… | 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]와 같다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.