问题 单项选择题

有如下程序:
#define N2
#define MN+1
#define NUM2*M+1
main()
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
该程序中的for循环执行的次数是

A.5

B.6

C.7

D.8

答案

参考答案:B

解析: 该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+ 1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。

选择题
单项选择题