What will be the result of the following expression? "int a = 8, b = 6, c = 4, b++ * ++c + --a;"

5 phương ánCó giải thích

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: "37". Với a bằng 8, b bằng 6, c bằng 4, biểu thức b++ * ++c + --a chạy như sau: b++ dùng giá trị cũ 6 rồi mới tăng b lên 7; ++c tăng c thành 5 rồi dùng 5; --a giảm a thành 7 rồi dùng 7; phép nhân làm trước phép cộng nên kết quả là 6 nhân 5 cộng 7, tức 37. Cốt lõi là hậu tố trả về giá trị trước khi tăng, còn tiền tố trả về giá trị sau khi tăng. "16" không thể ra được vì riêng phép nhân đã ít nhất 6 nhân 4 là 24, cộng thêm số dương thì càng xa. "28" ứng với việc lấy b sau khi tăng là 7 nhân c trước khi tăng là 4 rồi bỏ hẳn hạng tử --a. "32" ứng với việc bỏ qua cả hai toán tử tăng, tính 6 nhân 4 cộng 8. "-28" đòi một hạng tử âm, mà cả ba biến đều dương nên không phép nào sinh ra dấu trừ.

Cùng phần 2

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