资源简介 第4节 Do循环结构考试内容考试要求Do语句格式cDo语句应用cDo语句Do While 条件表达式语句1语句2 (循环体)……Loop每次返回重新判断条件是否成立,成立继续循环【典例1】 Do循环执行过程填空。s = 0Do While s < 10s = s + 4Loop第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 = 1Do While i<5 s = s + Str(i) i = i + 1Loop第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 Integera = 20:b = 0:c = 2Do While a > b And a > c b = b + 1 c = c + bLoop该程序段运行后(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 < > 0r = n Mod 2s = Str(r) + sn = n 2LoopLabel1.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 IntegerDim n As IntegerDim s As Long①____i = 0Do While i < n i = i + 1 ____②____LoopText2.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 = 0Do While n <= Len(s)n = n + 1ch = Mid(s, n, 1)If ch >= “A” And ch <= “Z” Then c = c + 1LoopLabel1.Caption = Str(c)该程序段运行后标签Label1上显示的内容是( )A.0 B.1 C.2 D.3解析 本题主要考查Do循环语句和分支结构。在Do循环中,n是小于等于7的整数时,执行循环体,行If语句用来判断取出的第i个字符是否是大写字母,是则将c递增1。在字符串s中,有2个大写字符,故c=2。答案 C2.有如下VB程序段:n = Val(Text1.Text)sum=nk=4Do while nk>0 sum=sum+nk n=nk+n mod kLoopText2.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。答案 D3.有如下VB程序段:Ins=Text1.Textn=Len(Ins)Outs=Mid(Ins,1,1)i=2Do While Mid(Ins,i,1)>=Mid(Outs,i-1,1) Outs=Outs+Mid(Ins,i,1) i=i+1LoopText2.Text=Outs在文本框Text1中输入“Happy2018” ,执行该段程序后,文本框Text2中显示的是( )A.Ha B.HappyC.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 = s2End Sub已知大写字母 A 的 ASCII 码为 65。运行上述程序,若文本框 Text1 中的内容为 “A1b2C3”,单击命令按钮 Command1,标签 Label1 中显示的是( )A.A1b2C3 B.3C2b1AC.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” 。答案 D2.某Visual Basic程序如下:Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0:i=10 Do While i<=2sum = sum + i i=i-2 Loop Text1.Text = Str(sum)End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是( )A.sum = 0 B.Do While i<=2C.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<=nIf ____②____ Then c = c + 1i=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 * 1004.下列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 Integera = 20:b = 0:c = 2Do While a > b And a > c b = b + 1 c = c + bLoop该程序段运行后(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 2LoopLabel1.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 IntegerDim n As IntegerDim s As Long____ ①____i = 0Do While i < n i = i + 1 ____②____LoopText2.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循环中,需要在循环前给变量赋初值;循环变量值的变化需要在循环体中用语句实现。 展开更多...... 收起↑ 资源列表 第4节 Do循环结构.doc 第三单元第4节 Do循环结构.pptx