다음 C언어 코드의 출력값을 작성하시오.
#include <stdio.h>
int main() {
int v1 = 0, v2 = 35, v3 = 29;
if (v1 > v2 ? v2 : v1) {
v2 = v2 << 2;
} else {
v3 = v3 << 2;
}
printf("%d", v2+v3);
}
조건 ? 참일 때 : 거짓일 때의 의미 확인<<의 의미 확인 (왼쪽 시프트 = 2의 제곱 곱)v1 > v2 ? v2 : v1
v1 = 0, v2 = 350 > 35 → 거짓 → 결과는 v1 = 0즉, if(0) → 조건식이 0이므로 false.
v3 = v3 << 2;
v3 = 2929 << 2 = 29 * 2^2 = 29 * 4 = 116v3 = 116printf("%d", v2+v3);
v3 = 2929 << 2 = 29 * 2^2 = 29 * 4 = 116v3 = 116151
이 문제에서 꼭 알아야 할 개념:
조건 ? 참일 때 : 거짓일 때if(0)은 거짓 → else 실행n << k = n * 2^k151