计算机二级

若有以下程序段,w和k都是整型变量: 则不能与上面程序段等价的循环语句是( )。A.B.C.D.A.ASXB若有以下程序段,w和k都是整型变量:则不能与上面程序段等价的循环语句是( )。A.B.C.D.A.AB.BC.CD.D

题目
若有以下程序段,w和k都是整型变量: 则不能与上面程序段等价的循环语句是( )。A.B.C.D.A.ASXB

若有以下程序段,w和k都是整型变量:

则不能与上面程序段等价的循环语句是( )。A.

B.

C.

D.

A.A

B.B

C.C

D.D

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

第1题:

16、若有以下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是()。

A.s=a+b;

B.s=a+c;

C.s=s+c;

D.s=b+c;


A

第2题:

若有以下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是()。

A.s=b+c;

B.s=a+c;

C.s=a+b;

D.s=s+c;


s=a+c;

第3题:

若有以下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是()。

A.s=a+b;

B.s=a+c;

C.s=s+c;

D.s=b+c;


s=a+c;

第4题:

若有以下程序段,sum和i都是整型变量,则不能与下面程序段等价的选项是() sum=0; i=2; while(i<=10) { sum=sum+i; i++; }

A.for(i=2, sum=0; i<=10; i++) sum+=i;

B.sum=0; i=2; do{ sum=sum+i; i++; }while(i<=10);

C.sum=0; i=10; while(i>1) { sum=sum+i; i--; }

D.sum=0; i=11; do{ sum=sum+i; i--; }while(i>1);


sum=0; i=11; do{ sum=sum+i; i--; }while(i>1);

第5题:

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

第6题:

对于以下程序段,设a和q都是整型变量, ┇ a=q; Loop:if(a==0)goto End; Else if(a>0){printf("&");a--;goto Loop;} Else goto End; End; ┇ 不能与上面程序等价的是( )

A.a=q; do { f(a<0)break; a--;printf("*"); }while(a) ;

B.a=q; for(;a>0;a--)printf("&");

C.a=q; while(a) {printf("&");a--;}

D.for(a=q;a>0;--a,printf("*"));


正确答案:C

第7题:

若有以下程序段,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选项。

第8题:

若有以下程序段,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选项。

第9题:

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


正确答案:C
    本题主要考查几种循环结构的比较。在题目中,给出了一段程序,程序首先对整型变量w赋值;然后定义了一段程序LB,在该段程序中,首先判断变量w是否为零,如果是,则用GOTO语句跳出该段程序至LE,如果不为零,则w自减并输出*,然后用GOTO语句跳到该程序段开始的地方执行。该段程序其实相当于一个循环,循环的结束条件是变量w的值等于零。
    在选项A中,我们可以看到循环结束的条件是变量w的值等于零,而初值也一样,与题目中的程序段意思完全一致。
    在选项B中,我们可以看出循环结束的条件是变量w的值等于零,而程序也是先判断,再执行后面的语句,与原程序段描述的意思一致。
    在选项C中,do-while循环是直到型循环,即先执行一次循环体中的语句后,再判断循环条件,当w的值已经等于0时,循环依然要运行一次,与原程序段描述的内容不一致,是题目的答案。
    在选项D中,循环所描述的内容也与原程序段一致。
    提醒:在完成这类题时,首先需要弄明白原程序段的作用,如果看不懂,则可以比较选项中与其他选项不同的结果。