← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 3회 · 프로그래밍 언어 활용 · C 포인터 · 71번
다음 C 포인터 프로그램의 출력은?
int a[] = {1, 3, 5, 7};
int *p = a;
p += 2;
*(p - 1) = *p + 2;
printf("%d", a[1] + a[2]);
- 1
8
오답 이유8은 a[1]을 갱신하지 않았거나 a[0]+a[3]처럼 다른 위치를 더한 값으로 코드와 맞지 않는다. - 2
10
오답 이유10은 `*p+2`를 a[2]+a[1]로 잘못 해석하는 등 대입 후 배열 상태를 반영하지 않은 값이다. - 3
12
정답 근거p=&a[2], p-1=&a[1]이고 a[1]=a[2]+2=7이므로 a[1]+a[2]=7+5=12여서 정답이다. - 4
14
오답 이유14는 a[3]=7까지 합산했다고 오인한 값으로 출력식은 a[1]+a[2]만 더한다.
정답·상세해설정답 3번
p는 a[2]를 가리킨다. `*(p-1)`인 a[1]에 `*p+2`, 즉 7을 대입하므로 a[1]+a[2]는 7+5=12다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-16