Anh (Chị) hãy cho biết, trong các khai báo dưới đây, lệnh nào khai báo số nguyên có dấu?
Trả lời:
Đáp án đúng: B
Câu hỏi yêu cầu xác định cách khai báo biến số nguyên có dấu trong C/C++.
* **A. `unsigned short number;`**: `unsigned` có nghĩa là không dấu, vậy khai báo này tạo ra một số nguyên kiểu `short` *không có dấu*.
* **B. `short number;`**: Khi chỉ khai báo `short`, mặc định trình biên dịch sẽ hiểu là `signed short`, tức là số nguyên kiểu `short` *có dấu*.
* **C. `unsigned long;`**: Tương tự như trên, `unsigned` nghĩa là không dấu, vậy khai báo này tạo ra một số nguyên kiểu `long` *không có dấu*.
* **D. `signed byte number`**: Trong C/C++ không có kiểu `byte` chuẩn. Tuy nhiên, một số trình biên dịch có thể cung cấp kiểu `byte` hoặc tương đương (ví dụ `uint8_t` từ ``). Nếu xem như `byte` là một kiểu có sẵn thì `signed byte` sẽ tạo ra một số nguyên kiểu `byte` *có dấu*. Tuy nhiên, vì kiểu `byte` không chuẩn và cách khai báo không phổ biến nên phương án B vẫn là lựa chọn tốt nhất.
Vậy, đáp án B là chính xác nhất.