3.2 循环语句
课时目标 1.理解给定的两种循环语句,并会应用.2.应用两种循环语句将具体问题程序化,搞清For循环和Do Loop循环的联系和区别.
1.循环结构是算法中的基本结构,________是表达循环结构最常见的语句之一,它适用于____________________的循环结构. 2.For语句的一般形式是
For ____________ To ______ ______ Next
3.预先不知道循环次数的循环结构,一般用________语句来描述. 4.Do Loop语句的一般形式为 Do 循环体
____________________
一、选择题 1.下列算法:
1111
①求和2+2+2+?+2;
123100
②已知两个数求它们的商;
③已知函数定义在区间上,将区间十等分求端点及各分点处的函数值; ④已知三角形的一边长及此边上的高,求其面积. 其中可能要用到循环语句的是( )
A.①② B.①③ C.①④ D.③④ 2.根据下面语句判断输出结果为( ) i=0S=0Do
S=S+i i=i+1
Loop While S<20输出 i
A.6 B.7 C.8 D.9
3.如果以下算法语句运行后输出的结果是132,那么在语句中“条件”应为( ) i=12s=1Do
s=s*i i=i-1
Loop While “条件”输出s
A.i>11 B.i≥11 C.i≤11 D.i<11
4.
For i=-5 To 150
i=i+5 Next
该语句共执行循环的次数为( )
A.30 B.31 C.29 D.32 S=0i=1①Do ②5. S=S+i ③
Loop While i≤100④输出S
要使上述算法能运算出“1+2+?+100”的结果,需将语句“i=i+1”加在( ) A.①处 B.②处 C.③处 D.④处 6.下列语句执行后输出的结果是( ) n=5S=0Do
S=S+n n=n-1
Loop While S<15输出n
A.-1 B.0 C.1 D.2 7.运行下面的语句,执行后输出的S的值是( )
A.11 B.15 C.17 D.19 1 2 3 4 5 6 题 号 答 案 二、填空题 8.运行下面的语句,输出的值为__________.
S=0i=1Do
S=S+i i=i+1
Loop While S<18输出i
7
9.下面是一个求20个数的平均数的算法语句,在横线上应填充的语句为________. S=0i=1Do输入x;S=S+x i=i+1Loop While a=S/20输出a.三、解答题 10.用Do Loop语句编写一个算法语句,输出使1+4+7+?+i≥300成立的最小正整数.
11.分别用两种不同循环语句描述下列算法:计算2×4×6×?×100的值.
能力提升
1111
12.用循环语句书写求1++++?+的算法,并画出相应的算法框图.
2341 000
1111
13.设计算法求+++?+的值,并画出算法框图及编写程序.
1×22×33×499×100
1.For语句适用于预先知道循环次数的循环结构,而不知循环次数的循环结构用Do Loop语句.
2.当计算机执行For语句时,一般先执行一次循环体,当循环变量在初始值与终止值之间时,执行循环体;当循环变量超过终止值时,不再执行循环体,跳出循环体执行后面的语句.
计算机执行Do Loop语句,先执行一次循环体,若符合条件,继续执行循环体;当不符合条件时,跳出循环,执行Loop While后的语句.
3.一般情况下,For语句可以改成Do Loop语句,而Do Loop语句不一定能写成For语句.
3.2 循环语句
知识梳理
1.For语句 预先知道循环次数 2.循环变量=初始值 终值 循环体 3.Do Loop 4.Loop While 条件为真 作业设计
1.B 2.B 3.B 4.D 5.C
6.B [由于5+4+3+2=14,n=2-1=1,这时仍满足条件“S<15”,S=14+1=15,n=1-1=0,这时S<15不满足,跳出循环.]
7.B [当i=3时,S=7,当i=5时,S=11,此时条件还满足,因此再循环一次,即i=7时,S=15.] 8.7
解析 由于循环体是先执行S=S+i,再执行i=i+1,然后进行判断,当S=1+2+3+4+5=15时,执行i=5+1=6,这时15<18成立,再循环一次S=15+6=21,i=6+1=7,这时再判断21<18不成立,于是i=7. 9.i≤20 10.解
S=0i=1Do
S=S+i i=i+3
Loop While S≤300输出i-3
11.解 方法一 S=1
For i=2 To 100 Step 2 S=S*i Next输出S方法二
i=2S=1Do
S=S*i i=i+2
Loop While i≤100输出S12.解
相应的算法框图如右图所示. 相应的算法语句如下: S=0
For i=1 To 1 000 S=S+1/i Next输出 S
13.解 算法如下:
第一步:令S=0,i=1;
第二步:若i≤99成立,则执行第三步; 否则,输出S,结束算法; 第三步:S=S+1
i?i+1?
;
第四步:i=i+1,返回第二步. 算法框图:
方法一 语句
S=0
For i=1To 99
S=S+1/?i*?i+1??Next输出S
方法二
语句
S=0i=1Do
S=S+1/?i*?i+1??
i=i+1
Loop While i≤99输出S