填空题
以下程序的输出结果是{{U}} 【19】 {{/U}}。
#include <stdio.h>
#define M 5
#define N M+M
main0
{ int k;
k = N'N*5; printf("%d/n",k);
}
【正确答案】
1、55
【答案解析】[解析] 本题考查的知识点是:宏替换。宏替换不是函数调用,所以不能因为M被定义为5,而N被定义为M+M而武断地认为N的值就是5+5=10。宏替换就是简单的字符串替换,以本题为例;因为N被定义为M+M,所以k=N*N*5;语句展开后为 k=M+M*M+M*5;。又因为M被定义为5,所以再展开后为K=5+5*5+5*5;。现在不难计算出,这个表达式的结果为k=55。故最终输出结果是55。