모두CBT

다음 C 프로그램의 출력 값은?#include <stdio.h&g… | [9급 지방직 컴퓨터일반] 14년 1회차 기출문제 상세 페이지

1[9급 지방직 컴퓨터일반] 14년 1회차
다음 C 프로그램의 출력 값은?
#include <stdio.h>
int main(void) {
int i;
int a[ ] = {10, 20, 30, 40, 50, 60, 70,
80, 90, 100};
int *ptr = a + 3;
for (i = 0; i < 5; ++i) {
printf("%d ", *(ptr + i) - 3);
}
}
1
27 37 47 57 67
2
37 47 57 67 77
3
47 57 67 77 87
4
43 53 63 73 83
해설

출력 값은 37 47 57 67 77이다.

ptr = a + 3 이므로 ptr은 a[3](값 40)을 가리킨다. *(ptr + i)는 a[3+i]이므로 i = 0~4에서 40, 50, 60, 70, 80을 읽고, 각각에서 3을 뺀 값을 출력한다.

  • 27 37 47 57 67: a[2]부터 읽은 경우로, ptr이 a + 2를 가리킬 때의 결과이다.
  • 47 57 67 77 87: a[4]부터 읽은 경우의 결과이다.
  • 43 53 63 73 83: 3을 빼지 않고 더한 결과이다.

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