问题
填空题
以下程序的输出结果是 【19】 。#include <stdio.h>#define M 5#define N M+Mmain0{ int k; k = N’N*5; printf("%d\n",k);}
答案
参考答案: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。