第2章32 循环语句Word文档格式.docx
《第2章32 循环语句Word文档格式.docx》由会员分享,可在线阅读,更多相关《第2章32 循环语句Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
例1
(1)下列是求1+3+5+…+49的值的算法,则横线处应填.
S=0
For
S=S+i
输出S.
答案 i=1To49Step2
解析 根据For语句的一般格式及功能可知.
(2)请阅读下列用For语句写出的算法,则该算法的处理功能为.
T=1
For i=1 To20
S=S+i
T=T*i
输出S
输出T.
答案 求和S=1+2+3+…+20及求积T=1×
2×
3×
…×
20
反思与感悟 解决这类问题首先是确定循环变量的初始值和终止值,根据题意确定循环体,然后用For语句的形式对算法加以描述.
跟踪训练1
(1)已知S=5+10+15+…+1500,画出算法框图,用For语句写出算法语句.
解 算法框图如图所示:
从算法框图可以看出是一个循环结构,我们可以运用循环语句来实现.
Fori=5To1500 Step5
Fori=5To1500
或
i=i+5
(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)
相应算法框图如下图所示:
类型二 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=S+i
i=i+1
LoopWhile i<
=100
反思与感悟 用DoLoop语句写算法时,要注意LoopWhile后面的条件,只要条件为真就执行循环体.
跟踪训练2 根据下面的算法语句,绘制算法框图,指出输出的最后结果是什么?
并将它改为另一种循环语句.
Fori=3To99
S=S+i3
i=i+2
解 算法语句对应的算法框图如图所示,它用的是“For”语句,最终输出的结果是33+53+…+993,
算法框图如图所示:
或
利用“DoLoop语句”可以改为
i=3
LoopWhilei<
=99
1.关于DoLoop循环语句叙述正确的是( )
A.至少执行循环体一次
B.执行一次循环体
C.满足条件时执行循环体
D.遇到DoLoop就结束
答案 A
2.根据下面语句判断输出结果为( )
LoopWhileS<
输出i.
A.6B.7C.8D.9
答案 B
解析 前6次循环后,S的值分别为1,3,6,10,15,21,因21>
20,要输出i,此时i是加1后的值为7.
3.下列算法语句输出的结果是( )
S=S*2+1
=4
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×
4×
5×
6×
7×
8×
9×
10的一个算法语句,将其补充完整.
a=10
b=1
b=a*b
a=
LoopWhile
输出b
答案 a-1 a>
=1
解析 a的初始值为10,故循环体中的值应该递减,即a从10减小到1,循环体的条件应为a≥1.
5.请阅读下面用For语句给出的算法,画出算法框图并说明该算法的处理功能.
Fori=1To20 Step2
输出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
A.17B.19
C.21D.23
解析 该语句为For循环语句,循环变量i,初始值为1,终止值为7,步长为1,所以须循环7次,最后循环结束时,i=7.故此时a=7+2=9,S=2×
9+3=21.
2.下面程序中循环语句的循环终止条件是( )
m=1
m=m+3
LoopWhilem<
10
输出m.
A.m=10B.m<
C.m>
10D.m≥10
答案 D
解析 当m<
10不成立即m≥10时,循环终止,执行DoLoop语句后的语句.
3.下面的算法语句第3个输出的数是( )
x=1
输出x
i=i+1
x=x+
5
A.1B.C.2D.
解析 该算法语句中关键是循环语句,
第一次输出的数是1,
第二次输出的数是x=1+=,
第三次输出的数是x=1++=2.
4.有下面算法语句:
For i=-5To150
该语句共执行循环的次数为( )
A.30B.31C.29D.32
解析 由题意知,该问题为-5加上多少次5之后为150,设加n次,
则有-5+5n=150,n=31.
5.下列是一个表示计算S=2+4+6+…+30的算法,其中横线内应填( )
i=2
i=i+2
LoopWhile
A.i≤30B.i≥30
C.i<
30D.i>
30
解析 DoLoop语句中,条件成立时执行循环体,条件不成立时退出循环,循环15次,故i≤30.
6.下面语句执行后输出的结果是( )
n=5
S=S+n
n=n-1
15
输出n.
A.-1B.0C.1D.2
解析 由于5+4+3+2=14,n=2-1=1,这时仍满足条件“S<
15”,S=14+1=15,n=1-1=0,这时S<
15不满足,跳出循环.
7.运行下面的语句,执行后输出的S的值是( )
i=i+2
S=2*i+1
6
A.11B.15C.17D.19
解析 当i=3时,S=7,当i=5时,S=11,此时条件还满足,因此再循环一次,即i=7时,S=15.
8.下列语句的运行结果是( )
For i=1To5
S=S+1/i
A.B.C.D.3
解析 该语句是求1++++的和.
9.下列语句运行后输出的结果是64,那么横线上应填( )
s=2
s=si
输出s.
A.i≥3B.i>
3C.i≤3D.i<
3
解析 这是用DoLoop语句描述的算法,i为循环变量,初始值为1,输出结果为64时,应该是进行了三次循环,故While后面的条件为i≤3.
二、填空题
10.用DoLoop语句编写一个算法语句,输出使1+4+7+…+i≥300成立的最小正整数.则①处应填.
i=i+3
LoopWhile ①
输出i-3.
答案 S<
300
解析 DoLoop语句中,当While后的条件为真执行循环.
11.执行下面的算法语句,输出的结果是.
A=1
B=1
A=A+B
B=A+B
LoopWhileB<
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.下述算法语句的表达式为.
For i=2To10
p=2*i-1
S=S+1/p
答案 S=++…++
解析 算法语句中体现的是循环语句的应用.
S=++…++.
三、解答题
13.分别用两种不同循环语句描述下列算法:
计算2×
100的值.
解 循环语句如下:
方法一
Fori=2To100Step2
S=S*i
方法二
四、探究与拓展
14.运行下面的算法语句,输出的i的值为.