What does the following code print?

6 phương ánCó giải thích
Đề bài
float y = 3 / 2;
printf("%f", y);

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.000000". Phép 3 chia 2 có hai toán hạng đều là hằng nguyên, nên C thực hiện chia nguyên và cắt phần thập phân ngay tại đó, cho ra 1; kiểu của biến nhận kết quả không hề tham gia quyết định phép chia nào được dùng. Chỉ sau khi đã có 1, giá trị ấy mới được chuyển ngầm thành 1.0 khi gán cho y. Đặc tả số thực in sáu chữ số sau dấu thập phân theo mặc định, nên màn hình hiện 1.000000. Lựa chọn "1.500000" chỉ đúng nếu ít nhất một toán hạng là số thực, chẳng hạn viết 3.0 chia 2. Lựa chọn "1.0" sai về dạng in vì đặc tả này không rút ngắn phần thập phân. Lựa chọn "1.5" sai cả về giá trị lẫn dạng in. Lựa chọn "1" là dạng của đặc tả số nguyên chứ không phải số thực. Lựa chọn "Compiler error" sai vì gán một số nguyên cho biến float là chuyển kiểu hợp lệ.

Cùng phần 2

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