What is the output of the following code?

4 phương ánCó giải thích
Đề bài
int a = 10, b = 20;
printf("%d", (a > 5 && b < 25));

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "1". Phép và luận lý trong C trả về một giá trị int: 1 khi cả hai vế đúng, 0 khi có vế sai. Ở đây a bằng 10 nên a lớn hơn 5 là đúng, b bằng 20 nên b nhỏ hơn 25 cũng đúng, vì vậy cả biểu thức cho 1 và đặc tả số nguyên in ra 1. Cần nhớ C không có kiểu luận lý riêng: mọi phép so sánh đều cho ra số nguyên 0 hoặc 1, và ngược lại mọi giá trị khác 0 đều được coi là đúng khi xét điều kiện. Lựa chọn "0" chỉ xuất hiện khi ít nhất một vế sai, chẳng hạn nếu b bằng 30. Lựa chọn "10" là giá trị của a, nhưng phép và luận lý không trả lại toán hạng như một số ngôn ngữ khác, nó chuẩn hoá kết quả về 0 hoặc 1. Lựa chọn "20" tương tự là giá trị của b, cũng không phải kết quả của một phép so sánh.

Cùng phần 2

Xuất hiện trong 1 bộ đề