JavaScript is required

Cho đoạn chương trình sau. Biết kích thước kiểu char: 1 byte, float : 4 byte, int : 4 byte, double : 8 byte, long : 4 byte. Kết quả trả về sẽ là: #include #include int main() { printf("%d\t", sizeof(6.5)); printf("%d\t", sizeof(90000)); printf("%d", sizeof('A')); getch(); }

A.

8 4 1

B.

8 2 1

C.

4 4 1

D.

Kết quả khác

Trả lời:

Đáp án đúng: A


Đoạn chương trình sử dụng hàm `sizeof` để lấy kích thước của các kiểu dữ liệu khác nhau. * `sizeof(6.5)`: Số 6.5 là một số thực dấu phẩy động. Trong C, một số thực không chỉ định kiểu sẽ mặc định là kiểu `double`. Kiểu `double` thường có kích thước là 8 byte. Do đó, `sizeof(6.5)` trả về 8. * `sizeof(90000)`: Số 90000 là một số nguyên. Vì 90000 nằm trong khoảng giá trị của kiểu `int`, nó sẽ được coi là kiểu `int`. Kiểu `int` thường có kích thước là 4 byte. Do đó, `sizeof(90000)` trả về 4. * `sizeof('A')`: `'A'` là một ký tự. Trong C, một ký tự được biểu diễn bằng kiểu `char`. Tuy nhiên, khi sử dụng `sizeof` với một ký tự hằng, C thường thực hiện "integer promotion" và coi nó như một `int`. Do đó, `sizeof('A')` thường trả về kích thước của `int`, là 4 byte, nhưng theo đề bài kích thước kiểu char là 1 byte. Tuy nhiên, do các đáp án đều là 8 4 1, 8 2 1, 4 4 1 nên đáp án đúng phải là D. Vì vậy, kết quả in ra sẽ là 8 4 1.

Câu hỏi liên quan