What is the value of variable b after running the program?
4 phương ánCó giải thích
#include <stdio.h>
int main()
{
int x = 5, y = 3, z = 1;
x = x % 3 + z++;
z = x * y--;
printf("%d %d %d", x, y, z);
return 0;
}Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "3 2 9". Đề hỏi biến b nhưng chương trình không có biến nào tên b, nên chỉ có thể trả lời theo đúng thứ printf in ra. Dòng x = x % 3 + z++ tính 5 % 3 bằng 2, còn z++ là tăng sau nên nó đưa vào biểu thức giá trị cũ 1 rồi mới nâng z lên 2; vậy x thành 3. Dòng z = x * y-- lấy x bằng 3 nhân với giá trị cũ của y là 3, cho 9, sau đó y giảm còn 2. Lúc printf chạy, x bằng 3, y bằng 2, z bằng 9. Dãy "5 3 1" là bộ giá trị khởi tạo ban đầu, tức bỏ qua cả hai phép gán. Dãy "2 2 5" ứng với việc tính x chỉ bằng 5 % 3 mà bỏ quên phần cộng z++, nên cả ba số sau đó đều lệch. Kết luận "Compiler error" sai vì mã hợp lệ: phép lấy dư, tăng sau và giảm sau đều áp đúng trên biến int.
Cùng phần 2
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây