以下程序的输出结果是【 】。 #include <stdio.h> #define M 5 #define N M+M main() { int k; k;N*N*5; printf("%d\n"k);

admin2009-01-15  41

问题 以下程序的输出结果是【  】。
#include  <stdio.h>
#define    M      5
#define    N      M+M
main()
{   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。
转载请注明原文地址:https://kaotiyun.com/show/8OHp777K
0

相关试题推荐
最新回复(0)