若有以下程序段,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 ”相关问题
  • 第1题:

    若有以下程序段,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);


    正确答案:C
    当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择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)