第一章 1.2 1.2.3
A级 基础巩固
一、选择题
1.有人编写了下列程序,则( D )
A.输出结果是1
B.能执行一次
C.能执行10次
D.是“死循环”,有语法错误
[解析] 从循环语句的格式看,这个循环语句是直到型循环语句,当满足条件x>10时,终止循环.但是第一次执行循环体后x=1,由于x=1>10不成立,则再次执行循环体,执行完成后x=1,则这样无限循环下去,是一个“死循环”,有语法错误,循环终止的条件永远不能满足.
2.下列程序中循环体运行次数是( C )
A.4 B.5
C.6 D.60
[解析] 循环体第1次运行后,i=50,第2次运行后,i=60,第3次运行后,i=70,第4次运行后,i=80,第5次运行后,i=90,第6次运行后,i=100>90开始成立,循环终止,则共运行了6次.
3.下面的程序:
执行完毕后a的值为( B )
A.99 B.100
C.101 D.102
[解析] 当a<100时执行循环体,a=99时,a=a+1=100.
4.在下面的程序中,输出的结果应为( D )
A.7 B.8
C.3,4,5,6,7 D.4,5,6,7,8
[解析] 每执行一次循环体,输出一个x,且输出的第一个x是4,第二次循环输x是5,第三次循环输出一个x是6,第四次循环输出的x是7,第五次循环输出的x是8,循环结束,故选D.
二、填空题
5.下面的程序运行后,输出的值是__44__.
[解析] 该程序的功能是求使i2≥2 000成立的最大的i的值,输出结果为i-1.∵442=1 936,452=2 025>2 000,∴输出结果为45-1=44.
6.如图程序中,要求从键盘输入n,求1+2+3+…+n的和,则横线上缺的程序项是①__n__,②__i<=n__.
[解析] 本题综合考查程序的设计和功能,着重考查了循环语句中条件的使用.程序应先输入一个n的值,确定要计算前多少项的和,②处应确定计数变量i满足的条件,即确定终止条件.
三、解答题
7.对任意正整数n,设计一个程序求S=1+++…+的值.
[解析] 程序如下:
8.设计一个算法,求使1+2+3+4+…+n>2 017成立的最小自然数,画出程序框图,并写出程序语句.
[解析] 算法如下:
第一步,s=1.
第二步,i=1.
第三步,如果s不大于2 017,执行第四步;否则,输出i,算法结束.
第四步,i=i+1.
第五步,s=s+i,返回第三步.
程序框图如图所示:
程序如下:
B级 素养提升
一、选择题
1.读下列两段程序:
甲: 乙:
对甲、乙程序和输出结果判断正确的是( B )
A.程序不同,结果不同 B.程序不同,结果相同
C.程序相同,结果不同 D.程序相同,结果相同
[解析] 程序甲是计数变量i从1开始逐步递增直到i=1 000时终止,累加变量从0开始,这个程序计算的是1+2+3+…+1 000;程序乙是计数变量从1 000开始逐步递减到i=1时终止,累加变量从0开始,这个程序计算的是1 000+999+…+1.但这两个程序是不同的.两个程序的输出结果都是S=1+2+3+…+1 000=500 500.
2.如果以下程序运行后输出的结果是132,那么在程序中UNTIL后面的条件应为( D )
A.i>11 B.i>=11
C.i<=11 D.i<11
[解析] 程序执行的功能是S=12×11×10×…,输出结果是132,即循环体只执行了两次,即i=10时,就结束了循环.
二、填空题
3.下面的程序执行后输出的结果是__52__.若要求画出对应的程序框图,则选择的程序框有__起止框、处理框、判断框、输出框__.
[解析] 本题为当型循环语句,观察知每次循环完成后T值都比S大1.而S的最终值为51,所以T的输出值为52.程序中使用了输出语句、赋值语句和循环语句,故应选择的程序框有:起止框、处理框、判断框、输出框.
4.已知有下面的程序,如果程序执行后输出的结果是360,那么在程序UNTIL后面的“条件”应为__i<3(或i<=2)__.
[解析] 因为输出的结果是360,即s=1×6×5×4×3,需执行4次,s需乘到3,i<3后结束算法.
所以,程序中UNTIL后面的“条件”应为“i<3(或i<=2)”.
三、解答题
5.设计一个算法计算1×3×5×7×…×99值的算法,画出程序框图,写出程序.
[解析] 算法步骤如下:
第一步:S=1;
第二步:i=3;
第三步:S=S×i;
第四步:i=i+2;
第五步:判断i是否大于99,若是转到第六步;否则转到第三步,继续执行第三步,第四步,第五步;
第六步:输出S;
第七步:算法结束.
相应的程序框图如图所示.
相应的程序如下:(1)
(2)本题中算法程序也可用WHILE语句编写:
6.给出以下10个数:4,10,70,33,95,74,29,17,60,30.要求将大于40的数找出来,画出求解该问题的算法的程序框图,并写出程序.
[解析] 程序框图如图所示:
程序如下:
7.给出30个数:1,2,4,7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依次类推,要计算这30个数的和,现在已知该问题的算法的程序框图如图所示.
(1)请在图中判断框和处理框内填上合适的语句,使之能实现该题的算法功能;
(2)根据程序框图写出程序.
[解析] (1)该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为i≤30.算法中的变量p实质是表示参与求和的数,由于它也是变化的,且满足第i个数比其前一个数大i-1,第i+1个数比其前一个数大i,故处理框内应为p=p+i.故①处应填i≤30?;②处应填p=p+i.
(2)根据程序框图,可设计如下程序:
课件38张PPT。第一章算法初步1.2 基本算法语句1.2.3 循环语句自主预习学案循环是计算机解题的一个重要特征.由于计算机运算速度快,最适宜做重复性质的工作,所以当我们在进行程序设计时,总是要把复杂的、不易理解的求解过程转换为容易理解的、可操作的、多次重复的求解过程.这样一方面降低了问题的复杂程度,另一方面也减少了程序书写及输入的工作量,同时也可以充分发挥计算机运算速度快且可自动执行程序的优势.1.循环语句对应的结构
循环语句与程序框图中的____________相对应.循环结构 2.循环语句的格式、功能及程序框图的对应关系LOOP UNTIL WEND DO UNTIL 执行循环体 执行循环体 条件符合 UNTIL 条件符合 条件仍符合 条件不符合 WEND 1.关于WHILE语句的一般格式中,下列说法正确的是( )
A.总是执行循环体 B.执行一次循环体
C.满足条件时执行循环体 D.遇到WEND就结束
[解析] WHILE语句执行时,先判断条件,若条件成立,就执行循环体,再判断,为真,再执行,直到条件为假时结束循环.C 2.有以下程序段,其中描述正确的是( )
A.WHILE循环执行10次
B.循环体是无限循环
C.循环体语句一次也不执行
D.循环体语句只执行一次
[解析] k=8不满足条件,跳出循环,不执行循环体.C 3.下列循环语句,循环终止时,i等于( )
A.2 B.3
C.4 D.5
[解析] 该循环语句是当型循环语句,当条件i<3开始不成立时,循环终止,则所求i=3.B 4.运行如图所示的程序,如果输入某个正整数n后,输出的S∈(10,20),则输入的n=______.
[解析] S=0,k=1,进入循环体,S=1,k=2,第一次判断后循环:S=3,k=3;第二次判断后循环:S=7,k=4;第三次判断后循环:S=15,k=5;由题意知第四次判断后结束循环,所以n=4.4 互动探究学案 写出计算2×4×6×…×100的程序.
[思路分析] 2×4×6×…×100是有规律的累乘运算,故可引用存储变量S,用“DO…LOOP UNTIL”语句来控制循环,且要引入计数变量i,通过“i=i+2”进行循环.命题方向1 ?直到型语句的应用典例 1 [解析] 程序如下:『规律总结』 UNTIL语句的适用类型及执行方式
〔跟踪练习1〕 下面为一个求1,2, 3,…,20的平均数的程序,在横线上应填充的语句为( )
A.i>20
B.i<20
C.i>=20
D.i<=20A [解析] 由于程序的功能是求20个数的平均数,则循环体共需要执行20次,故当循环变量的值为21时,应当退出循环.又直到型循环是满足条件退出循环,所以i>20. 设计一个算法,求1 000以内能被3整除的正整数的和,写出算法分析,画出程序框图,并编写程序.
[思路分析] 第1个能被3整除的正整数为3,以后每个数比前一个数大3,最后一个数要比1 000小,因此要用循环结构来设计算法.
[解析] 算法分析:
第一步,令i=3,S=0.
第二步,若i<1 000,则执行第三步;否则,输出S.
第三步,S=S+i,i=i+3,返回第二步.命题方向2 ?当型语句的应用典例 2 程序框图如图所示. 程序如下:i=3
S=0
WHILE i<1 000
S=S+i
i=i+3
WEND
PRINT S
END『规律总结』 WHILE语句的执行过程
计算机执行到WHILE语句时,先判断条件是否成立,如果成立,则执行WHILE和WEND之间的循环体;后返回WHILE语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复进行,直到某一次WHILE语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND语句后,执行WEND后面的语句.
当型循环又称“前测试型”循环,也就是我们经常讲的“先测试后执行”,“先判断后循环”.〔跟踪练习2〕 若1+2+3+…+i>2 016,求使得上式成立的最小的自然数i的值,试用WHILE语句描述这一问题的算法过程.
[解析] 程序如下: 分别用当型与直到型语句编写程序计算12+32+52+…+9992,并画出相应的程序框图.
[解析] 解法一:(当型循环)程序框图如下图. 程序如下:命题方向3 ?两种循环语句的相互转化典例 3 解法二:(直到型循环)程序框图如下图. 程序如下:『规律总结』 首先注意WHILE型循环语句的格式,然后搞清其中的条件与UNTIL型语句中的条件正好相反.〔跟踪练习3〕 将下列程序的WHILE语句改为UNTIL语句,使程序不能发生变化.
[解析] 程序如下: 某商场第一年销售计算机5 000台,如果平均每年的销售量比上一年增加10%,那么从第一年起,大约经过几年可使总销量达到40 000台?写出解决此问题的程序.
[错解] 程序如下:典例 4 [辨析] 错解中的循环求出的S不是总销量,而是每年的年销量.
用“m=m*(1+0.1)”表示累乘,求出每年销量;用“S=S+m”表示累加,求出总销量.
[正解] 程序如下:在现实生活中,我们会遇到一些需要反复执行且有规律的任务,例如已知年平均增长率求若干年后的人口总数,已知年初产量及月增长率求年末的产量……要想让这些复杂的运算让计算机来完成,应考虑用循环语句编写程序.循环语句在实际问题中的应用 相传古代印度国王舍罕要褒赏他聪明能干的宰相达依尔(国际象棋的发明者),问他需要什么?达依尔回答说:“国王只要在国际象棋棋盘的第1个格子里放1粒麦粒,第2个格子里放2粒麦粒,第3个格子里放4粒麦粒,以后按此比例每格加一倍,一直放到第64格(国际象棋共有8×8=64格),我就感激不尽了,其他的我就什么也不要了.”国王想:“这才有多少!这还不容易!”让人扛来一袋麦子,用完了,再扛来一袋,又用完了,结果全印度的小麦全用完了还不够.国王纳闷了,怎样也算不清这笔账.请你设计一个程序,帮助国王计算一下,共需要多少粒麦子?典例 5 [解析] 程序框图如图所示: 程序如图所示:『规律总结』 利用循环语句编写程序解实际应用题的步骤:
(1)审清题意;
(2)建立数学模型,即常见的累加、累乘等数学问题;
(3)设计算法分析解决数学问题;
(4)根据算法分析,画出程序框图;
(5)根据程序框图编写程序.1.下列对WHILE语句说法不正确的是( )
A.当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体
B.当条件不符合时,计算机不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句
C.WHILE型语句结构也叫当型循环
D.当型循环有时也称为“后测试型”循环
[解析] 当型循环有时也称为“后测型”循环,故选D.D 2.下面两个程序最后输出的结果分别为( )
A.都是17
B.都是21
C.都是27
D.27与21
[解析] 两个程序第一次循环后的结果分别是9,3,此时i=3;第二次循环后的结果分别是15,9,此时i=5;第三次循环后的结果分别是21,15,此时i=7;第四次循环后的结果分别是27,21,此时i=9;不再执行循环体.D 3.如图程序中,输出的是4,则输入的x可以是( )
A.-8
B.4
C.8
D.-16D 4.下面程序的运行结果是________.
[解析] s=1×2+1=3时,i=1+1=2;s=3×2+1=7时,i=2+1=3;s=7×2+1=15时,i=3+1=4;s=2×15+1=31时,i=4+1=5,不符合条件,循环终止,输出s.所以s=31.31 课时作业学案