JavaScript is required

What is output? #include #include #define call(x,y) x##y void main() { int x = 5, y = 10, xy = 20; printf("%d", xy + call(x, y)); getch(); }

A.

530

B.

70

C.

40

D.

Complier Error

Trả lời:

Đáp án đúng: C


Đề bài cho một đoạn mã C với sử dụng macro `#define`. Macro `call(x, y)` được định nghĩa là `x##y`, đây là phép nối chuỗi (token pasting) trong C. Khi `call(x, y)` được sử dụng, nó sẽ nối giá trị của `x` và `y` lại với nhau. Trong trường hợp này, `x = 5` và `y = 10`, do đó `call(x, y)` trở thành `510`. Biểu thức `xy + call(x, y)` sẽ là `20 + 510`, kết quả là `530`.

Câu hỏi liên quan