2023-2024学年高一上学期选修一第二单元第四节 循环结构

2024-06-28
| 13页
| 21人阅读
| 0人下载

内容正文:

2023-2024学年高一上学期选修一第二单元第四节 循环结构 一、选择题 1.有如下图所示的流程图,根据此流程图可知,最后s的值为(   )       A.10 B.32 C.46 D.94 2.有如下VB程序段: s = "1867234590" : n = Len(s) m = 1 For i = 1 To n       ch = Val(Mid(s, i, 1))       If ch Mod 2 <> 0 Then          m = m + ch       End If Next i Text1.Text = Str(m) 该程序段运行后,文本框Text1中显示的内容是( ) A.25 B.5 C.26 D.15 3.有如下VB程序段: Private Sub Command1_Click()   Dim i As Integer, j As Integer, n As Integer,st as String   n = Val(Text1.Text)   For i = 1 To n       For j = 1 To i Step 2           st = st + "*"       Next j       List1.AddItem st   Next i End Sub 该程序段运行时,在文本框Text1中输入5,则在列表框输出的内容为(  ) A. B. C. D. 4.某算法的部分流程图如图所示,执行这部分流程后,输出a,b的值分别是(    ) A.5,8 B.4,8 C.5,11 D.4,11 5.有如下python 程序段: s = "1010/1100/1111" ans,t = 0,0 for i in s: if "0" <= i <= "1": t = t * 2 + int(i) else: ans += t t = 0 print(ans) 运行该程序段,输出结果是(   ) A.12 B.15 C.22 D.37 6.已知字符串 s 是由字母和数字组成的,现要用 VB 程序实现如下功能,将字符串中的数字字符按照原有顺序移动到 s 的左边,字母字符按照原有顺序移动到字符串右边,如 s=“Su2cc0ess20”执行完程序后变成 s=“2020Success”,为实现上述功能,在横线处填入的代码应该是(   ) m=0:k=0 For i = 1 To Len(s)   ch = Mid(s, i, 1) k = k + 1    If ch >= "a" And ch <= "z" or ch >= "A" And ch <= "Z" Then     a(k) = ch   Else     m = m + 1: ①     Do While j > m ②       j = j - 1     Loop ③   End If Next i n = Len(s): s = "" For i = 1 To n   s = s + a(i) Next i A.①j=k ②a(j)=a(j-1) ③a(m) = ch B.①j=k ②a(j)=a(j+1) ③a(j+1)=ch C.①j=k-1  ②a(j)=a(j-1)  ③a(m) = ch D.①j=k-1   ②a(j)=a(j-1)   ③a(j+1)=ch 7.在VB 中,用来实现循环结构的语句是 (   ) A.For…Next B.Do While…Loop C.If…Then… D.Do…Loop Until 8.下列不是Visual Basic程序的基本结构的是(    )。 A.顺序结构 B.树形结构 C.分支结构 D.循环结构 9.小明想用数据移位思想将一段长度为n的序列a(n), 以t位置为分界,把前t-1个数和后n-t+1个数调换前后顺序,但保持每段中数据的相对位置不变。例如一段长度为6的序列1、2、3、4、5、6。t=4时,数组a中元素顺序变成4、5、6、1、2、3.实现上述功能的代码如下,下列①、②处填写正确的是(  ) t = Val(Text1. Text): m= 2 For i=t-1 To 1 Step-1 k = a(i) For j=i To n- 1 ① Next j ② n=n-1 Next i A.①a(j+1)=a(j)②a(j+1)=k B.①a(j)=a(j+1)②a(j+1)=k C.①a(j+1)=a(j) ②a(j)=k D.①a(j)=a(j+1) ②a(j)=k 10.某算法的流程图如下图所示。执行这个流程图时依次输入5、4、6、-8、4、0,下列说法正确的是(   ) A.a <> 0执行了4次 B.s=s*x+a语句执行了5次 C.输出的s值是表达式4*54+6*53-8*52+4*5的值 D.输出的s值是表达式4*53+6*52-8*5+4的值 11.有以下VB程序段: For i = 1 To 4  For j = 4 To i + 1 Step -1     s = "*" + s    Next j    List1.AddItem s   Next i 运行上述程序段后,列表框List1中显示的结果是(  ) A. B. C. D. 12.某算法的部分流程图如图所示,若输入“50”并执行这部分流程图,变量i的值为 A.9 B.10 C.11 D.12 13.超级素数是指一个素数,每次去掉最后面的一个数字,依然为素数。如 37,去掉最后的7 后,3 仍为素数。统计 1000 以内的超级素数的个数的 VB 程序段如下: For i = 2 To 1000 flag = True:s = i Do While flag And s >1 For j = 2 To Int(Sqr(s)) If s Mod j = 0 Then Exit For End If Next j Loop If flag And s<>1 Then End If Next i Label1.caption=str(c) 上述程序段中方框处可选语句为 ①flag = False    ②c = c + 1    ③s = s \ 10 则(1)(2)(3)处语句依次可为(   ) A.①②③ B.②①③ C.③②① D.①③② 14.某算法的部分流程图如图所示。                        执行这部分流程,输入11,变量i和f的值分别是(    ) A.10,True B.10,False C.11,True D.11,False 15.某算法部分流程图如图所示。执行这部分流程,依次输入20、-3、10、8、-11、0,则输出值是(  ) A.-11 B.-3 C.8 D.20 二、填空题 16.循环次数未知时,我们通常称为 ,只有当 成立时,才执行循环体。在 python中,使用 语句来创建这类循环。 17.若已知当前的人均GDP水平和GDP年增长率,可以计算达到某个GDP水平所需年份。在文本框Text1、Text2、Text3中分别输入人均GDP、年增长率和达到的GDP水平,单击计算按钮Command1,在文本框Text4中输出所需年数。程序运行界面如下: (1)在设计程序界面时,使应使用图b所示“控件工具箱”中的 (填写相应编号)添加“计算”按钮。 (2)实现上述功能的VB程序如下,请在划线处填入合适的代码。 Private Sub Command1_Click() Dim gdp As Single,ddgdp As Single,zc As Single,y As Integer gdp=Val(Text1.Text) zc=Val(Text2.Text) ddgdp=Val(Text3.Text) y=0 Do While ____①____     ____②____ gdp=gdp*(1+zc) Loop Text4.Text=Str(y) End Sub 划线处代码为① ② 18.编程求出1+2+3+……+1000的和。该题程序设计最适合使用_____________结构。 19.阅读程序,写出运行结果 Dim i As Integer Dim x As Integer Dim y As Integer y=30 For i=1 To3 x=Val(InputBox(“x=”)) If y< x Then y=x EndIf Next i Print y 程序运行后,依次输入:36  87  51 运行后输出结果是 。 20.把一个数分成若干个自然数之和,如果要使这些自然数的乘积最大,那么这些自然数应全是2或3,且2最多不超过2个。在文本框Text1中输入一个自然数,单击“分解”按钮,在列表框List1中输出他们的乘积表达式。程序运行的界面如图所示: Private Sub Command1_Click()  Dim n As Integer,cj As Integer,s As String  n=Val(Text1.Text)  cj=____①____  s=”s=”  Do While ____②____ If n<>4 Then  n=n-3  cj=cj*3  s=s+”3×” Else  n=n-2  cj=cj*2  s=s+”2×” End If  Loop  cj=____③____  If n=3 Then s=s+”3” Else s=s+”2”  Text2.Text=s  Text3.Text=cj End Sub 划线处代码为① ② ③ 三、操作题 21.编写“序列生成”程序,实现如下功能:在文本框Text1中输入一正奇数n,单击“生成序列”按钮Command1,在文本框Text2中显示该序列,且每个元素用逗号“,”分隔。若输入一非正奇数,那么提示“输入非正奇数,请重新输入”;若输入9,那么生成的序列为“1, 2 , 3 , 4 , 5 , 4 , 3, 2 ,1”。程序运行界面如图所示。 (1)设计界面时,为清空文本框Text2的内容,可设置 属性实现。 (2)实现“序列生成”功能的VB程序如下,请在划线处填入合适的代码。 Private Sub Command1_Click() Dim n As Integer, i As Integer, mid As Integer n = If Then       Text2.Text = "输入非正奇数,请重新输入" Else   mid =  (n + 1) \ 2 Text2.Text = ""       For i = 1 To n         If i = n Then           Text2.Text = Text2.Text  +  "1"         Else           Text2.Text = Text2.Text  +   +  ","         End If       Next i End Sub 22.删数问题。输入一个数字串s,删去其中k个数字(k<数字串中数字的个数),使剩余数字在保持相对位置不变的情况下构成一个值最小的整数。例如,s=“19990608”,k=4,处理结果为:608。 删数的算法如下: (1)如果k>0,则从前往后检测相邻字符,否则,转(3); (2)①若所有相邻字符都已非降序,则将串尾k个字符删去,k值置0,转(1); ②若相邻两数存在逆序(即前一个数>后一个数),则将前一个数删除,k值变化,然后回到(1); (3)去掉串首的0,输出结果。 按照上述算法思路,编写了VB程序,功能如下:在文本框Text1中输入数字串,在文本框Text2中输入删数的个数,单击“处理”按钮Command1,在文本框Text3中显示最小的整数。程序运行界面如图所示。 (1)如果输入的数字串为“20160125”,删除个数为4,则结果是 。 (2)实现上述功能的VB程序如下,请在划线处填入合适代码。      delete函数说明:delete(st,x,y)为自定义函数,功能为在字符串st中删除x位置开始的y长度的子串。 Private Sub Command1_Click() Dim s As String, k As Integer, i As Integer, j As Integer, n As Integer s = Text1.Text k = Val(Text2.Text)        n = Len(s) Do While k > 0   i = 1   Do While i < n And ①     i = i + 1   Loop   If i = n Then      ②      n = n - k      k = 0   Else      s = delete(s, i, 1)      n = n - 1      ③   End If Loop i = 1 Do While n > 1 And Mid(s, 1, 1) = "0"    s = delete(s, 1, 1)    i = i + 1    n = n - 1 Loop    Text3.Text = s End Sub Function delete(st As String, x As Integer, y As Integer) As String   delete = Mid(st, 1, x - 1) + Mid(st, x + y) 'mid函数第3个参数省略,则截取从开始位置向右到字符串结尾的所有字符 End Function 四、简答题 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.C 4.C 5.C 6.A 7.ABD 8.B 9.D 10.D 11.A 12.B 13.D 14.C 15.C 16. 条件循环 条件 while 17. 3 ①gdp<ddgdp ②y=y+1 18.循环 19.87 20. ①1 ②n<>2 And n<>3 ③cj*n 21. Text Val(Text1.text) n mod 2 <=0 str(mid-abs(mid-i)) End If 22. 12 ① Mid(s,i,1)<=Mid(s,i+1,1) 或 Val(Mid(s,i,1))<=Val(Mid(s,i+1,1)) ② s =delete(s, n - k + 1, k) ③ k = k - 1 23.①100-i-j ②5*i+j+0.5*k=100 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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