JavaScript is required

What is output? #include #include #define x 5+2 void main() { int i; i = x*x*x; printf("%d", i); getch(); }

A.

21

B.

27

C.

Complier Error

D.

Another

Trả lời:

Đáp án đúng: B


Đoạn mã C này sử dụng `#define` để tạo một macro `x` có giá trị `5+2`. Khi biên dịch, mọi nơi sử dụng `x` sẽ được thay thế bằng `5+2`. Do đó, biểu thức `i = x*x*x;` sẽ được thay thế thành `i = 5+2*5+2*5+2;`. Theo thứ tự ưu tiên của các toán tử, phép nhân được thực hiện trước phép cộng. Vì vậy, biểu thức được tính như sau: `i = 5 + (2*5) + (2*5) + 2` `i = 5 + 10 + 10 + 2` `i = 27` Vậy, giá trị của `i` sẽ là 27.

Câu hỏi liên quan