Thứ tự nào sau đây là thứ tự đánh giá đúng cho biểu thức bên dưới? z = x + y * z / 4 % 2 – 1;
Trả lời:
Đáp án đúng: A
Trong biểu thức `z = x + y * z / 4 % 2 – 1;`, thứ tự ưu tiên của các toán tử trong C (và nhiều ngôn ngữ lập trình khác) là:
1. `*`, `/`, `%`: Nhân, chia, và chia lấy dư. Các toán tử này có cùng độ ưu tiên và được thực hiện từ trái sang phải.
2. `+`, `–`: Cộng và trừ. Các toán tử này cũng có cùng độ ưu tiên và được thực hiện từ trái sang phải.
3. `=`: Gán. Toán tử gán có độ ưu tiên thấp nhất và được thực hiện cuối cùng.
Dựa trên thứ tự này, biểu thức được đánh giá như sau:
1. `y * z`
2. `(y * z) / 4`
3. `((y * z) / 4) % 2`
4. `x + ((y * z) / 4) % 2`
5. `(x + ((y * z) / 4) % 2) – 1`
6. `z = (x + ((y * z) / 4) % 2) – 1`
Vậy thứ tự đúng của các toán tử là `* / % + – =`.