问题 填空题

以下程序的输出结果是 【18】
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));

答案

参考答案:P

解析:带参数宏定义首先将程序中宏替换掉,先把“MCRA(i)”替换成“2*i”,然后把“MCRA(j,2,*i)”替换成“2*2*j+2*i”,经计算该表达式的值为16,所以最后输出为16。

名词解释

单项选择题