JavaScript is required

What is output? #include #include #define A 0 #define B 1 int main() { int i = 3; switch (i & 1) { case A: printf("FALSE"); break; case B: printf("TRUE"); break; default: printf("Default"); } getch(); }

A.

FALSE

B.

TRUE

C.

Default

Trả lời:

Đáp án đúng: B


Đoạn code sử dụng toán tử `&` (AND bitwise) để kiểm tra tính chẵn lẻ của biến `i`. Biến `i` được khởi tạo bằng 3. Biểu thức `i & 1` sẽ thực hiện phép AND bitwise giữa `i` (3 trong hệ nhị phân là 011) và 1 (trong hệ nhị phân là 001). 011 & 001 = 001 (kết quả là 1). Vì vậy, `switch (i & 1)` tương đương với `switch (1)`. `case B:` sẽ được thực thi vì `B` được định nghĩa là 1. Do đó, chương trình sẽ in ra "TRUE".

Câu hỏi liên quan