Trả lời:
Đáp án đúng: D
Trong ngôn ngữ lập trình (ví dụ: C, C++, Java), khi khai báo biến với kiểu dữ liệu `int`, biến đó chỉ có thể lưu trữ các giá trị số nguyên. Trong khi đó, biến kiểu `float` có thể lưu trữ các giá trị số thực (bao gồm cả phần nguyên và phần thập phân).
* **A. n = 5;** `n` là biến kiểu `int`, 5 là một số nguyên. Câu lệnh này hoàn toàn hợp lệ.
* **B. x = 10;** `x` là biến kiểu `float`, 10 là một số nguyên (có thể hiểu là 10.0). Câu lệnh này hợp lệ vì một số nguyên có thể được gán cho một biến kiểu số thực.
* **C. y = 12.5;** `y` là biến kiểu `float`, 12.5 là một số thực. Câu lệnh này hoàn toàn hợp lệ.
* **D. m = 2.5;** `m` là biến kiểu `int`, 2.5 là một số thực. Câu lệnh này không hợp lệ vì bạn đang cố gắng gán một giá trị số thực cho một biến số nguyên. Phần thập phân của 2.5 sẽ bị mất (hoặc gây ra lỗi biên dịch tùy vào ngôn ngữ).





