以下程序的输出结果是【 】。 #include <stdio.h> #define M 5 #define N M+M main0 { int k;

admin2009-06-20  24

问题 以下程序的输出结果是【 】。
#include   <stdio.h>
        #define    M    5
        #define    N    M+M
        main0
        {   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/26Wp777K
0

最新回复(0)