更多“有如下程序:#define N2#define MN+1#define NUM2*M+1main(){int i; for(i=1;i<=NUM;i++)printf(" ”相关问题
  • 第1题:

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

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

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

  • 第4题:

    以下程序中的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次。

  • 第5题:

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