8.下面的程序段所表示的数学函数关系是( )
y=-l;
if( x!= 0)if(x>0)y=l; else y=0 ;
1(xlt;0) 1(xlt;0)
① y= { 0(x= 0) ② y={-l(X=0)
1(X>0) 0(X>0)
o(Xlt; 0) -l(Xlt; 0)
③ y= {-1(x= 0) ④ y={ 1(X= 0)
1(X> 0) 0(X> 0)
「解」程序段首先置变量y的值为一l,接着按变量x值的不同情况重置变量y的值。重置的首要条件是x!=0,若变量x的值为0,则不再重置变量y的值,所以在X值为0情况下,y的值是-l.在变量X的值不等于0的条件下,若X的值大于0,重置变量y的值为1;若变量X的值小于0,重置变量y的值为0.所以程序段实现当变量x的值为0时,变量y的值为-1;当变量X的值大于0时,置变量y的值为1;当变量X的值小于0时,置变量y的值为0.正确解答为③。
9.下列语句中,句法错误的是(不考虑语义)( )
① while(x=y)5 ; ② do x++ while(x==10) ;
③while(0); ④do 2;while(a==b);
「解」 while语句的一般形式是:
while(表达式) 语句
这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句。可能书写的while语句没有任何意义,如供选择的①while(x=y)5;和③while(0);,但这两个语句的句法没有任何错误。do-While语句的一般形式是:
do语句while(表达式);
其中的成分语句也可以是任何语句,但供选择答案②do x++while(x==10) ;中的代码x++是一个表达式,不是语句,所以是错误的。正确解答是②。
10,循环语句”for(x=0, y=0;(y!=123)||( xlt;4);x++);“的循环执行( )
①无限次 ②不确定次 ③4次 ④3次
「解」for循环语句的初始化部分置变量x和y的初值为0,循环条件是(y!=123)||(xlt;4),每次循环后变量X的值增1.由于循环过程中变量y的值本被修改过,循环条件又是一个逻辑或,其左分量(y!=123)永远成立,也就是循环条件永远成立。所以该循环语句将循环执行无限次。正确解答是①。
11.若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是( )
for( i=5; i; i――)
for(j= 0; jlt;4;j++){hellip;hellip;}
①20 ② 24 ③ 25 ④ 30
「解」问题所给的程序段的外循环是一个阶循环语句,它的初始化部分置变量i的初值为5,循环条件简写成i,即i!=0,每次循环后变量i的值减1.所以外循环共控制5次循环。内循环也是一个for循环语句,它的初始化部分置变量j的初值为0,循环条件是jlt;4,每次循环后变量j的值增1.所以内循环共控制4次循环。这样,如内循环的体内未曾对变量i和j有修改,在内、外循环一起控制下,内循环的体共被重复执行20次。正确解答是①。
12.假定a和b为int型变量,则执行以下语句后b的值为( )
a=1; b=10;
do b-=a; a++;
}whilelt;(b――lt;0);
①9 ②-2 ③-1 ④8
「解」在这个程序段中,循环开始前变量a的值为1,b的值为10,每次循环从变量b减去a,并让a增1,并在循环条件判定时,又让b减去1.第一次循环后,变量b的值变成9,变量a的值变为2,循环判断时,因b的值大于0,循环条件不成立,结束循环。但在循环判断时,让b减去了1,所以循环结束时,变量b的值为8.正确的解答是④。
13.设x和y为int型变量,则执行下面的循环后,y的值为( )
for(y=l, x=l; ylt;=50; y++){
if(x>=10) break;
if(x%2==1){ x+=5; continue;}
X -= 3;
}
①2 ②4 ③6 ④8
「解」 for循环语句的初始化部分置变量x和y的初值为1,循环条件是(ylt;=50),每次循环后变量y的值增1,控制循环最多执行50次。循环体有三个语句:首先在发现变量X的值大于等于10时,结束循环;接着是当变量X除2的余数为1(即变量X是奇数)时,让变量X值增5,让X变成偶数,并直接进入下一轮循环;如变量X是偶数,则从变量X减去3,让变量X变成奇数。由上述分析知,每两次循环使变量X的值增加2.第一次循环后,变量X的值变成6.第二次循环后,变量X的值变成3.第三次循环后,变量X的位变成8.第四次循环后,变量X的值变成5.第五次循环后,变量X的值变成 10.第六次循环时,因变量X的位大于等于 10,直接跳出循环,这次循环是非正常结束,对变量y的修正只执行了5次。所以循环结束后,变量y的值增至6.正确的解答是③。
14.在C语言中,下列说法中正确的是( )
①不能使用”do语句while(条件)“的循环
②”do语句While(条件)“的循环中必须使用”break“语句退出循环
③”do语句while(条件)“的循环中,当条件非0时将结束循环
④”do语句while(条件)“的循环中,当条件为0时将结束循环
「解」 do-while语句的一般形式是:
do语句
while(表达式);
其语义是重复执行其成分语句,直至表示条件的表达式值为0时结束。do-while语句是正常使用的一种循环结构之一。do-while语句的循环结束条件由while后的表达式值为0所控制,并不一定要有break语句跳出循环来结束循环。do-while语句在条件值非0时,将继续循环,而不是结束循环。条件值为0时,才结束循环。所以正确的选择是④。
15.若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是( )
W= k;
LB: if(w==0) gotO LE;
w - -;
printf(”*“);
goto LB;
LE:
①for(w=k;w!=0;W――)printf(”*“);
② w= k;
While(W――!=0) Prinif(”* “);
③ w= k;
do{w――; prinif(”*“);
} while( W!= 0);
④ for(w=k;W;――W) printf(”*“);
「解」问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符* .上述循环控制过程用for循环可描述如下:
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时,将输出许许多多的字符*.所以解答应是③。
声明:
(一)由于考试政策等各方面情况的不断调整与变化,本网站所提供的考试信息仅供参考,请以权威部门公布的正式信息为准。
(二)本网站在文章内容来源出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如您对内容、版权等问题存在异议请与本站联系,我们会及时进行处理解决。
相关推荐
2022年浙江自考《语言学概论》模拟试题(10)
09-032022年浙江自考《毛泽东思想概论》练习题及答案(11)
07-272023年4月浙江自考《教育科研方法》章节试题汇总(下)
02-172023年10月浙江自考邓小平理论概论模拟试题4.6
05-232023年4月浙江自考《伤寒论》练习试题及答案32
11-102018年04月浙江工业大学3030301行政管理实践课报考简章
07-232022年浙江自考写作(一)练习试题及答案
08-192023年4月浙江自考《企业文化》单选题及答案(4)
03-272024年4月浙江自考《英语(二)》模拟练习题28
01-162023年浙江自考《服装款式设计》模拟题及答案(1)
02-23关注公众号
回复“免费资料”领取复习资料
微信公众号
微信交流群
<<点击收起