问题 单项选择题

编译并执行下面一段C语言后,其结果为()。

# define XXX (a,b) a##b

int test_func1 (int i)

return i*10;

int test_func2 (int i)

return i*100;

int main(int argc, char **argv)

printf("%d.\n", XXX (test_func, 1)(100));

 

A. 编译出错

B.100

C.1000

D.10000

答案

参考答案:C

解析:

本题考查C语言的基础知识。

“#define XXX(a,b)a##b”宏定义的含义是字符串连接。在本题中,main()中XXX(test_func,1)(100)在编译时会被替换成func1(100),编译时不会出错,调用该函数之后,其返回值为100*10=1000。

名词解释
单项选择题 B型题