← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 1회 · 프로그래밍 언어 활용 · C 포인터와 배열 · 69번
다음 C 프로그램의 출력값은?
int a[] = {2, 4, 6, 8};
int *p = a + 1;
*(p + 1) -= *(p - 1);
printf("%d", *p + *(p + 1));
- 1
6
오답 이유6은 배열 갱신 뒤의 a[2]만 보거나 포인터 위치를 한 칸 잘못 잡은 값이다. - 2
8
정답 근거a[2]를 4로 갱신한 뒤 a[1]=4와 더하므로 8이 맞다. - 3
10
오답 이유10은 대입 전 a[1]+a[2]를 계산한 값으로, 복합 대입 결과를 반영하지 않았다. - 4
12
오답 이유12는 p를 a[2]로 잘못 보거나 a[3]을 더한 경우이며 실제 출력 대상과 다르다.
정답·상세해설정답 2번
p는 a[1]을 가리킨다. `*(p+1)`은 a[2]이고 `*(p-1)`은 a[0]이므로 a[2]는 6-2=4로 바뀐다. 출력은 a[1]+a[2]=4+4=8이다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-22