JavaScript is required

Chương trình sẽ cho kết quả gì? #include #include void main() { float n = 0.7; if(n < 0.7) printf("LaptrinhC++"); else printf("abc"); getch(); }

Câu nào trong số này

A.

Lập trìnhC++

B.

abc

C.

Lỗi biên dịch

D.

Không có

Trả lời:

Đáp án đúng: A


Trong C++, so sánh trực tiếp số thực (float, double) với một giá trị cụ thể (như 0.7 trong trường hợp này) có thể không chính xác do cách biểu diễn số thực trong máy tính. Số thực được biểu diễn dưới dạng số dấu phẩy động, và việc chuyển đổi giữa hệ thập phân và hệ nhị phân có thể gây ra sai số nhỏ. Do đó, n có thể không chính xác bằng 0.7, mặc dù khi in ra màn hình nó có thể hiển thị là 0.7. Trong trường hợp này, n được khởi tạo là 0.7. Câu lệnh `if(n < 0.7)` sẽ kiểm tra xem n có nhỏ hơn 0.7 hay không. Do sai số làm tròn, n có thể nhỏ hơn 0.7, hoặc bằng 0.7, hoặc lớn hơn một chút so với 0.7. Tuy nhiên, trong hầu hết các trường hợp, sai số làm tròn sẽ khiến `n` có giá trị *lớn hơn hoặc bằng* 0.7. Vì vậy, điều kiện `n < 0.7` thường là sai, và phần `else` sẽ được thực thi. Do đó, chương trình sẽ in ra "abc".

Câu hỏi liên quan