1、循环语句(20分钟35分)1.下列说法正确的是 ()A.当型(WHILE)循环结构不能转化为直到型(UNTIL)循环结构B.当型(WHILE)循环结构先执行循环体,后判断条件C.当型(WHILE)循环结构先判断条件,后执行循环体D.以上说法都不正确【解析】选C.当型循环是先判断条件后再决定是否执行循环体,直到型循环是先执行循环体,后判断条件,它们之间可以进行转化.2.下面为一个求20个数的平均数的程序,在横线上应填充的语句为()A.i20B.i=20D.i20.3.执行如图所示的程序,输入a=3,b=-1,n=4后,输出的结果是()A.3B.4C.5D.6【解析】选B.循环体被执行了四次,第一
2、次执行循环体得到的结果是c=2,a=-1,b=2,i=2;第二次执行得到的结果是c=1,a=2,b=1,i=3;第三次执行得到的结果是c=3,a=1,b=3,i=4;第四次执行得到的结果是c=4,a=3,b=4,i=5,此时输出c=4.4.下面的程序:执行完毕后a的值为_.【解析】当a100,即a,故n最小为12.答案:126.编写程序,求满足1+3+5+n10 000的最小自然数n.【解析】方法一(WHILE语句):方法二(UNTIL语句):【补偿训练】给出一个算法的程序框图(如图所示).(1)说明该程序的功能;(2)请用WHILE型循环语句写出程序.【解析】(1)该程序的功能是求1+的值.
3、(2)程序如下:(30分钟60分)一、选择题(每小题5分,共25分)1.下列程序中循环体运行次数是 ()A.4B.5C.6D.60【解析】选C.循环体第1次运行后,i=50,第2次运行后,i=60,第3次运行后,i=70,第4次运行后,i=80,第5次运行后,i=90,第6次运行后,i=10090,循环终止,则共运行了6次.2.对于如图所示的程序:运行后输出的结果为 ()A.3B.2C.1D.0【解析】选D.执行过程如下:M=5,N=0;当N=015时,N=0+5=5,M=5-1=4;当N=515时,N=5+4=9,M=4-1=3;当N=915时,N=9+3=12,M=3-1=2;当N=121
4、5时,N=12+2=14,M=2-1=1;当N=14=8B.i=7C.i7D.i=7.5.下面是计算2+3+4+5+6的值的程序.在WHILE后的处和S=S+i之后的处所填写的语句可以分别是 ()A.i1;i=i-1B.i1;i=i+1C.i=1;i=i+1D.i=1;i=i-1【解析】选A.程序的作用是计算2+3+4+5+6的值,则处应为i1,且i应逐次减少1,即处应为i=i-1.二、填空题(每小题5分,共15分)6.如图所示的程序执行后输出的结果是_.若要求画出对应的程序框图,则选择的程序框有_.【解析】本题为当型循环语句,观察知每次循环完成后T值都比S大1.而S的最终值为51,所以T的输
5、出值为52.程序中使用了输出语句、赋值语句和循环语句,故应选择的程序框有:起止框、处理框、判断框、输出框.答案:52起止框、处理框、判断框、输出框【补偿训练】下面程序运行后,输出的结果为_.【解析】依题意知i=1,s=0,p=0,第1次循环:p=1(1+1)=2,s=,i=2;第2次循环:p=2(2+1)=6,s=+=,i=3;第3次循环:p=3(3+1)=12,s=+=,i=4;第2 018次循环:p=2 0182 019,s=,i=2 019,循环结束,输出s=.答案:7.执行下面程序语句,输出的结果是_.【解析】循环结构中的循环体的作用是将前两个数相加,得到后一个数.程序中的循环结构将连
6、同初始值,依次给A,B赋值为1,1;2,3;5,8;13,21.其中第一、三、五、七个数为A的值,第二、四、六、八个数为B的值.可见,当B=21时,循环结束,此时A=13,所以C=A+B=34.答案:348.根据如图所示的程序框图,把对应的程序中所缺少的语句补充完整.【解析】由程序框图可知利用了直到型循环结构,对应的语句为直到型循环语句,DO后面执行的是循环体,故处应分别为S=S+i2,i=i+1,直到满足条件i100为止,所以处应为i100.答案:S=S+i2i=i+1i100三、解答题(每小题10分,共20分)9.下面程序的功能是输出1100的所有偶数.(1)试将上面的程序补充完整.(2)
7、改写为WHILE型循环语句.【解析】(1)m=0i=i+1(2)改写为WHILE型循环语句如下.【补偿训练】分别用WHILE语句和UNTIL语句编写计算机程序输出1100(含1和100)能被3整除的所有整数.【解析】利用WHILE语句编写程序如下:利用UNTIL语句编写程序如下:10.某商场第一年销售计算机5 000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30 000台?画出解决此问题的程序框图,并写出程序.【解析】程序框图如图所示:程序:1.读下列两段程序:甲:乙:对甲、乙程序和输出结果判断正确的是 ()A.程序不同,结果不同B.程序不同,结果相同C
8、.程序相同,结果不同D.程序相同,结果相同【解析】选B.程序甲是计数变量i从1开始逐步递增直到i=1 000时终止,累加变量从0开始,这个程序计算的是1+2+3+1 000;程序乙是计数变量i从1 000开始逐步递减到i=1时终止,这个程序计算的是1 000+999+1.但这两个程序是不同的.两个程序的输出结果都是S=1+2+3+1 000=500 500.2.一球从100 m的高度落下,每次落地后又反跳回原高度的一半,再落下,在第10次落地时,小球共经过多少路程?请设计解决此问题的程序框图及程序.【解析】第1次下落的高度h1=100 m;第2次下落的高度h2=h1=50 m;第3次下落的高度
9、h3=h2=25 m第10次下落的高度h10=h9.到第10次落地时,共经过的路程为s=h1+2h2+2h3+2h10=2(h1+h2+h10)-h1.故可将s作为累加变量,i作为计数变量.程序框图如图所示.根据以上程序框图,可设计程序如下.【补偿训练】设计一个计算135799值的算法,画出程序框图,写出程序.【解析】算法步骤如下:第一步:S=1;第二步:i=3;第三步:S=Si;第四步:i=i+2;第五步:判断i是否大于99,若是转到第六步;否则转到第三步,继续执行第三步,第四步,第五步;第六步:输出S;第七步:算法结束.相应的程序框图如图所示.相应的程序如下:(1)用UNTIL语句编写:(2)用WHILE语句编写:19