若有以下程序段,w和k都是整型变量: ┇ w=k: LB:if(w==0)go to LE; W--: printf("*") goto LB; LE; ┇ 则不能与上面程序段等价的循环语句是( )。A.for(w=k;w!=0;w--)printf("*");B.for(w=k;w;--w)printf("*");C.w=k; while(w--!=0)printf("*");D.w=k: w++;do{w--;printf("*");}while(w!=0);

题目

若有以下程序段,w和k都是整型变量: ┇ w=k: LB:if(w==0)go to LE; W--: printf("*") goto LB; LE; ┇ 则不能与上面程序段等价的循环语句是( )。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k; while(w--!=0)printf("*");

D.w=k: w++;do{w--;printf("*");}while(w!=0);


相似考题
更多“若有以下程序段,w和k都是整型变量: ┇ w=k: LB:if(w==0)go to LE; W--: printf("*") goto LB; LE ”相关问题
  • 第1题:

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。 A.a<>b+cS

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。

    A.a<>b+c

    B.ch=getchar

    C.a= =b+C

    D.a++


    正确答案:A
    符号<>不是C语言中的运算符,所以不能替代。

  • 第2题:

    以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

    以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B
    解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

  • 第3题:

    若有表达式(w)?(--x):(y),则其中与w 等价的表达式是()。

    A.w==l

    B.w==0

    C.w!=l

    D.w!=0


    D D。【解析】本题考查三目运算等。条件表达式的格式为a?b;c。它的含义是,当a为真时,取b的值,否则取c的值。在C语言程序中“为真”即“不等于零”,“为假”即等于0。所以和w等价的表达式是w非零。

  • 第4题:

    .若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是( )

    W= k;

    LB: if(w==0) gotO LE;

    w - -;

    printf("*");

    goto LB;

    LE:

    A. for(w=k;w!=0;W--)printf("*");

    B.w= k; While(W--!=0) Prinif(”* ”);

    C.w= k; do{w--; prinif(“*”); } while( W!= 0);

    D.for(w=k;W;--W) printf("*");


    正确答案:C
    问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符*。上述循环控制过程用for循环可描述如下:</P>
    for=(w=k;W!=0;W--)printh("*");
    或写成:
    for(w=k;w;--w)printf("*");
    若用while语句,可描述如下:
    W=k;
    while(w--!=0)printf("*");
    w++;/*在w等于0时,也执行了一次w--,这里是对w最后减1的补尝*/
    或更直观地写成:
    W=k;
    while(w!=0){w--;Printf("*");}
    若用do-while语句,可描述如下:
    W=k;
    if(W)
    do{
    w--;prinif("*");
    }while(w);
    若写成:
    W=k;
    do{
    W--;printf("*");
    }while(w!=0);
    是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*。所以解答应是C。

  • 第5题:

    7、执行以下程序段后,w 的值为 。 int x='F', k=21, y=32; w=((k || y)&&(x<'a'));

    A.0

    B.-1

    C.NULL

    D.1


    C)