JavaScript is required

Giả sử a và b là hai số thực. Biểu thức nào dưới đây là không được phép theo cú pháp của ngôn ngữ lập trình C

A.

(a /=b)

B.

(a-=b)

C.

(a>>=b)

D.

(a*=b)

Trả lời:

Đáp án đúng: C


Trong ngôn ngữ lập trình C, các toán tử gán rút gọn (compound assignment operators) kết hợp một toán tử số học hoặc toán tử bitwise với phép gán. Các toán tử như `+=`, `-=`, `*=`, `/=`, và `%=` đều hợp lệ. Tuy nhiên, toán tử `>>=` là toán tử dịch phải bit (right bit shift assignment), và nó chỉ được phép sử dụng với các biến kiểu số nguyên (ví dụ: `int`, `char`, `long`). Trong trường hợp này, `a` và `b` được giả định là số thực (ví dụ: `float` hoặc `double`). Do đó, việc sử dụng `a >>= b` sẽ gây ra lỗi cú pháp vì không thể dịch bit một số thực. Các lựa chọn A, B, và D đều là các phép gán hợp lệ cho số thực. Vậy, đáp án C là đáp án không được phép.

Câu hỏi liên quan