What is the output?

4 phương ánCó giải thích
Đề bài
int a = 8;
int b = 3;
int result = a % b * 2;
printf("%d", result);

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: "4". Phép lấy dư và phép nhân cùng mức ưu tiên nên biểu thức a % b * 2 được tính từ trái sang phải: 8 % 3 cho 2 vì 8 chia 3 được 2 dư 2, rồi 2 nhân 2 cho 4, nên chương trình in 4. Thứ tự này là bản chất của ngôn ngữ, không phải quy ước toán học quen tay. "2" là giá trị của riêng 8 % 3, tức bỏ mất phép nhân 2 phía sau. "1" ứng với việc chia kết quả cho 2 bằng phép chia nguyên thay vì nhân, hoặc hiểu sai phần dư của 8 cho 3. "5" ứng với việc coi dấu phần trăm là phép trừ, lấy 8 trừ 3; trong C dấu đó chỉ có nghĩa lấy phần dư của phép chia nguyên và chỉ dùng được với toán hạng nguyên.

Cùng phần 2

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