2023-2024学年粤教版高一上学期选修1第二章第4节程序的循环结构

2024-07-01
| 17页
| 49人阅读
| 0人下载

内容正文:

2023-2024学年粤教版高一上学期选修1第二章第4节程序的循环结构 一、选择题 1.有百位和个位未知的4位整数“3*9*”,能同时被37与12整除。以下VB程序段的功能是:在满足条件的所有数中,将最小一个4位数的百位与个位依次显示在文本框Text1中。 i = 0: flag = False Do While i <= 9 And Not flag For j = 0 To 9 flag = True Exit For End If Next j i = i + 1 Loop 方框中的代码由以下三部分组成: ①If s Mod 12 = 0 And s Mod 37= 0 Then ②s = 3 * 1000 + i * 100 + 9 * 10 + j ③Text1.Text = Str(i) + Str(j) 下列选项中代码顺序正确的是( ) A.②①③ B.②③① C.①②③ D.①③② 2.以下是依据对分查找思想,设计的一个三分查找程序。已知数组a(1 To 10)中的数据分别是12、21、34、45、59、63、72、86、94、100,当在文本框Text1中输入“34”时,输出“34”的位置值“3”,当输入“33”时,输出“33”邻近数的位置值“23”。实现该功能的VB程序段如下: Key = Val (Text1. Text) i=1 : j=10 flag = False Do While i < = j And Not flag mid1= Int (i + (j-i) /3) mid2= Int (j - (j-i) /3) If Key = a(mid1) Or Key = a (mid2) Then flag = True ElseIf Key < a (mid1) Then ______(1)______ ElseIf Key > a (mid2) Then ______(2)_______ El se i=mid1 + 1 j=mid2 - 1 End If Loop If _______(3)_______ Then List2. AddItem Str (mid1) ElseIf flag Then List2. AddItem Str (mid2) Else List2. AddItem Str(j) + Str (i) End If 上述程序中方框处可选语句为 ①i=mid1+1;② i=mid2+1;③ j=mid1-1;④ j=mid2-1;⑤ Key=a(mid1);⑥ flag And Key=a(mid1),则(1)、(2)、(3)处语句依次是(   ) A.④②⑤ B.③②⑥ C.②③⑥ D.④③⑤ 3.有如下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 4.某算法的流程图如下图所示。 当输入x的值为100时,在标签Label1中输出的内容为(    ) A.4 B.33 C.36 D.48 5.有如下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 6.有如下VB程序段: s=“Good Luck 2019!” n=0:m=0:k=0 For i=1 To Len(s) ch=Mid(s,i,1) If ch >=”0”And ch<=”9” Then m=m+1 Else If ch>="a” And ch<=”z” Then n=n+1 Else k=k+1 End If Next i 执行该程序段后,变量k的值为(     ) A.2 B.3 C.4 D.5 7.有如下VB程序段: . i = 1 Do While i < = 6 a(i) = Int(Rnd* 10) + 1 If a(i)Mod 2 = I Mod 2 Then i=i-1 Else If I Mod 2 = 0 Then a(i) =a(i – 1) + a(i) End If i=i+1 Loop 执行该程序后,a(1)-a(6) 各元素不可能的值是(   ) A.6,13, 8,11, 6, 17 B.8,11,4,5,8,17 C.8,9,8,17,10,11 D.6,13,6,9,4,9 8.判断非重字符串s2(至少含2个字符)是否为s1的子集,若s2的字符按序在s1中出现,则称s2为s1的子集。例:s1="a3bcd",s2="ab",s3="ba",则s2是s1的子集,s3不是s1的子集。实现该功能的 VB 程序段如下:   s1 = Text1.Text : s2 = Text2.Text   i = 1 : j = 1   Do While i <= Len(s1) And j <= Len(s2)      If Mid(s1, i, 1) = Mid(s2, j, 1) Then    (1)            (2)      Loop   If    (3)    Then Label1.Caption = "是子集" Else Label1.Caption = "不是子集" 上述程序填空处的可选语句为: ①i = i + 1    ②j = j + 1     ③i > Len(s1)     ④j > Len(s2) 则(1)(2)(3)处语句依次最合理的搭配为(    ) A.①②③ B.②①③ C.①②④ D.②①④ 9.某 VB 程序段如下: Dim a(1 To 3) As Single,i As Integer Randomize a(1) = 1 For i =2  To 3 a(i) = (Int(Rnd() * 3)) *2- 2 a(i) = Abs(a(i - 1)) / Sqr(a(i)) Next i List1.AddItem Str(a(i)) 运行该程序段,下列错误提示不可能会出现的是(   ) A.下标越界 B.无效的过程调用或参数 C.类型不匹配 D.除数为零 10.有如下VB程序段: i = 0: j = 1 Do While j <= 5   If a(j) <> 0 Then i = i + 1: a(i) = a(j)   j = j + 1 Loop For j = i + 1 To 5   a(j) = 0 Next j 数组元素a(1)到a(5)的值依次为“0,20,0,4,31”,执行该程序段后,a(1)~a(6)各元素的值依次为(   ) A.4,20,31,0,0 B.31,20,4,0,0 C.0,0,20,4,31 D.20,4,31,0,0 11.有如下VB程序段: Private Sub Command1_Click() Dim s As String, ch As String Dim n As Integer, t As Integer, c As Integer s = "Go-2020-12" n = Len(s):t = 0 For i = 1 To n       ch = Mid(s,i,1)       If ch >= "0" And ch <= "9" Then         t = t + Val(ch)       Else         c = t:t = 0       End If Next i Label1.Caption = Str(c) End Sub 执行完以上程序段后,标签Label1上显示的内容为(   ) A.7 B.2 C.3 D.4 12.字符串中任意个连续的字符组成的子序列成为该字符串的子串,如字符串“123”的子串有“123”,“23”,“12”,“3”,“2”,“1”.按上述顺序输出字符串s所有子串的VB程序段如下: s=Text1.Text:List1.Clear len1=Len(s)         ‘① For i=len1 To  1    step-1   ‘② For j=1 To len1-i    step-1   ‘③ List1.AddItem Mid (s,j,i)   ‘④ Next j Next i 运行时发现未输出所有子串,经调试发现需要改动的是(    ) A.将①处改为:len1=Len(s)+1 B.将②处改为:Fori=1 To 1en1 C.将③处改为:For j=len1-i+1 To1 step-1 D.将④处改为:List1.AddItem Mid (s,j,i) 13.有如下VB程段: Private Sub Command1_Click() Const n = 8 Dim i As Integer, a As Integer, s As String Randomize i=1 s = s + Str(Int(Rnd * 19) + 1) Do While i < n a = Int(Rnd * 19) + 1 If a Mod 2 = i Mod 2 Then s = s + Str(a) i = i + 1 End If Loop Text1.Text = s End Sub 运行程序后,文本框 Text1 中可能出现的是(  ) A.4 13 20 9 14 19 4 9 B.7 8 19 8 7 18 3 1 C.6 19 12 19 16 11 10 11 D.15 18 7 18 19 12 5 11 14.某算法的部分流程图如图所示,执行该流程,以下说法正确的是(  )        A.第一次循环结束时,x 的值为 125 B.第一次循环结束时,y 的值为 15 C.循环结束时,输出 y 的值为 521 D.循环结束后,x<>0 执行了 3 次 15.有如下VB程序: Function f(i As Integer) If i=1 Then f=2 Else f=2 * 10^(i-1)+f(i-1) End If End Function Private Sub Command1_Click() Dim n As Integer,s As Integer,i As Integer n=Val(Text1.Text) s=0 For i=1 To n s=s+f(i) Next i Labell.Caption=Str(s) End Sub 若在Textl中输入5,则Labell中显示的内容为(    ) A.22222 B.24690 C.20000 D.2468 二、填空题 16.运行以下VB程序,结果是 。 17.机器人灭火:下图为着火点搜索范围和机器人的智能程序。黑色区域表示障碍区,不能通行;红色星状图为着火点。机器人用箭头表示,箭头方向为机器人的前进方向,机器人会按智能程序要求进行搜索,直至完成灭火任务。完成灭火任务后,输出的i值为   。 18.为分析数组a中各元素依次变化的情况,进行如下定义:     变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。     波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。     对称波峰:上升段与下降段个数相同的波峰称为对称波峰。 下图为一组数据的变化段及波峰示意图。 现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计如下VB程序。请回答下列问题: (1)数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为 。 (2)请在划线处填入合适的代码。 Const n = 20 Dim a(1 To n) As Integer Private Sub Form_Load() '读取数据,并存储到数组a中,代码略 End Sub Private Sub Command1_Click() Dim flag As Integer  '存储变化段的状态:1表示升,-1表示降,0表示平 Dim count As Integer '存储对称波峰段的个数 Dim steps As Integer Dim i As Integer flag = 0: steps = 0: count = 0 For i = To n If a(i) > a(i - 1) Then If IsSymPeak(flag, steps) Then count = count + 1 If flag = 0 Or flag = -1 Then Else steps = steps + 1 End If flag = 1 ElseIf a(i) = a(i - 1) Then If IsSymPeak(flag, steps) Then count = count + 1 steps = 0 flag = 0 Else            steps = steps - 1 flag = -1 End If Next i If IsSymPeak(flag, steps) Then count = count + 1 Text1.Text = Str(count) End Sub Function IsSymPeak(flag As Integer, steps As Integer) As Boolean If Then IsSymPeak = True Else IsSymPeak = False End If End Function 19.计算1+2+3+4+…+N>2020的最小N值,采用图示算法。 在①处应填写 , ②处应填写 。 三、操作题 20.某日期加密授权码生成方法描述如下: (1)授权码由10位字符组成,前8位为日期的密文,后2位为验证码; (2)从右往左依次取日期的每一位字符,若该字符第一次出现,则直接取其对应的加密字符,否则取下一个不重复的加密字符。按此操作,依次取出该日期余下各位对应的加密字符;如日期为20201223,则依次取出的字符为“3、2、2、1、0、2、0、2”。 (3)求出所有日期字符数值的和,将和除16取余加1得到一位验证码字符;若和不小于16,则将和除16取整加1得到另一位验证码字符,否则另一位验证码字符为小写字母“x”。取出验证码重复时,处理规则与(2)相同。 加密(验证码)字符对应表如下: 值(十进制) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 加密(验证码)字符 A K p j L t W b m a P F Z q y c 设计一个生成8位日期(YYYYMMDD格式)授权码的VB程序。程序功能如下:在文本框text1中输入一个8位有效日期,单击“授权码”按钮comand1,在标签labe12中显示出该日期的授权码。运行效果如图所示。 (1)若输入的日期是“20210108”,则labe12上显示内容为 (2)实现上述功能的VB程序段如下,请在划线处填入合适代码。 Dim f(0 To 15)As Integer Const code = "AKpjLtWbmaPFZqyc" Private Sub Comand1_Click() Dim rq As String,sq As String Dim c As Integer,i As Integer,d As Integer For i = 0 To 15 f(i)= 0 Next i rq = Text1. Text sq="":d= 0 If Len(rq) <> 8 Then Labe12. Caption ="请重新输入8位日期" Else For i = 1 To 8 c = Val(Mid(rq,i,1)) d =d + c sq =① Next i If d >= 16 Then yz = getchar(d Mod 16 + 1) + getchar(d  16 + 1) Else yz = getchar(d Mod 16+ 1) + "x" End If Labe12. Caption = sq + yz End If End Sub Function getchar(x As Integer) As String'获取不重复的加密字符 Dim flag As Boolean flag = False Do while flag = False f(x)=f(x)+ 1 If f(x)= 1 Then getchar =② f(x)=f(x)+ 1 flag = True Else ③ End If Loop End Function 四、简答题 21.将一张面值为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 22.在“抗击疫情,‘宅’出精彩”征文活动中,每位选手可以提交一篇作品。活动以互评的形式展开:每位选手对m篇作品进行打分(本人作品回避),方法如下: ① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。 4 1 5 2 3 a(1)~a(n)中存储第一个分配方案 2 3 4 5 1 a(n+1)~a(2*n)中存储第二个分配方案 ↑第i列中的作品拿给i号参赛者打分 图a ②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。 ③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。 小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。 请回答下列问题: (1)n=5,m=3,a(1)~a(10)中的数据如图a所示,a(11)~a(15)的数据可能是 (单选,填字母:A.5 4 3 1 2/B.5 4 1 3 2/C.3 4 5 1 2) (2)请在划线处填入合适的代码。 Dim n As Integer   '总人数/总作品数 Dim m As Integer   '每人分配篇数 Dim a(1 To 500) As Integer  '数组a大小满足处理要求 Dim c(1 To 100) As Integer  '数组c大小满足处理要求 Private Sub Command1_Click()     Dim i As Integer, j As Integer, k As Integer     n = Val(Text1.Text): m = Val(Text2.Text)     Randomize     i = 1     Do While i <= m       For j = 1 To n         c(j) = 0    '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1       Next j       For j = 1 To n           If j = n - 1 And c(n) = 0 Then              ①           Else              k = r(n, j)           End If           a((i - 1) * n + j) = k    '分配数字k到当前方案的第j个位置上           c(k) = 1       Next j            If   ② Then i = i + 1         Loop     s = ""     For i = 1 To n         s = "参赛者" &amp; i &amp; ":"         For j = 1 To m             s = s + Str(a((j - 1) * n + i))+ ","         Next j         List1.AddItem s         s = ""     Next i End Sub Function r(x As Integer, y As Integer) As Integer   '生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0 End Function Function check(c As Integer) As Boolean    '本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE   Dim p As Integer,f As Boolean   f = True   p = 1   For i = 1 To c * n        If ③ Then            f = False: Exit For         End If         p = p mod n +1      Next i      check = f End Function 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 2.B 3.C 4.C 5.D 6.D 7.A 8.D 9.C 10.D 11.D 12.C 13.C 14.C 15.B 16.28 17.8 18. 3 2 steps=1 flag=-1 And steps=0或其他等价表达式 19. s<=2020 print N-1 20. mWtLKjApcx getchar(c)+ sq Mid(code,x + 1,1) x =(x + 1)mod 16 21.①100-i-j ②5*i+j+0.5*k=100 22.(1)B   (2)①k= n         ②check(i - 1)        ③a(i) = a(c * n + p) 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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