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

题目

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

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

第1题:

以下程序输出的结果是includeincludemain(){ char w[][10]={"ABCD","EFGH"

以下程序输出的结果是 #include<stdio.h> #include<string.h> main() { char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",&w[k][k]);}

A.ABCD FGH KL

B.ABC EFG U M

C.EFG JK O

D.FGH KL


正确答案:D
解析:当k=1时,引用的是二维数组元素w[1][1],值为字符串“FGH”;当k=2时,引用的是数组元素w[2][2],即字符串“KL”;当k=3时,结束程序的执行。注意:字符串数组的定义。

第2题:

有以下程序段:int k=0, a=1, b=2, c=3;k=ac? c:k;执行该程序后,k的值是______。A.3B

有以下程序段: int k=0, a=1, b=2, c=3; k=a<b? b:a; k=k>c? c:k; 执行该程序后,k的值是______。

A.3

B.2

C.1

D.0


正确答案:B
解析:第一个表达式得到k=2,对于第二个表达式,因为k=23,k仍然赋值为k。因此最后k值为2。

第3题:

执行以下程序段后,w 的值为

int w= ' A ' ,x=14,y=15;

w=((x||y)&&(w< ' a ' ));

A)-1

B)NULL

C)1

D)0


正确答案:C

第4题:

执行以下程序段后,W的值为______。 int w='A',x=14,y=15 w=((x‖y)&&(w<'a'));

A.-1

B.NULL

C.1

D.0


正确答案:C
解析:本题考查的是括号与逻辑运算符的混合运算,其运算优先级为先括号,后逻辑运算符。另外注意“&&”和“||”的“短路”运算。当运算符“&&”左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0;当运算符“||”左边表达式的值为非零时,则右边表达式就不再进行运算,整个表达式的值为1。本题先运算表达式“x||y”,由于x=14、y=15均为非零,所以x||y=1。则对于与运算符“&&”,还必须运算其右边的表达式“w'a'”,由于A的 ASCII码是65,a的ASCII码是97,所以w'a'的值为1,故整个表达式的值为1。

第5题:

若有以下程序段,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中,循环所描述的内容也与原程序段一致。
    提醒:在完成这类题时,首先需要弄明白原程序段的作用,如果看不懂,则可以比较选项中与其他选项不同的结果。

第6题:

假定w、x、y、z、m均为int型变量,有如下程序段:

w=l;x=2;y=3;z=4;

m=(W<x)?w:x;

m=(m<y)?m:y;

m=(m<2)?m:z;

则该程序运行后,m的值是【 】。


正确答案:√
1 解析:此题考查条件表达式的运用。第1条语句执行后,变量m的值为1。第2条语句执行后,变量m的值为1。第3条语句执行后,变量m的值为1。

第7题:

有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k的值是

有以下程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a; k=k>c?c:k; 执行该程序段后,k的值是 ______。

A.3

B.2

C.1

D.0


正确答案:B
解析:三目运算符的一般形式为(表达式1)?(表达式2):(表达式3),当(表达式1)值为真时,(表达式2)的值为整个表达式的值;当(表达式1)值为假时,(表达式3)的值为整个表达式的值。题中执行表达式“k=ab?b:a”后,k=2,将此值代入后一个表达式“k=k>c?c:k,由于“k>c”值为假,故k的值还等于原来k的值,即2。

第8题:

假定w、x、y、z、m均为血型变量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(W<X)?w:X;

m=(m<y)?m:y;

m=(m<z)?m:z;

则该程序运行后,m的值是【 】。


正确答案:√
1 解析:此题考核条件表达式的运用。第1条语句执行后,变量m的值为1。第2条语句执行后,变量m的值为1。第3条语句执行后,变量m的值为1。

第9题:

若有以下定义和语句:includeinta=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则

若有以下定义和语句: #include<stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是( )。

A.*q=0;

B.w=p;

C.*p=a;

D.*p=*w;


正确答案:A
解析:本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将q指向NULL。因为q指向NULL,所以选项A中对q所指地址进行写入是非法的。故A选项为所选。

第10题:

以下程序的输出结果是 ______。includevoid main() {char w[][10]={ "ABC", "DEFGH"

以下程序的输出结果是 ______。 #include<iostream.h> void main() { char w[][10]={ "ABC", "DEFGH", "IJKL" , "MNOP" }; int k; for (k=1 ;k<3 ;k++) cout<<w[k]<< " " }

A.ABC FGH KL

B.ABC EFG IJ M

C.EFG JK 0

D.DEFGH IJKL


正确答案:D

更多相关问题