有如下程序: #define N 2 #define M N+1 #define NUM 2*M+1 main() { int i; for(i=1; i<=NUM;i++)printf("%d\n",i);

admin2009-01-15  25

问题 有如下程序:    #define N 2    #define M N+1    #define NUM 2*M+1    main()    {  int i;       for(i=1; i<=NUM;i++)printf("%d\n",i);    }    该程序中的for循环执行的次数是(    )。

选项 A、5
B、6
C、7
D、8

答案2

解析 该题关键要注意在不带参数的宏中对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上括号,使NUM变为 2*(N+1)+1,这就是宏名和变量名之间的区别),再将N代进去,得到NUM的值为6。
转载请注明原文地址:https://kaotiyun.com/show/EHXp777K
0

最新回复(0)