다음 C 프로그램의 출력 값은?#include <stdio.h&g… | [9급 지방직 컴퓨터일반] 10년 1회차 기출문제 상세 페이지
1[9급 지방직 컴퓨터일반] 10년 1회차
다음 C 프로그램의 출력 값은?#include <stdio.h>
void main()
{
int A = 10, B;
int *C = &B;
B = A--;
B += 20;
printf("%d", *C);
}
1
28
2
29
3
30
4
31
해설
포인터 C가 B를 가리키므로 *C는 B의 값이며, 최종 B는 30이 출력된다.
B = A--는 후위 감소이므로 A의 현재 값 10을 먼저 B에 대입한 뒤 A를 9로 줄인다. 이어서 B += 20으로 B는 30이 되고, *C는 B를 역참조하므로 30이다.
- 28: B에 20을 더한 뒤 값을 줄이는 연산이 코드에 없으므로 나올 수 없다.
- 29: 감소된 A 값 9에 20을 더한 경우로, 후위 감소를 전위 감소처럼 처리한 값이다.
- 31: B에 1을 더하는 연산이 없으므로 나올 수 없다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.