아래 C 프로그램의 실행 결과는?#include <stdio.h&… | [9급 지방직 컴퓨터일반] 09년 1회차 기출문제 상세 페이지
1[9급 지방직 컴퓨터일반] 09년 1회차
아래 C 프로그램의 실행 결과는?#include <stdio.h>
void main()
{
int a, b;
a = 4 * (1 / 2);
b = a++;
printf("%d", b);
}
1
0
2
1
3
2
4
3
해설
1 / 2 가 정수 나눗셈이라 a에 0이 저장되고, 후위 증가 b = a++ 는 증가 전 값을 b에 대입하므로 출력은 0이다.
int끼리의 나눗셈은 소수부를 버리므로 1 / 2 = 0, a = 4 * 0 = 0이다.
후위 증가 연산자는 현재 값을 먼저 사용한 뒤 증가시키므로 b에는 0이 들어가고, a만 1이 된다.
- 1: 대입 후 증가된 a의 값으로, 전위 증가(++a)였다면 b가 가질 값이다.
- 2: 1 / 2 를 실수 0.5로 계산해 a = 2 로 본 경우의 값이다.
- 3: 실수 나눗셈에 전위 증가까지 적용했을 때의 값이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.