第2章32 循环语句.docx
《第2章32 循环语句.docx》由会员分享,可在线阅读,更多相关《第2章32 循环语句.docx(17页珍藏版)》请在冰豆网上搜索。
第2章32循环语句
3.2 循环语句
学习目标 1.理解两种结构的循环语句——For语句和DoLoop语句.2.掌握两种循环语句的一般形式并会应用.3.通过具体实例使学生明确两种循环语句的区别和联系.
知识点一 循环语句
思考 在算法框图中我们用选择结构来控制循环.在语句中怎样实现循环?
答案 使用循环语句.
梳理 一般地,循环语句有两种,预先知道循环次数用For语句,不知道则用DoLoop语句.
知识点二 For语句
1.For语句适用范围
循环结构是算法中的基本结构,For语句是表达循环结构最常见的语句之一,它适用于预先知道循环次数的循环结构.
2.For语句的一般形式是
For循环变量=初始值To终值
循环体
Next
知识点三 DoLoop语句
1.DoLoop语句适用范围
预先不知道循环次数的循环结构,一般用DoLoop语句来描述.
2.DoLoop语句的一般形式为
Do
循环体
LoopWhile条件为真
1.在For循环中,步长为1,可以省略不写;若为其他值,则不可省略.( √ )
2.当循环次数未知时,只能用DoLoop语句解决累加、累乘问题.( √ )
3.For循环的关键是要为循环变量设定初值、步长、终值.( √ )
类型一 For语句
例1
(1)下列是求1+3+5+…+49的值的算法,则横线处应填.
S=0
For
S=S+i
Next
输出S.
答案 i=1To49Step2
解析 根据For语句的一般格式及功能可知.
(2)请阅读下列用For语句写出的算法,则该算法的处理功能为.
S=0
T=1
For i=1 To20
S=S+i
T=T*i
Next
输出S
输出T.
答案 求和S=1+2+3+…+20及求积T=1×2×3×…×20
反思与感悟 解决这类问题首先是确定循环变量的初始值和终止值,根据题意确定循环体,然后用For语句的形式对算法加以描述.
跟踪训练1
(1)已知S=5+10+15+…+1500,画出算法框图,用For语句写出算法语句.
解 算法框图如图所示:
从算法框图可以看出是一个循环结构,我们可以运用循环语句来实现.
S=0
Fori=5To1500 Step5
S=S+i
Next
输出S.
S=0
Fori=5To1500
或
S=S+i
i=i+5
Next
输出S.
(2)设计一个计算1++++…+的算法,并画出算法框图写出算法语句.
解 原式=1++++…+,计数变量在指数位置上,累积变量与计数变量的初始值都可看作1,利用循环结构设计算法.
算法步骤如下:
1.S=1;
2.i=1;
3.S=S+;
4.i=i+1;
5.如果i≤20,则返回3,重新执行3、4、5,否则输出S.
语句如下:
S=1
Fori=1To20
S=S+1/(3i)
Next
输出S.
相应算法框图如下图所示:
类型二 DoLoop语句
例2 计算1+2+3+…+100的值有如下算法:
1.令i=1,S=0.
2.计算S+i,仍用S表示.
3.计算i+1,仍用i表示.
4.判断i≤100是否成立.若是,则返回第二步;否则,输出S,结束算法.
请利用DoLoop语句写出这个算法对应的语句.
解 语句如下:
i=1
S=0
Do
S=S+i
i=i+1
LoopWhile i<=100
输出S.
反思与感悟 用DoLoop语句写算法时,要注意LoopWhile后面的条件,只要条件为真就执行循环体.
跟踪训练2 根据下面的算法语句,绘制算法框图,指出输出的最后结果是什么?
并将它改为另一种循环语句.
S=0
Fori=3To99
S=S+i3
i=i+2
Next
输出S.
解 算法语句对应的算法框图如图所示,它用的是“For”语句,最终输出的结果是33+53+…+993,
算法框图如图所示:
或
利用“DoLoop语句”可以改为
S=0
i=3
Do
S=S+i3
i=i+2
LoopWhilei<=99
输出S.
1.关于DoLoop循环语句叙述正确的是( )
A.至少执行循环体一次
B.执行一次循环体
C.满足条件时执行循环体
D.遇到DoLoop就结束
答案 A
2.根据下面语句判断输出结果为( )
i=1
S=0
Do
S=S+i
i=i+1
LoopWhileS<20
输出i.
A.6B.7C.8D.9
答案 B
解析 前6次循环后,S的值分别为1,3,6,10,15,21,因21>20,要输出i,此时i是加1后的值为7.
3.下列算法语句输出的结果是( )
i=1
S=0
Do
S=S*2+1
i=i+1
LoopWhilei<=4
输出S.
A.3B.7
C.15D.19
答案 C
解析 由算法语句可知,该循环体共循环4次,分别为S=2×0+1=1,S=2×1+1=3,S=2×3+1=7,S=2×7+1=15.
4.下面是求1×2×3×4×5×6×7×8×9×10的一个算法语句,将其补充完整.
a=10
b=1
Do
b=a*b
a=
LoopWhile
输出b
答案 a-1 a>=1
解析 a的初始值为10,故循环体中的值应该递减,即a从10减小到1,循环体的条件应为a≥1.
5.请阅读下面用For语句给出的算法,画出算法框图并说明该算法的处理功能.
S=0
Fori=1To20 Step2
S=S+i
Next
输出S.
解 算法的框图如图所示,因此,这个算法实际上处理的是求和S=1+3+5+7+9+11+13+15+17+19.
1.For语句适用于预先知道循环次数的循环结构,而不知循环次数的循环结构用DoLoop语句.
2.①当计算机执行For语句时,一般先执行一次循环体,当循环变量在初始值与终止值之间时,执行循环体;当循环变量超过终止值时,不再执行循环体,跳出循环体执行后面的语句.
②计算机执行DoLoop语句,先执行一次循环体,若符合条件,继续执行循环体;当不符合条件时,跳出循环,执行LoopWhile后的语句.
3.一般情况下,For语句可以改成DoLoop语句,而DoLoop语句不一定能改成For语句.
一、选择题
1.执行下面算法语句的结果是( )
For i=1 To 7
a=i+2
S=2*a+3
Next
输出S.
A.17B.19
C.21D.23
答案 C
解析 该语句为For循环语句,循环变量i,初始值为1,终止值为7,步长为1,所以须循环7次,最后循环结束时,i=7.故此时a=7+2=9,S=2×9+3=21.
2.下面程序中循环语句的循环终止条件是( )
m=1
Do
m=m+3
LoopWhilem<10
输出m.
A.m=10B.m<10
C.m>10D.m≥10
答案 D
解析 当m<10不成立即m≥10时,循环终止,执行DoLoop语句后的语句.
3.下面的算法语句第3个输出的数是( )
i=1
x=1
Do
输出x
i=i+1
x=x+
LoopWhile i<5
A.1B.C.2D.
答案 C
解析 该算法语句中关键是循环语句,
第一次输出的数是1,
第二次输出的数是x=1+=,
第三次输出的数是x=1++=2.
4.有下面算法语句:
For i=-5To150
i=i+5
Next
该语句共执行循环的次数为( )
A.30B.31C.29D.32
答案 B
解析 由题意知,该问题为-5加上多少次5之后为150,设加n次,
则有-5+5n=150,n=31.
5.下列是一个表示计算S=2+4+6+…+30的算法,其中横线内应填( )
S=0
i=2
Do
S=S+i
i=i+2
LoopWhile
输出S.
A.i≤30B.i≥30
C.i<30D.i>30
答案 A
解析 DoLoop语句中,条件成立时执行循环体,条件不成立时退出循环,循环15次,故i≤30.
6.下面语句执行后输出的结果是( )
n=5
S=0
Do
S=S+n
n=n-1
LoopWhileS<15
输出n.
A.-1B.0C.1D.2
答案 B
解析 由于5+4+3+2=14,n=2-1=1,这时仍满足条件“S<15”,S=14+1=15,n=1-1=0,这时S<15不满足,跳出循环.
7.运行下面的语句,执行后输出的S的值是( )
i=1
Do
i=i+2
S=2*i+1
LoopWhilei<6
输出S.
A.11B.15C.17D.19
答案 B
解析 当i=3时,S=7,当i=5时,S=11,此时条件还满足,因此再循环一次,即i=7时,S=15.
8.下列语句的运行结果是( )
S=0
For i=1To5
S=S+1/i
Next
输出S.
A.B.C.D.3
答案 A
解析 该语句是求1++++的和.
9.下列语句运行后输出的结果是64,那么横线上应填( )
s=2
i=1
Do
s=si
i=i+1
LoopWhile
输出s.
A.i≥3B.i>3C.i≤3D.i<3
答案 C
解析 这是用DoLoop语句描述的算法,i为循环变量,初始值为1,输出结果为64时,应该是进行了三次循环,故While后面的条件为i≤3.
二、填空题
10.用DoLoop语句编写一个算法语句,输出使1+4+7+…+i≥300成立的最小正整数.则①处应填.
S=0
i=1
Do
S=S+i
i=i+3
LoopWhile ①
输出i-3.
答案 S<300
解析 DoLoop语句中,当While后的条件为真执行循环.
11.执行下面的算法语句,输出的结果是.
A=1
B=1
Do
A=A+B
B=A+B
LoopWhileB<15
C=A+B
输出C.
答案 34
解析 循环结构中的循环体的作用是将前两个数相加,得到后一个数;如果没有循环条件的限制,程序中的循环结构将连同初始值,依次给A,B赋值为1,1;2,3;5,8;13,21;…,其中第一、三、五、…个数为A的值,第二、四、六、…个数为B的值;可见,当B=21时,循环结束,此时A=13,所以,C=A+B=34.
12.下述算法语句的表达式为.
S=0
For i=2To10
p=2*i-1
S=S+1/p
Next
输出S.
答案 S=++…++
解析 算法语句中体现的是循环语句的应用.
S=++…++.
三、解答题
13.分别用两种不同循环语句描述下列算法:
计算2×4×6×…×100的值.
解 循环语句如下:
方法一
S=1
Fori=2To100Step2
S=S*i
Next
输出S.
方法二
i=2
S=1
Do
S=S*i
i=i+2
LoopWhile i<=100
输出S.
四、探究与拓展
14.运行下面的算法语句,输出的i的值为.
S=0
i=1
Do