有如下程序#define N2#define MN+1#define NUM2*M+1main(){ int i; for(i = 1; i <= NUM; i++

题目

有如下程序#define N 2#define M N+1#define NUM 2*M+1main(){ int i; for(i = 1; i <= NUM; i++) printf("%d\n",i);}该程序中for循环执行的次数是A.5 B.6 C.7 D.8

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

7、有同学实现了约分算法,可以对num1和num2组成的分数进行约分,代码为:minValue = min(num1, num2) for i in range(2, minValue + 1): if num1 % i == 0 and num2 % i == 0: num1 = num1 // i num2 = num2 // i 下面的说法中,正确 的有:

A.当num1正好可以被num2整除时,上述代码运行正确#B.当num1和num2都为素数时,上述代码运行正确#C.当num1和num2都可以被4整除时,上述代码运行不正确#D.minValue + 1 有误,应该为 minValue#E.if num1 % i == 0 and num2 % i == 0 有误,应该为: while num1 % i == 0 or num2 % i == 0
D

第2题:

有如下程序: #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


正确答案:B
解析:该题关键要注意在不带参数的宏中对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上括号,使NUM变为2*(N+1)+1,这就是宏名和变量名之间的区别),再将N代进去,得到NUM的值为6。

第3题:

有如下程序: #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


正确答案:B
解析:在C语言中,宏定义在编译时将被直接替换,所以NUM最后会被替换成2*N+1+1,即2*2+1+1,值为6。因此,for循环执行的次数为6。

第4题:

有如下程序: #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


正确答案:B
解析:在C语言中,宏定义在编译时将被直接替换,所以NUM最后会被替换成2*N+1+1,即2*2+1+1,值为6。因此,for循环执行的次数为6。

第5题:

以下程序中的for循环执行的次数是______。 #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); }

A.5

B.6

C.7

D.8


正确答案:B
解析:宏替换是先替换再运算返回结果,因此N的值为2,M的值为3,NUM的值=2*M+1=2*N+1+1=6,而不是:2*M+1=2*(N+1)+1=7。因此该循环只执行6次。

第6题:

有如下程序 #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


正确答案:B

第7题:

有如下程序: #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


正确答案:B
解析:在C语言中,宏定义在编译时将被直接替换,所以NUM最后会被替换成2*N+1+1,即2*2+1+1,值为6。因此,for循环执行的次数为6。

第8题:

有如下程序: #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。

第9题:

有如下程序:

#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


正确答案:B