2.3.2
循环语句
课时检测
一、选择题
1.若For
i=-10
To
19为某一循环语句中的一个步骤,则该循环共循环( )
A.29次
B.30次
C.28次
D.19次
[答案] B
[解析] 循环次数为(终值-初始值)+1=30.
2.关于Do
Loop循环语句叙述正确的是( )
A.至少执行循环体一次
B.执行一次循环体
C.满足条件时执行循环体
D.遇到Do
Loop就结束
[答案] A
[解析] 对于Do
Loop循环语句,先执行循环体,再根据条件是否成立来确定执行循环体,因此至少执行一次循环体.
3.读下面的算法语句,输出的结果是( )
A.2
B.10
C.15
D.20
[答案] C
[解析] 当I=1时,S=0×2+1,当I=2时,S=1×2+1=3;当I=3时,S=3×2+1=7;当I=4时,S=7×2+1=15.
4.如图所示,给出的四个流程图中,满足Do
Loop语句格式的是( )
[答案] D
[解析] Do
Loop语句是先执行一次循环体,再判断是否满足条件,排除B,C,当条件不满足时跳出循环体,排除A,故选D.
5.下列算法语句的目的是( )
S=0
For a=1 To 4
a=2
a
S=S+a
Next
输出a
A.计算2+22+23+24
B.计算2+22+23
C.计算23
D.计算24
[答案] D
[解析] 本题输出的为最后的a值,共循环了4次,故输出24的值.
6.如果以下程序运行后输出的结果是100,那么在程序中While后面的条件表达式应为( )
S=0
i=1
Do
S=S+i^3
i=i+1
Loop
While条件表达式
输出S
A.i>5
B.i≤4
C.i≥4
D.i≤5
[答案] B
[解析] 该程序中使用了Do
Loop循环语句,当While后的条件表达式结果为真时,执行循环体,为假时结束循环,由于输出结果为100,因此条件应为i≤4.
二、填空题
7.下列算法:
A=2
B=1
Do
B=A
B
A=A+1
Loop
While A≤5
输出B
该算法的功能是________.
[答案] 计算1×2×3×4×5的值
8.设计算法计算1+2+3+…+50的值时,如果用循环语句应用__________语句,循环次数为__________.
[答案] For 50
[解析] 因为知道循环次数,故应用For语句,其语句描述为:
S=0
For i=1
To
50
S=S+i
Next
输出S.
三、解答题
9.计算1+2+22+23+…+263,写出用Do
Loop语句描述的算法.
[解析] 用语句描述如下:
S=1
n=2
i=1
Do
S=S+n^i
i=i+1
Loop
While i<=63
输出S
10.把100~200内所有能被3整除的数输出,用程序语句描述算法.
[解析] For
i=100 To
200
If
M
Mod
3=0
Then
输出M
End
If
Next
一、选择题
1.读程序,对甲、乙两程序和输出的结果判断正确的是( )
甲:
乙:
i=1000
S=0
S=0
For i=1 To
1000
Do
S=S+i
S=S+i
i=i+1
i=i-1
Next
Loop
While i>=1
输出
输出 S
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
[答案] B
[解析] 甲程序是用Do
Loop语句写的,乙程序是用For语句写的,但两者运行结果都是500500,S乙=1+2+3+…+1000,S甲=1000+999+…+1.
2.以下语句用来计算( )
S=1
For i=1 To 10
S=3
S
Next
输出S
A.3×10的值
B.39的值
C.310的值
D.1×2×3×…×10的值
[答案] C
[解析] 由循环体,S为3n的形式,由For i=1 To 10,∴S=310,故选C.
二、填空题
3.阅读下面的算法语句段:
b=1
For k=1 To 5
b=b
k
If b>=15 Then
退出For循环
End
If
Next
输出k;b.
在上述语句段中,k循环共执行________次,在窗体上显示的结果为________.
[答案] 4 24
[解析] 本题主要考查For循环语句,首先观察循环的条件If
b>=15
Then退出循环,可知b的最终值为24,k从1到4,所以,k的最终值为4.这时b=24.
4.下面是求1×2×3×4×5×6×7×8×9×10的一个算法语句,将其补充完整.
[答案] a=a-1 a>0(或a>=1)
[解析] a的初始值为10,故循环体中的值应该递减,即a从10减小到1,循环体的条件应为a>0,也可以为a≥1.
三、解答题
5.试用循环语句描述求1-+-+…+-的和.
[解析] 本题适合用For语句来描述,用For语句如下:
S=0
i=1
For
i=1
To
10
S=S+(-1)i+1/i
Next
输出S.
6.求12+22+32+…+n2<1000成立的n的最大整数值,用基本算法语句表示其算法.
[解析] 用语句描述如下:
S=1
i=2
Do
A=i^2
S=S+A
i=i+1
Loop
While S<1000
i=i-1
输出n的最大整数值i.
7.已知一个算法框图如图所示,请根据框图写出用基本语句编写的程序,并指明该程序的功能.
[解析] 算法如下:
s=0
For
i=1
To
99
s=s+1/(i
(i+1))
Next
输出s
该算法的功能为求+++…+的值.