更多“若有如下程序:main(){char a[3][5] = {"name","age","sex"},n;for(n=0;n<3;n++)printf("%s\n",a[ ”相关问题
  • 第1题:

    有以下程序:

    main

    { int i,n=0:

    for(i=2;i<5;i++)

    { do

    { if(i%3) continue:

    n++:

    }while(!i);

    n++:

    }

    printf("n=%d\n",n);

    }

    程序执行后输出结果是( )。

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    continue语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。

  • 第2题:

    有以下程序 main() { int i,n=0; for(i=2;i<5;i++) { do {if(i%3)continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后输出结果是

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断 while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。

  • 第3题:

    【单选题】有程序段如下: for(n=100;n<=200;n++) { if(n%3==0) continue; printf("%5d",n); } 与上面程序段等价的是________。

    A.for(n=100;(n%3)&&n<=200;n++) printf("%5d",n);

    B.for(n=100;(n%3)||n<=200;n++) printf("%5d",n);

    C.for(n=100;n<=200;n++) if(n%3!=0) printf("%5d",n);

    D.for(n=100;n<=200;n++) { if(n%3) printf("%5d",n); else continue; break; }


    最多输出100个非负整数

  • 第4题:

    若有如下程序: sub(int *t,int a[3][4]) { int m,n; for(m=0;m<3;m++) for(n=0;n<4;n++) { *t=a[m][n];t++;} } main() { int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}}; t=(int*)malloc(50); sub(t,s); printf("%d,%d\n",t[4],t[7]); } 则程序运行后的输出结果是( )。

    A.4,7

    B.4,0

    C.5,8

    D.程序错误


    正确答案:B
    解析:本题定义了一个sub()函数,其作用为将一个二维数组按行复制到t所指的连续内存空间内。主程序中首先使用malloc()函数为t申请了50个字节的内存空间,然后调用sub()函数,将二维数组s的内容复制到t申请的内存空间内,最后输出t的第5个元素(t[4])和第8个元素(t[7]),即为3行4列二维数组中的s[1][0]和s[1][3]。s[1][0]是初始化列表中第二个大括号中的第一个值4,而s[1][3]应该是初始化列表中第二个大括号中的第4个值,但没有这么多初始值,C语言在这种情况下会自动将该元素设置为0,即s[3][4]={{1,2,3},{4,5,6},{7,8,9}}等价于s[3][4]={{1,2,3,0},{4,5,6,0),{7,8,9,0}}。所以最后输出结果是4,0,应该选择B。

  • 第5题:

    若有如下程序: main() { int n; for(n=0;n<9;n++) { if(n<1) {printf("%d",n); continue;} if(n==4)break; printf("%d",n); } } 则循环体执行的次数是( )。

    A.1

    B.5

    C.9

    D.死循环


    正确答案:B
    解析:因为在循环中存在一条这样的语句“if(n=4)break;”,所以循环变量n递增到4的时候循环会被强行结束。故一共循环了5次,每次n的值分别为0、1、2、3、4。应该选择B。