第3节 循环结构程序

2024-06-02
| 15页
| 72人阅读
| 0人下载

内容正文:

第3节 循环结构程序 一、选择题 1.有如下VB程序段: s = "   " For i= 2 To 5 For j =i To 5 If j Mod i= 0 Then a(j)= a(j)+1 Next j Next i For i = 1 To 5 If a(i)<> 1 Then s = Str(i)&amp;.s Next i Text1. Text = s 若数组a的初始值都为0,则运行该程序段后,Text1中显示的内容为(    ) A.14 B.235 C.532 D.41 2.以下程序,展现了伏地魔7个魂器由多至无的变化过程,其中能正确显示结果的有(  )个。 A.1 B.2 C.3 D.4 3.将正整数n 分解为连续正整数之和(如正整数9 分解为2+3+4、4+5 两种)。统计分解方法共有几种的VB 程序段如下: ans = 0 n = Val(Text1.Text) For i = 1 To n \ 2 t = n: x = i Do While t > 0 Loop Next i Text2.Text = Str(ans) 方框中的代码由以下三部分组成: ①If t = 0 Then ans = ans + 1    ② t = t - x    ③ x = x + 1 下列选项中,代码顺序正确的是(   ) A.③①② B.②①③ C.①③② D.①②③ 4.某算法的部分流程图如图所示。执行这部分流程,输出s,i的值分别是(  ) A.84,8 B.84,7 C.63,8 D.63,7 5.某算法的部分流程图如图所示,执行这部分流程后,变量a的值是() A.4 B.2 C.22 D.46 6.有如下VB程序段: Dim flag As Boolean s=Textl.Text:j=0:cnt=1 Fori=l To lean(s) c=Mid(s,i,l) If c>="0" And c<="9" Then j=j+1 flag=True Else If j>lenmax And cnt Mod 2=l Then lenmax=j j=0 If flag Then cnt=cnt+1:flag=False End If Next i Text2.Text=Str(lenmax) 在文本框Text1输入“one302type27645time9986”,程序运行后文本框Text2中显示为(      ) A.12 B.5 C.3 D.4 7.已知由字母组成的字符串s,现要实现如下功能:将字符串s中的字母按照26个英文字母顺序依次输出(重复出现的字母只需输出一次)。如s="Congratulate",输出结果为"aceglnortu",为实现上述功能,在横线处填入的代码应该是(   ) Dim a(1 To 26)As Integer     s=Text1. Text     For i=1 To Len(s)      ① If c>="A" And c<="Z" Then c=Chr(Asc(c)+32)      ② Next i For i=1 To 26    If a(i)<> 0 Then Label1.Caption= Label1.Caption+ ③ Next i A.①c=Mid(s,i,1)②a(Asc(c)-96)=a(Asc(c)-96)+1③Chr(96+i) B.①c=Mid(s,i,1)②a(i)=a(i)+1③Chr(a(i)) C.①c=Mid(s,i,1)②a(Asc(c)-96)=a(Asc(c)-96)+1③Chr(a(i)) D.①c=Mid(s,i,1)②a(i)=a(i)+1③Chr(96+i) 8.有如下VB程序段: s1 = "2019GaoKao" For i = 1 To Len(s1) ch = Mid(s1, i, 1) If ch >= "0" And ch <= "9" Then ch = Str((Val(ch)+1)Mod 10) s2 = ch + s2 ElseIf ch >= "a" And ch <= "z" Then ch = Chr(Asc(ch) - 32) s2 = s2 + ch End If Next i 该程序运行后,s2的值是(    ) A."A0A00213" B."0213A0A0" C."02130A0A" D."0A0A0213" 9.某算法的部分流程图如下图所示,输入s=11200,执行这部分流程后,输出m和n的值分别是(    ) A.14    4 B.21    4 C.22    5 D.42    5 10.有如下 VB 程序段: For i = 1 To 8 a(i) = Int(Rnd * 7) + 1 Next i For i = 1 To 3    For j = 1 To 8 - 2 * i      If a(j) Mod 7 > a(j + 2) Mod 7 Then               t = a(j): a(j) = a(j + 2): a(j + 2) = t      End If       Next j Next i For i = 1 To 8    ch(i) = Chr(a(i) + Asc("A") - 1) Next i 执行该程序段后,ch(1)~ch(8)各元素值不可能的是(   ) A.AACBFBFE B.GGABCDDE C.ABBBCDDE D.ABBCDDEG 11.有如下VB程序段: n = 7 d(1) = 123: d(2) = 35: d(3) = 43: d(4) = 23: d(5) = 56: d(6) = 78: d(7) = 132 k = 1 For i =2 To n For j = (1) If (2) Then tmp = d(j): d(j) = d(j + 2): d(j + 2) = tmp End If Next j k = -k Next i 执行该程序段后,d 数组各元素为“132,23,123,35,56,78,43”,上述程序段中方框处可选语句为: ①i -1 To n - 2 ②1 To n - i ③d(j) * k > d(j + 2) * k ④d(j) * (-k) > d(j + 2) * (-k) 则(1)(2)处语句依次可为(   ) A.①③ B.②③ C.①④ D.②④ 12.有如下VB程序段: Dim i As Integer,c As String,s As String,t As String s=“China2014IT”:t=“” For i=1 To Len(s)  c=Mid(s,i,1)  If c>=“a” And c<=“z” Then t=t+c Next i Label1.Caption=t 该程序段运行后,标签Label1中显示的内容是(        ) A.2014 B.ChinaIT C.hina D.CIT 13.在VB中,循环结构 For i = 1 To 10 的步长是(   )。 A.0 B.-1 C.1 D.10 14.某算法的部分流程图如图所示,执行这部分流程后,变量x的值是(  ) A.5 B.6 C.10 D.15 15.以下关于循环结构的描述中,正确的是( )。 A.与分支结构不同,循环结构一定会对循环条件进行多次判断。 B.循环结构中,重复执行的内容有时候一次都不被执行。 C.在循环结构的流程图中,除了有向下的流程线外还应有向上返回的流程线。 D.根据实际需要,在流程图中可出现多个循环结构。 二、填空题 16.有如下Visual Basic程序段: s=0 n=1 for i=4 to 1 step -1 n=n*i s=s+n next i 问:该程序段运行后, (1)共循环___________次。 (2)变量s的值是___________。 17.运行下列程序,正确的结果是 s=0 for i in range (1 5):     s=s+i print("i=",i,"s=",s) 18.计算1+2+3+4+…+N>2020的最小N值,采用图示算法。 在①处应填写 , ②处应填写 。 19.袜子颜色配对问题。现有不同颜色的袜子若干(袜子的颜色用数字编号1~15表示),颜色相同的袜子才能组成一双,其中有几只袜子是落单的,现要求找出落单袜子的颜色以及能够配对的袜子数量。编写程序解决该问题,程序运行时,在文本框Text1中依次输入袜子的颜色编号(数据都用逗号分隔并以逗号结尾),单击“查找”按钮,在列表框List1中输出落单袜子的颜色编号,在标签label1中现实能配对的袜子数量。运行界面如图所示,实现上述功能的VB程序如下。 请回答下列问题: (1)写出VB代码中的方法名 (只需填一个方法名); (2)根据题意,请在划线处填入合适代码; (3)加框处程序代码有错,请改正。 Const n = 15 Private Sub Command1_Click()   Dim a(1 To n) As Integer  '数组a存放不同颜色袜子的数量,默认值为0   Dim s As String, ch As String   Dim c As Integer, i As Integer, t As Integer     List1.Clear     s = Text1.Text     t = 0 :c = 0 : i = 1     Do While i <= Len(s)         ch = Mid(s, i, 1)         If ch >= "0" And ch <= "9" Then             t = t * 10 + Val(ch)         Else             a(t) =             t = 0         End If         i = i + 1     Loop     For i = 1 To n         If Then List1.AddItem "落单袜子的颜色为" + Str(i)         c =          Next i     Label1.Caption = "能配对的袜子有" + Str(c) + "双" End Sub 20.某密文是由一串数字加密得到,其解密规则是:①对连续重复的大写字母,仅保留1个;②在去重后的文本中,从首字符开始间隔5个字符取1个,依次连接取出的字符,即为明文。 编写解密的VB程序,功能如下:在文本框Text1中输入密文,单击“解密”按钮Command1,在文本框Text2中显示去重后的文本,并在标签Label1中显示明文。程序运行界面如图所示。 (1)命令按钮Command1上显示的“解密”文字,是通过修改该按钮的____________(单选,填字母:A.Font/   B.Caption/ C. BackColor)属性实现的。 (2)实现上述功能的VB程序如下,请在划线处填入合适的代码。 Private Sub Command1 Click() Dim s1 As String,s2 As String,c As String,mw As String Dim i As Integer s1= Text1.Text s2 = Mid(s1,1,1) For i=2 To ① c=Mid(sl.i.1) If c>="A" And c<= "Z" Then If ② Then s2 =s2 +c Else s2 =s2+c End If Next i mw=“” i=6 Do While i<= Len(s2) mw = mw + Mid(s2, i, 1) ③ Loop Text2. Text= s2 Label1. Caption =mw End Sub 三、操作题 21.学校创客社团开展机器人比赛活动,其中设置了机器人循迹项目。比赛规则如下:给出10*10规模的矩阵地图,随机设定4个循迹点,小车以蛇形路线找到循迹点后,计算最长的两点直线距离。矩阵图中以0表示非循迹点,1表示循迹点,循迹过程如图a所示:编写一个VB程序实现如下功能:单击“开始循迹”按钮Command1,呈现10*10矩阵地图,并随机生成4个循迹点,分别用数字1表示,数字0表示非循迹点;计算4点中相距最远的两点的直线距离,显示在标签Label1中。程序运行界面如图b所示。    图a                                                                                              图b (1)若随机生成的4个循迹点如图a所示,则该4点中相距最远的两点直线距离为 。 (2)实现上述功能的VB程序如下,请在划线处填入合适的代码。 Const n = 10, m=4 Dim b(1 To 8) As Integer Private Sub Command1_Click() Dim f(1 To n * n) As Integer Dim i As Integer, j As Integer, w As Integer, k As Integer Dim length As Single, maxlen As Single, s As String ‘生成矩阵地图和随机生成4个循迹点,0表示非循迹点,1表示循迹点,存于数组f中For i = 1 To n^2 ‘显示矩阵地图和4个循迹点 s = s + Str(f(i)) If i Mod n = 0 Then List1.AddItem s s="" End If Next i w = 1 For i = 1 To n For j = 1 To n k = (n + 1) * ((i-l) Mod 2)+(-1)^(i-1)*j If ① Then‘记录循迹点所在位置 b(2 * w - 1) = i: b(2 * w) = k w = w + 1 End If Next j Next i i=1 : maxlen = 0 Do While i<= m - 1 For j=i+1 To m    ② If length > maxlen Then maxlen = length Next j i = i + 1 Loop Label1.Caption = Str(maxlen) End Sub Function reck(x As Integer, y As Integer) As Single Dim c As Integer, d As Integer Dim h As Single c = ③ d = Abs(b(2 * x)-b(2 * y)) h= Sqr(c^2+d^ 2) reck = h End Function 22.【加试题】小王编写了一个实现文字查找替换功能的VB程序,运行界面如图所示。文本框Text1显示原文内容,Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Command1后,Text4显示查找替换的结果,Text5中显示替换的次数,Text6显示“查找内容”在原文中的起始位置。 实现上述功能的VB程序如下,但加框处代码有错,请改正。 Private Sub Command1_Click()   Dim s As String, result As String, pos As String   Dim count As Integer, i As Integer   i = 1: count = 0   result = "": pos = ""   Do While i <= Len(Text1.Text)     s = Mid(Text1.Text, i, Len(Text2.Text))     If s = Text2.Text Then       result = result + Text3.Text       count = count + 1       pos =  pos + Str(count)         i = i + Len(Text2.Text)     Else       result = result + Text2.Text       i = i + 1     End If       Loop   Text4.Text = result   Text5.Text = Str(count)   Text6.Text = pos End Sub 四、简答题 23.将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合? Dim i,j,k As Integer ′ i,j,k用于记录5元,1元,0.5元的张数 Print“5元    1元    0.5元” For i=1 To 20 For j=1 To 100-i k=__①__ If__②__Then Print i,j,k ′分别输出i,j,k三个变量。 End If Next j Next i 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 2.C 3.B 4.A 5.D 6.C 7.A 8.B 9.C 10.D 11.D 12.C 13.C 14.A 15.BCD 16.(1)4   (2) 64 17.i=4  s=10 18. s<=2020 print N-1 19. Clear      或    AddItem a(t) + 1 a(i) Mod 2 = 1 c + a(i) \ 2 20.(1)B (2)①Len(s1)或 Len(Text l. text)或其他等价表达式。 ②c<>Mid(sl,i-1,1)或c<>Mid(s2,Len(s2),1)或c<>Mid(s2,Len(s2))或其他等价表达式。 ③i=i+6 或其他等价语句 21. 5 f((i-1)*n+k)=1 length= rec(i,j) Abs(b(2 * x-1)-b(2 * y-1)) 22.(1)pos+Str(i) (2)result=result+Mid(Text1.Text,i,1) 23.①100-i-j ②5*i+j+0.5*k=100 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第3节      循环结构程序
1
第3节      循环结构程序
2
第3节      循环结构程序
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。