2020版算法与程序设计第三单元第4节 Do循环结构(13张PPT课件+学案)

文档属性

名称 2020版算法与程序设计第三单元第4节 Do循环结构(13张PPT课件+学案)
格式 zip
文件大小 2.2MB
资源类型 教案
版本资源 通用版
科目 通用技术
更新时间 2019-11-30 14:10:31

文档简介

第4节 Do循环结构
考试内容
考试要求
Do语句格式
c
Do语句应用
c
Do语句
Do While 条件表达式
语句1
语句2   (循环体)
……
Loop
每次返回重新判断条件是否成立,成立继续循环
【典例1】 Do循环执行过程填空。
s = 0
Do While s < 10
s = s + 4
Loop
第1次条件s值为0,小于10成立,执行循环体后s=____
第2次条件s值为____小于10成立,执行循环体后s=____
第3次条件s值为____小于10成立,执行循环体后s=____
第4次条件s值为____小于10不成立,循环体不执行
解析 本题主要考查Do循环语句。判断循环变量是否小于10,成立继续循环,否则跳出循环。
答案 4 4 8 8 12 12
【变式训练】 Do循环执行过程填空。
s = “ ”: i = 1
Do While i<5
  s = s + Str(i)
  i = i + 1
Loop
第1次条件i值为____小于5成立,执行循环体后s=____
第2次条件i值为____小于5成立,执行循环体后s=____
第3次条件i值为____小于5成立,执行循环体后s=____
第4次条件i值为____小于5成立,执行循环体后s=____
第5次条件i值为____小于5不成立,循环体不执行
解析 本题主要考查Do循环语句。判断循环变量是否小于10,成立继续循环,否则跳出循环。
答案 1 “1” 2 “12” 3 “123” 4 “1234” 5
【典例2】 有如下程序段:
Dim a As Integer, b As Integer, c As Integer
a = 20:b = 0:c = 2
Do While a > b And a > c
  b = b + 1
  c = c + b
Loop
该程序段运行后
(1)语句“b=b+1”执行的次数为__________。
(2)变量c的值为__________。
解析 本题主要考查Do循环语句。每次循环结束后变量b和c的值依次为1、3,2、5,3、8,4、12,5、17,6、23。
答案 (1)6 (2)23
【典例3】 有如下VB程序段:
n = 20: s = “ ”
Do While n < > 0
r = n Mod 2
s = Str(r) + s
n = n 2
Loop
Label1.Caption = s
该程序段运行后标签Label1上显示的内容是(  )
A.10100 B.00101
C.1010 D.0010
解析 本题主要考查Do循环语句。第1次循环结束后r=0,s=“0”,n=10;第2次循环结束后r=0,s=“00”,n=5;第3次循环结束后r=1,s=“100”,n=2;第4次循环结束后r=0,s=“0100”,n=1;第5次循环结束后r=1,s=“10100”,n=0。
答案 A
【典例4】 小明编写程序实现计算1+2+3+……+n。程序功能如下:程序运行时,在文本框Text1中输入n,单击“计算”按钮Command1,在文本框Text2显示计算结果。程序运行如图所示。
(1)若将该窗体的标题修改为“前n项之和”,则修改该窗体的________(单选,填字母:A.Text/B.Name/C.Caption)属性。
(2)实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer
Dim n As Integer
Dim s As Long
①____
i = 0
Do While i < n
  i = i + 1
  ____②____
Loop
Text2.Text = Str(s)
End Sub
解析 本题主要考查Do循环语句。(1)文本框对象修改Text属性,窗体对象修改Caption ,Name为对象的名称。(2)通过联系循环条件Do While i < n 可知需要对变量n进行赋值,结合题意得出第一空为:n = Val(Text1.Text)。每次循环时i的值变化为0、1、2、3……,需要计算1+2+3+……+n,则只需将每次变量i的值累加到变量s中即可,所以第二空代码为s = s + i。
答案 (1)C (2)①n = Val(Text1.Text)
②s = s + i
【方法总结】 在Do While循环中,需要在循环前给变量赋初值;循环变量值的变化需要在循环体中用语句实现。
1.有如下VB程序段:
s = “浙F888R5”
n = 0: c = 0
Do While n <= Len(s)
n = n + 1
ch = Mid(s, n, 1)
If ch >= “A” And ch <= “Z” Then c = c + 1
Loop
Label1.Caption = Str(c)
该程序段运行后标签Label1上显示的内容是(  )
A.0 B.1
C.2 D.3
解析 本题主要考查Do循环语句和分支结构。在Do循环中,n是小于等于7的整数时,执行循环体,行If语句用来判断取出的第i个字符是否是大写字母,是则将c递增1。在字符串s中,有2个大写字符,故c=2。
答案 C
2.有如下VB程序段:
n = Val(Text1.Text)
sum=n
k=4
Do while nk>0
 sum=sum+nk
 n=nk+n mod k
Loop
Text2.Text=Str(sum)
在文本框Text1中输入10,执行该段程序后,文本框Text2中显示的值是(  )
A.12 B.14 C.16 D.13
解析 本题主要考查Do循环语句。第1次循环结束后,sum=12,n=4;第2次循环结束后,sum=13,n=1。
答案 D
3.有如下VB程序段:
Ins=Text1.Text
n=Len(Ins)
Outs=Mid(Ins,1,1)
i=2
Do While Mid(Ins,i,1)>=Mid(Outs,i-1,1)
 Outs=Outs+Mid(Ins,i,1)
 i=i+1
Loop
Text2.Text=Outs
在文本框Text1中输入“Happy2018” ,执行该段程序后,文本框Text2中显示的是(  )
A.Ha B.Happy
C.Happy28 D.Happy2018
解析 本题主要考查Do循环语句和最长字符串升序段的寻找,最大升序字符串遍历截取后,第i个字符和第i-1个字符比较大小,如果第i个字符比第i-1个字符小,则结束循环。注意:数字内码<大写字符内码<小写字符内码。
答案 B
基础巩固
1.有如下VB程序段:
Private Sub Command1_Click()
 Dim s1 As String, s2 As String, i As Integer, ch As String
 i=1:s1 = Text1.Text
 Do While i<=Len(s1)
ch = Mid(s1, i, 1)
If Asc(ch) >= 65 And Asc(ch) <= 90 Then ch = Chr(Asc(ch) + 3)
s2 = ch + s2
i=i+1
 Loop
 Label1.Caption = s2
End Sub
已知大写字母 A 的 ASCII 码为 65。运行上述程序,若文本框 Text1 中的内容为 “A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是(  )
A.A1b2C3 B.3C2b1A
C.D1b2F3 D.3F2b1D
解析 本题主要考查Do循环语句和分支结构。行If语句主要用于判断字符ch是否是大写字符,如果是大写字符,则将其转换成大写字符的后3位字符,然后将ch拼接在字符串s2的首部。第1次循环结束后s2=“D” ,第2次循环结束后s2=“1D” ,第3次循环结束后s2=“b1D” ,第4次循环结束后s2=“2b1D” ,第5次循环结束后s2=“F2b1D” ,第6次循环结束后s2=“3F2b1D” 。
答案 D
2.某Visual Basic程序如下:
Private Sub Command1_Click()
 Dim i As Integer, sum As Integer
 sum = 0:i=10
 Do While i<=2
sum = sum + i
i=i-2
 Loop
 Text1.Text = Str(sum)
End Sub
运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是(  )
A.sum = 0
B.Do While i<=2
C.sum = sum + i
D.Text1.Text = Str(sum)
解析 出现上述错误的原因是缺少对象Text1,执行Text1.Text = Str(sum)出现错误。
答案 D
能力提升
3.编写“打字练习”程序,实现如下功能:在文本框Text1中输入相应的英文句子s,输入完成后,单击“确定”按钮Command1,在标签框Label2中显示字符总数n和正确率p。程序运行界面如下图所示。
实现上述功能的VB程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
 Dim s As String,s1 As String
 Dim n As Integer,i As Integer,c As Integer,p As Single
 i=1
 s =____①____
 s1 = Label1.Caption
 n = Len(s1)
 Do While i<=n
If ____②____ Then c = c + 1
i=i+1
 Loop
 p = ____③____
 Label2.Caption = “字符总数:” & n & “ ” & “正确率:” & Str(p) & “%”
End Sub
解析 本题主要考查Do循环语句和分支结构。①将文本框Text1中的内容取出并赋值给Text1。②行If语句用来判断Label1中的内容和Text1中的内容是否一样,并统计相同字符的个数,因此,答案为Mid(s1,i,1)=(s,i,1)。③处代码中的p表示正确率,p正确字符/总字符数*100,因此,答案为c / n * 100。
答案 ①Text1.Text ②Mid(s1,i,1)=(s,i,1)
③c / n * 100
4.下列VB程序的功能是:在文本框Text1中输入十进制数x,单击“转换”按钮,在标签Label3上显示该十进制数对应的二进制数。程序运行界面如图a所示。
         图a          图b
(1)在设计程序界面时,应使用图b所示“控件工具箱”中的________(填写相应编号)添加“Text1”文本框。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim x As Integer, r As Integer, s As String
 x = ______①______
 s = “ ”
 Do While x < > 0
________②______
s = Str(r)+s
x = x 2
 Loop
______③______
End Sub
解析 本题主要考查解析算法的基本思想及程序实现。变量x用于存储输入的整数,得出第一空为Val(Text1.Text)。十进制转换为二进制方法为:除2取余,直到商为0,最后将余数倒过来写即为二制数。每一次循环都需要除2取余,得出第二空为r = x Mod 2。最终将转换好的二进制数(字符串形式)在标签上输出,得出第三空为Label3.Caption = s。
答案 (1)2 (2)①Val(Text1.Text) ②r = x Mod 2
③Label3.Caption = s
课件13张PPT。第4节 Do循环结构Do语句【典例1】 Do循环执行过程填空。解析 本题主要考查Do循环语句。判断循环变量是否小于10,成立继续循环,否则跳出循环。
答案 4 4 8 8 12 12【变式训练】 Do循环执行过程填空。解析 本题主要考查Do循环语句。判断循环变量是否小于10,成立继续循环,否则跳出循环。
答案 1 “1” 2 “12” 3 “123” 4 “1234” 5【典例2】 有如下程序段:Dim a As Integer, b As Integer, c As Integer
a = 20:b = 0:c = 2
Do While a > b And a > c
  b = b + 1
  c = c + b
Loop
该程序段运行后
(1)语句“b=b+1”执行的次数为__________。
(2)变量c的值为__________。解析 本题主要考查Do循环语句。每次循环结束后变量b和c的值依次为1、3,2、5,3、8,4、12,5、17,6、23。
答案 (1)6 (2)23【典例3】 有如下VB程序段:n = 20: s = “ ”
Do While n < > 0
r = n Mod 2
s = Str(r) + s
n = n 2
Loop
Label1.Caption = s
该程序段运行后标签Label1上显示的内容是(  )
A.10100 B.00101 C.1010 D.0010解析 本题主要考查Do循环语句。第1次循环结束后r=0,s=“0”,n=10;第2次循环结束后r=0,s=“00”,n=5;第3次循环结束后r=1,s=“100”,n=2;第4次循环结束后r=0,s=“0100”,n=1;第5次循环结束后r=1,s=“10100”,n=0。答案 A【典例4】 小明编写程序实现计算1+2+3+……+n。程序功能如下:程序运行时,在文本框Text1中输入n,单击“计算”按钮Command1,在文本框Text2显示计算结果。程序运行如图所示。(1)若将该窗体的标题修改为“前n项之和”,则修改该窗体的________(单选,填字母:A.Text/B.Name/C.Caption)属性。(2)实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer
Dim n As Integer
Dim s As Long
____ ①____
i = 0
Do While i < n
  i = i + 1
  ____②____
Loop
Text2.Text = Str(s)
End Sub解析 本题主要考查Do循环语句。(1)文本框对象修改Text属性,窗体对象修改Caption ,Name为对象的名称。(2)通过联系循环条件Do While i < n 可知需要对变量n进行赋值,结合题意得出第一空为:n = Val(Text1.Text)。每次循环时i的值变化为0、1、2、3……,需要计算1+2+3+……+n,则只需将每次变量i的值累加到变量s中即可,所以第二空代码为s = s + i。答案 (1)C (2)①n = Val(Text1.Text) ②s = s + i【方法总结】 在Do While循环中,需要在循环前给变量赋初值;循环变量值的变化需要在循环体中用语句实现。
同课章节目录