(Choose 1 answer) What will the code bellow print when executed?

4 phương ánCó giải thích
Đề bài
double a = -7.5, b = 7.5;
printf( "%.0f : %.0f\n", ceil( a ), ceil( b ) );
printf( "%.0f : %.0f\n", floor( a ), floor( b ) );

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: "-7 : 8 -8 : 7". Hàm ceil làm tròn lên, lấy số nguyên nhỏ nhất không nhỏ hơn đối số: với -7.5 là -7 vì trên trục số -7 nằm bên phải -7.5, với 7.5 là 8. Hàm floor làm tròn xuống, lấy số nguyên lớn nhất không lớn hơn đối số: với -7.5 là -8, với 7.5 là 7. Vì vậy dòng đầu in -7 : 8 rồi dòng sau in -8 : 7; định dạng %.0f chỉ bỏ phần thập phân khi hiển thị, mà các giá trị đã nguyên nên không làm tròn thêm lần nào. "-7 : 7 -8 : 8" sai ở cột số dương vì ceil của 7.5 phải là 8. "-8 : 7 -8 : 7" lặp kết quả của floor cho cả hai dòng, tức coi ceil cũng làm tròn xuống. "-8 : 7 -7 : 8" đảo vai hai hàm, gán kết quả floor cho dòng gọi ceil và ngược lại.

Cùng phần 6

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