문제
다음 C언어 프로그램이 실행되었을 때, 실행 결과는?
① 0 ② 1 ③ 2 ④ 3
정답
2번
해설
정답: 2. n1=1, n2=2, n3=3일 때 r1 = (2<=2 참) || (3>3 거짓) = 1, r2 = !3 = 0(3은 참이므로 부정하면 0), r3 = (1>1 거짓) && (2<3 참) = 0이다. 따라서 r3 - r2 + r1 = 0 - 0 + 1 = 1이 출력된다.
오답 풀이
- 1번: 계산 결과는 0이 아니라 1이다.
- 2번: 0 - 0 + 1 = 1이므로 정답이다.
- 3번: r2와 r3가 모두 0이라 2가 될 수 없다.
- 4번: r1만 1이고 나머지는 0이므로 3이 될 수 없다.
보충 개념 C에서 논리 연산(||, &&, !)의 결과는 참이면 1, 거짓이면 0이다. !n3은 n3가 0이 아니므로 0이 된다.