Trả lời:
Đáp án đúng: B
Đề bài yêu cầu xác định kết quả in ra màn hình của đoạn code C++.
Đoạn code khai báo một biến tĩnh `x` trong hàm `foo`. Biến tĩnh chỉ được khởi tạo một lần duy nhất trong suốt quá trình chạy chương trình. Do đó, trong lần gọi đầu tiên, `x` được khởi tạo là 5. Sau đó, `x` tăng lên 1 đơn vị thành 6 và giá trị này được trả về.
Trong hàm `main`, `foo()` được gọi hai lần. Lần gọi đầu tiên trả về 6, và `a` nhận giá trị 6. Lần gọi thứ hai, `x` không khởi tạo lại mà giữ giá trị 6 từ lần gọi trước, sau đó tăng lên 1 thành 7 và trả về. `b` nhận giá trị 7. Cuối cùng, `a` và `b` được in ra. Giá trị của `a` là 6 và `b` là 7. Tuy nhiên, không có đáp án nào trùng với kết quả này.
Nếu đề bài yêu cầu in ra `x` trong hàm `foo` thay vì trả về thì đáp án là A. 5, 5. Khi đó, `x` vẫn tăng lên thành 6 nhưng giá trị trả về và gán cho `a` và `b` là giá trị khởi tạo ban đầu.
Vì không có đáp án nào chính xác với phân tích ban đầu và giả sử in `x` sẽ cho ra đáp án A, nên ta chọn A, kèm theo giải thích về sự không chắc chắn này.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
