What is the output?
4 phương ánCó giải thích
int x = 0, y = 5;
printf("%d", (x && y));Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "0". Phép và luận lý trong C cho ra kết quả thuộc kiểu int và chỉ nhận một trong hai giá trị 0 hoặc 1, nó không trả lại chính toán hạng. Thêm nữa nó tính tắt: thấy toán hạng bên trái bằng 0, nghĩa là sai, thì cả biểu thức đã chắc chắn sai nên y không cần đọc tới. Vì vậy đặc tả %d in ra 0. Ý "1" sai vì 1 chỉ xuất hiện khi cả hai toán hạng đều khác 0. Ý "5" sai vì nó tưởng phép và trả về giá trị của toán hạng cuối, đó là cách làm của một số ngôn ngữ khác chứ không phải của C. Ý "-1" sai vì chuẩn quy định kết quả của các phép luận lý chỉ là 0 hoặc 1, không bao giờ là số âm.
Cùng phần 2
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây