Cho đoạn chương trình sau, kết quả trả về sẽ là:
#include
int main() {
double num = 5.2;
int
var = 5;
printf("%d\t", sizeof(!num));
printf("%d\t", sizeof(var = 15 / 2));
printf("%d",
var);
return 0;
}
#include
int main() {
double num = 5.2;
int
var = 5;
printf("%d\t", sizeof(!num));
printf("%d\t", sizeof(var = 15 / 2));
printf("%d",
var);
return 0;
}
Trả lời:
Đáp án đúng: A
Đoạn chương trình C này liên quan đến toán tử `sizeof` và các kiểu dữ liệu. Chúng ta cần phân tích từng dòng `printf` để xác định kết quả.
* `sizeof(!num)`: Toán tử `!` là toán tử NOT logic. Trong C, bất kỳ giá trị số khác 0 nào đều được coi là true. Vì vậy, `!num` sẽ trả về 0 (false). Toán tử `sizeof` trả về kích thước của kiểu dữ liệu của biểu thức. Trong trường hợp này, kiểu dữ liệu của `!num` là `int` (vì kết quả của toán tử logic là 0 hoặc 1, được biểu diễn bằng kiểu `int`). Kích thước của `int` thường là 4 byte trên nhiều hệ thống. Tuy nhiên, `!num` có kiểu dữ liệu là `int`, kích thước kiểu dữ liệu `bool` là 1 byte.
* `sizeof(var = 15 / 2)`: Ở đây, `var = 15 / 2` là một phép gán. `15 / 2` là phép chia số nguyên, kết quả là `7`. Giá trị `7` được gán cho `var`. Tuy nhiên, toán tử `sizeof` không quan tâm đến giá trị được gán, mà chỉ quan tâm đến kiểu dữ liệu của biểu thức `var = 15 / 2`. Kiểu dữ liệu của `var` là `int`. Vì vậy, `sizeof(var = 15 / 2)` sẽ trả về kích thước của `int`, là 4 byte.
* `var`: Giá trị của `var` sau phép gán `var = 15 / 2` là `7`.
Vậy, kết quả in ra sẽ là `1 4 7`.
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
