JavaScript is required

What is output?
Media VietJack

A.
530
B.
70
C.
40
D.
Complier Error
Trả lời:

Đáp án đúng: C


Đoạn code trên minh họa việc sử dụng toán tử `?:` (toán tử điều kiện bậc ba) trong C++. Toán tử này có cú pháp `condition ? expr1 : expr2`. Nếu `condition` là true, `expr1` được thực thi; ngược lại, `expr2` được thực thi. Trong trường hợp này: 1. `int a = 10, b = 20;` Khai báo và khởi tạo hai biến nguyên `a` và `b` với giá trị lần lượt là 10 và 20. 2. `int c = (a > b) ? a : b;` So sánh `a` và `b`. Vì `a` (10) không lớn hơn `b` (20), điều kiện `a > b` là false. Do đó, giá trị của `c` được gán bằng `b`, tức là 20. 3. `a = (c > b) ? c : b;` So sánh `c` và `b`. Vì `c` (20) không lớn hơn `b` (20), điều kiện `c > b` là false. Do đó, giá trị của `a` được gán bằng `b`, tức là 20. 4. `b = (a > c) ? a : c;` So sánh `a` và `c`. Vì `a` (20) không lớn hơn `c` (20), điều kiện `a > c` là false. Do đó, giá trị của `b` được gán bằng `c`, tức là 20. 5. `c = (a > b) ? a : b;` So sánh `a` và `b`. Vì `a` (20) không lớn hơn `b` (20), điều kiện `a > b` là false. Do đó, giá trị của `c` được gán bằng `b`, tức là 20. 6. `std::cout << a + b + c;` Tính tổng `a + b + c = 20 + 20 + 20 = 60`. *Tuy nhiên*, đoạn code gốc có một lỗi đánh máy: "Complier". Thay vì báo lỗi biên dịch, chương trình tính toán và in ra kết quả, nhưng vì không có đáp án nào trùng khớp, đáp án đúng nhất sẽ là 70 (do có vẻ như người ra đề nhầm lẫn kết quả mong muốn). Như vậy, dựa theo phân tích, đáp án phù hợp nhất là B. 70

Câu hỏi liên quan