![2.3循环结构程序同步练习人教版信息技术选修1第1页](http://www.enxinlong.com/img-preview/3/14/13988983/0/0.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.3循环结构程序同步练习人教版信息技术选修1第2页](http://www.enxinlong.com/img-preview/3/14/13988983/0/1.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.3循环结构程序同步练习人教版信息技术选修1第3页](http://www.enxinlong.com/img-preview/3/14/13988983/0/2.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
2.3循环结构程序同步练习人教版信息技术选修1
展开
这是一份高中信息技术中图版 (2019)必修2 信息系统与社会本册综合综合训练题,共13页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
2.3循环结构程序同步练习人教版信息技术选修1学校:___________姓名:___________班级:___________考号:___________ 一、选择题1.有如下VB程序段:s = 1a(1) = 1For i = 2 To 6a(i) = 2 * i + a(i - 1)If i Mod 2 = 0 Thena(i) = a(i) + 1End Ifs = s + a(i)Next iText1.Text = Str(s)程序运行时,单击按钮Command1后,文本框Text1中显示的内容是( )A.72 B.41 C.106 D.1152.数组元素a(1)到a(n*2)为互不相等的正整数(n≥1),要在其中找到最大值和次大值,并分别存储到变量m1和m2中。实现该功能的VB程序段如下: m1=0:m2=0For i=1 To n * 2 Step 2If a(i)>a(i+1)Thent1=a(i):t2=a(i+1)Elset1=a(i+1):t2=a(i)End IfIf Thenm1=t1:m2=t2ElseIf Thenm2=m1:m1=t1ElseIf Thenm2=t1End IfNext i上述程序段中方框处可选代码为:①t1>m1 ②t1>m2 ③t2>m1则(1)(2)(3)处代码依次为( )A.①②③ B.②③① C.③①② D.③②①3.有如下VB程序段:c = Text1.Texts1 = "jiayou!" s2 = s1 + s1For i =1 to len(s1)If c = Mid(s2, i, Len(s1)) Then Exit ForNext iLabel1.Caption = Str(i)程序执行完后,Label1中显示的内容是4,则Text1中输入的内容是( )A."jiayou!" B."you!jia" C."ayou!ji" D."jayou!j"4.如下VB程序段: k=0:n=Len(s)For i = 1 To n\2 k = k+Abs(Asc(Mid(s,i,1)) - Asc(Mid(s,n-i+1,1)))Next iIf k=0 Then flag=True运行后该程序段后,变量flag的值为True,s的值可能的是( )A."appyappy" B."12321" C."Appa" D."2021-2021"5.对一组正整数进行处理,要求处理后偶数在前,奇数在后,并保持相对顺序不变。Const n = 10Dim a(1 To 10) As Integer, b(1 To 10) As Integer‘数组a赋初值,代码略num = 0k = 1Do While k <= nIf ① Thennum = num + 1b(num) = a(k)Else ② End Ifk = k + 1LoopFor j = ③ a(j) = b(j - n + num)Next j将划线处的代码补充完整,正确的是( )A.①a(k) Mod 2=0 ②a(k-num)=a(k) ③n-num To nB.①a(k) Mod 2=1 ②b(k-num)=a(k) ③n-num+1 To nC.①a(k) Mod 2=1 ②a(k-num)=a(k) ③n-num+1 To nD.①a(k) Mod 2=0 ②b(k-num)=a(k) ③n-num To n6.有如下VB程序:n = 4For i = 1 To 25 j = 1: a(j) = a(j) + 1 Do While a(j) = 4 a(j) = 0 j = j + 1 a(j) = a(j) + 1 LoopNext iFor i = 1 To n s = Str(a((i + 1) Mod 4 + 1)) + sNext i数组a(1)至a(4)初值均是 0,执行该程序后,s的值是( )A."1012" B."2101" C."0121" D."1210"7.有如下VB程序以下说法正确的是( )i=1:j=10:key=Val(Text1.Text)Do While i <= jm = (i + j + 1) \ 2If a(m) >= key Thenj = m - 1Elsei = m + 1End IfLoop (程序 a)i=1:j=10: key=Val(Text1.Text)Do While i <= jm = (i + j + 1) \ 2If a(m) > key Thenj = m - 1Elsei = m + 1End IfLoop (程序b) A.若要使用程序a或程序 b查找某个数据,数组a中的数据可以是降序排序B.无论key的值是多少,执行程序a和程序b后一定有i = j + 1成立C.无论key的值是多少,执行程序a和程序b后i的值一定相同D..无论key的值是多少,执行程序a和程序b后j的值一定相同8.随机生成正整数数组a,并将数组中各元素以金字塔显示,要求对金字塔每层中的数据排序处理, 奇数行升序排列,偶数行降序排列,效果见下图。请为划线处选择合适的代码。( )Dim a(1 To 15) As Integer, num As Integer, s As String‘生成数组a,a(1)=73,a(2)=58,a(3)=62,a(4)=36…代码略Private Sub Command1_Click()’对数组进行排序 num = 5: k = 1: f = 1 For i = 1 To num k = k + i For m = k - i To ① For n = k - i To 2 * k - 2 - i - m If ② Then t = a(n): a(n) = a(n + 1): a(n + 1) = t Next n Next m f = f * (-1) Next i ’将处理后的数组,以金字塔形显示,代码略End SubA.k-1 f * a(n) < f * a(n + 1) B.k-1 f * a(n) > f * a(n + 1)C.k-2 f * a(n) > f * a(n + 1) D.k-2 f * a(n) < f * a(n + 1)9.有如下 VB 程序段:s="Cloud Computing" : s1=""For i=1 to len(s) step 2c=mid(s,i,1)If c>="a" and c<="g" thens1=chr((asc(c) - 95) mod 7 + 97) + s1End IfNext i小写字母“a”的 ASCII码是97,执行程序后,s1的值是( )A.efeb B.bf C.fb D.CdCg10.有如下VB程序段:s = "python": b = 0For i = 1 To Len(s) - 1 a = Abs(Asc(Mid(s, i, 1)) - Asc(Mid(s, i + 1, 1))) If a > b Then b = aNext iLabel1.Caption = Str(b)执行该程序段后,标签Label1上显示的内容是( )A.1 B.7 C.9 D.12 二、填空题11.袜子颜色配对问题。现有不同颜色的袜子若干(袜子的颜色用数字编号1~15表示),颜色相同的袜子才能组成一双,其中有几只袜子是落单的,现要求找出落单袜子的颜色以及能够配对的袜子数量。编写程序解决该问题,程序运行时,在文本框Text1中依次输入袜子的颜色编号(数据都用逗号分隔并以逗号结尾),单击“查找”按钮,在列表框List1中输出落单袜子的颜色编号,在标签label1中现实能配对的袜子数量。运行界面如图所示,实现上述功能的VB程序如下。请回答下列问题:(1)写出VB代码中的方法名____________(只需填一个方法名); (2)根据题意,请在划线处填入合适代码;(3)加框处程序代码有错,请改正。Const n = 15Private 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 Sub12.某学校要对班主任进行满意度调查,有20个评分项(为方便程序处理,评分项具体的名称本题中不显示,仅以序号代替),每个评分项学生可以打A、B、C 三个等级中的一个,现在已经收集所有学生对班主任的评价,为了保证隐私,不显示学生姓名,只显示班级,并存储在数据库的表中,点击command2(读取数据),读取原始数据显示在左侧list1中,左侧列表显示的原始评价数据第一条表示高二(01)班有1位同学在第9项给班主任打A,依次类推,点击command1(统计),统计出各项目的评价统计(A+B所占的百分比)。(1)根据以下代码可知,本程序访问的数据库名称是___________(2)完成划线处的代码填空:Dim classname(1 To 8000) As String'存储原始数据中的班级名称Dim selectabc(1 To 8000) As String'存储原始数据选项的值Dim xiangmu(1 To 8000) As String'存储原始数据选项的序号Dim n As IntegerPrivate Sub Command2_Click()' 从数据库读取数据,并且按班级名称排序Dim conn As New ADODB.Connectionconn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source="&App.Path&"\pingjia.accdb"conn.OpenDim rs As New ADODB.RecordsetSet rs.ActiveConnection = connrs.Open "select * from data"n = 0' 记录评价的总条数'读取数据,并按班级排序,代码略End SubPrivate Sub Command1_Click()Dim cstart(1 To 50) As Integer '存储每个班级在数组classname中的起始位置Dim cend(1 To 50) As Integer '存储每个班级在数组classname中的末尾位置Dim k As Integer '存储班级数量Dim testall(1 To 20) As Integer '存储每一项总选择人数,例如testall(1)里存储这评价项目1里的总人数,testc(1)里存储评价项目1里选C的人数Dim testc(1 To 20) As Integer '存储每一题(项)选c的人数' 确定每个班级的起止位置,存储到cstart数组和cend数组cstart(1) = 1temp = classname(1)k = 1For i = 1 To n If classname(i) <> temp Then ________________ k = k + 1 cstart(k) = i temp = classname(i) End IfNext icend(k) = nFor i = 1 To k '每个班级分别统计评价项目 _________________ For q = 1 To 20 '对testall和testc数组初始化, testall(q) = 0 testc(q) = 0 Next q For j = cstart(i) To cend(i) '对第i个班级进行统计 testall(xiangmu(j)) = testall(xiangmu(j)) + 1 If selectabc(j) = "C" Then _________________ Next j For p = 1 To 20 '统计完成后输出这个班级的20个项目的 A+B所占百分比 s = s &""&Str(Round((testall(p) - testc(p)) / testall(p) * 100, 1)) Next p List2.AddItem sNext iEnd Sub13.分析完善程序2005年10月9日,国家测绘局正式宣布珠穆朗玛蜂的高度是8844. 43米,并停用之前的数据。现有一张白纸,其厚度是0. 08毫米,对折一次,厚度变为0. 16毫米,再对折一次,厚度变为0. 32毫米,…,每对折一次,其厚度均变为对折前的两倍。假设这张纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?以下是求解该问题的VB程序片段。请你补全代码:14.运行下列程序,正确的结果是_________________s=0for i in range (1 5): s=s+iprint("i=",i,"s=",s)15.如图所示,这是打印九九乘法表的程序,请你完善程序。Private Sub Form_click()Dim i As Integer, j As IntegerFor i = 1 To ①________For j = 1 To ②_________Print j; "*"; i; "="; i * j; Next jPrint ‘换行Next iEnd Sub 三、操作题16.在一个整数序列中找第 k小的字母,若有相同的字母,则位置靠前的字母名次靠前,如有字母序列为“A,B,A,D,C”则第1小的字母为A在第1个位置,第2小的字母为A在第3个位置,第3小的字母是 B,在第 2 个位置,第 4 小的字母是 C,在第 5 个位置,第 5 小的字母是 D,在第 4 个位置。编写一个VB程序实现如下功能,程序启动时随机产生 n个A-G之间的随机大写字母,在文本框Text2 中输入整数 k(k<=n), 单击“查找第k小的字母”按钮Commandl后,在文本框Text3上显示第k小的字母位置。程序运行界面如下图所示 。(1)若要清空文本框 Text1 中的内容,能实现该功能的语句是_______(单选,填字母:A.Text1.Caption=""/B.Text1.Text=""/C.Text1.Clear)(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。(3)程序中加框处有错,请改正。Const n = 20Dim i As IntegerDim a(1 To n) As StringPrivate Sub Form_Load()RandomizeFor i = 1 To na(i) =____① Text1.Text = Text1.Text + " " + a(i)Next iEnd SubPrivate Sub Command1_Click()Dim k As Integer, count As IntegerDim b(0 To 7) As Integerk = Val(Text2.Text)For i = 1 To n __________Next ii = 1Do While i < 7 And b(i) < k ②__________i = i + 1LoopKey = icount = 0For i = 1 To nIf a(i) = Chr(Key + 64) Then count = count + 1If count = ③ __________Then Exit ForNext iText3.Text = "第" + Str(k) + "小的字母是:" + Chr(Key + 64) + ";位置是:" + Str(i) End Sub
参考答案:1.D2.C3.B4.B5.C6.B7.B8.C9.B10.D11. Clear 或 AddItem a(t) + 1 a(i) Mod 2 = 1 c + a(i) \ 212. pingjia.accdb cend(k)=i-1 s=classname(cstart(i))或s=classname(cend(i)) testc(xiangmu(j))= testc(xiangmu(j))+113.0,h*2或2*h或h+h14.i=4 s=1015. 9 i16. B ①Chr(Int(Rnd*7+65)); b(Asc(a(i)-64)=b(Asc(a(i)-64)+1 ②b(i+1)=b(i+1)+b(i); ③k-b(Key-1)
相关试卷
这是一份高中中图版 (2019)本册综合复习练习题,共11页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
这是一份中图版 (2019)必修2 信息系统与社会本册综合一课一练,共8页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
这是一份高中信息技术中图版 (2019)必修2 信息系统与社会本册综合随堂练习题,共5页。试卷主要包含了选择题,填空题,判断题,操作题等内容,欢迎下载使用。
![文档详情页底部广告位](http://www.enxinlong.com/img/images/257d7bc79dd514896def3dc0b2e3f598.jpg)