自考地区
全国 北京 上海 天津 重庆 河北 山西 辽宁 吉林 黑龙江 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 海南 四川 贵州 云南 陕西 甘肃 青海 内蒙古 广西 宁夏 新疆 西藏
您所在的位置 桃李自考网 > 自考模拟题 >

2021年浙江自考《高级语言程序设计》章节试题及答案(10)

2021-01-11 16:19 来源:桃李自考网 成人自考

13.设x和y为int型变量,则执行下面的循环后,y的值为( )

for(y=l, x=l; y<=50; y++){

if(x>=10) break;

if(x%2==1){ x+=5; continue;}

X -= 3;

}

①2 ②4 ③6 ④8

「解」 for循环语句的初始化部分置变量x和y的初值为1,循环条件是(y<=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时,将输出许许多多的字符*.所以解答应是③。