《高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题.pdf》由会员分享,可在线阅读,更多相关《高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/10 高中信息技术 VB 排序算法与程序实现 浏览题阅览题 会考复习题 学校:_姓名:_班级:_考号:_ 评卷人 得分 一、选择题(一)顺序查找数据:我们假定被查找的数据存储在有 n 个元素的数组变量 d 中,要寻找的一个特定的数据(这个数据称为查找键)已经存储在变量 key 中。下面是顺序查找算法的输入输出说明。输入:查找键(设在变量 key 中)。被查找的数据(设在数组变量 d 中)。输出:若找到,输出值为 key 的数据所在的数组元素的下标,记为 i;若未找到,输出结果为提示字符串:找不到。当在 n=8 个元素的数组里顺序查找数据的示意图如下:找到情况 未找到情况 总结顺序查找数据结
2、果判断条件:(1)、当找到时,肯定 i=8,n 个数据时,肯定 i8 了;n 个数据时,当 i=n+1 时,表示找不到。顺序查找的主程序段如下:Private Sub 顺序查找_Click()n 个数据放入 d(1)到 d(n)中 Key=Val(Text1.Text):i=1变量 Key 从文本框 Text1 取的数要查找的数;Do While i=i+1 Loop If i=n Then Text2.Text=在 d(+Str(i)+)中 例如在文本框 Text2 显示:“在 d(6)中”Else Text2.Text=找不到 End If End Sub 上程序 Do While 的条件
3、 是()AKey d(i)Bi=n CKey d(i)And i=n DKey d(i)or i=maxn Then maxn=y BIf xy Then maxn=x Else maxn=y Cmaxn=x If y=x Then maxn=y DIf y=x Then maxn=y maxn=x【答案】D【解析】6某超市面食区共有 5 种面食品种,其价格依次为 6.20、4.5、5.5、2、3,若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是()A、2 5.5 3 6.2 4.5 B、2 3 6.2 4.5 5.5 C、2 4.5 6.2 3 5.5 D、2 3 5.5 4.5
4、 6.2【答案】B【解析】7 某市组织了一次我心目中最喜爱的球队的评比活动,6 个球队网上投票数为 201、287、501、189、397、295,若采用冒泡排序算法对其进行从大到小排序,则第三遍加工后的结果是()原始数据 201 287 501 189 397 295 第一遍 501 201 287 397 189 295 第二遍 501 397 201 287 295 189 第三遍 A501 397 295 287 201 189 B501 397 201 287 295 189 C501 397 295 201 189 287 D501 397 295 201 287 189【答案】D
5、【解析】8在信息加工中,经常要对被处理的数据进行排序,在排序时经常要进行数据的交换。下面有四个程序段:其中能正确地将 x 和 y 两个变量中的数据进行交换的程序段有()A、1 个 B、2 个 C、3 个 D、4 个【答案】C【解析】9解决上问题所用的算法是:()A、枚举法 B、解析法 C、顺序查找 D、选择法【答案】B【解析】10用选择排序将七个数“2022,2017,2018,2014,2021,2012,2015”从小到大进行排序,则第二轮交换数据后的顺序是()A2022,2021,2018,2017,2014,2012,2015 B2012,2014,2018,2017,2021,202
6、2,2015 C2012,2017,2018,2014,2021,2022,2015 D2022,2021,2018,2014,2017,2012,2015【答案】B【解析】本题意图考核考生考生选择排序算法执行过程的理解。11下表记录了 6 个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方 x=y y=x x=x+y y=xy t=x x=y x=x-y y=x+y 5/10 式分别为()原始数据 65 57 59 44 45 69 第 1 遍 44 65 57 59 45 69 第 2 遍 44 45 55 57 59 69 第 3 遍 44 45 57 65 59 69 A冒泡
7、排序,升序 B选择排序,升序 C冒泡排序,降序 D选择排序,降序【答案】A【解析】评卷人 得分 二、填空题 12小王设计了一个程序来列举仁川亚运会的奖牌前三的国家。下列 VB 程序实现如下功能:单击命令按钮 Command1 后,在列表框 List1 中按奖牌数由多到少显示国家名称,如图。请根据算法将下列程序补充完整。Dim a(1 To 45)As String Dim b(1 To 45)As Integer Private Sub Form_Load()a(1)=中国 b(1)=308 45 个代表团名称及奖牌数分别放在 a(1)到 a(45)及 b(1)到 b(45)中 End Sub
8、 Private Sub Command1_Click()Dim i As Integer,j As Integer Dim t As Integer,f As Integer List1.Clear For i=1 To 3 For j=To 2 Step-1 If Then f=a(j):a(j)=a(j-1):a(j-1)=f t=b(j):b(j)=b(j-1):b(j-1)=t End If Next j Next i For i=1 To 3 List1.AddItem 第+Str(i)+名+a(i)+奖牌数+Str(b(i)Next i End Sub【答案】(1)45(1 分)
9、(2)b(j-1)b(j)(1 分)【解析】13下列 VB 程序的功能是:程序运行时,单击命令按钮 Commandl 后,产生 10 个1,999范围内互不相同的随机整数,依次显示在列表框 List1 中,然后将它们按从小到大的顺序排序,排序结果显示在列表框 List2 中。数组 a 用于存储产生的 10 个随机整数,函数 f(x)用于判断随机整数 x 与已生成的整数是否有重复,若有重复则返回 True,否则返回 False。7/10(1)虚线框内程序段所采用的排序算法名称是 。(填:冒泡排序/选择排序)(2)在程序(1)和(2)划线处,填入适当的语句或表达式,把程序补充完整。Dim a(1
10、To 10)As Integer Function f(x As Integer)As Boolean 代码略 End Function Private Sub Commandl_Click()Dim n As Integer n 用于统计已经产生的随机整数个数 Dim i As Integer.j As Integer Dim x As Integer.k As Integer Randomize 初始化 Rnd 函数 n=0 List1.Clear 清除列表框中内容 List2.Clear Do While n10 x=Int(Rnd*999)+1 产生1,999范围内的随机整数 If N
11、ot f(x)Then n=n+1 a(n)=x List1.AddItem Str((1))End If Loop For i=1 To 9 进行排序 For j=10 To i+1 (2)If a(j)a(j-1)Then k=a(j):a(j)=a(j-1):a(j-1)=k End If Next j Next i For i=1 To 10 List2.AddItem Str(a(i)Next i End Sub【答案】(1)冒泡排序 (2)a(n)Step-1【解析】14某协会进行钓鱼比赛,最后有十人进入决赛,录入员编制了如下 Visual Basic 程序,功能是根据成绩进行排序
12、,程序中数组 a 保存所有参赛者的成绩,数组 b 保存此成绩对应的姓名,第 i 位参赛者的成绩保存在 a(i)中,姓名保存在 b(i)中。程序界面如图所示,左边列表框 List1 中显示原始数据(成绩和相应的姓名),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框 List2 中。解决此问题的算法流程图如图所示,排序部分的程序段如下:Dim a(1 To 10)As Single Dim b(1 To 10)As String Private Sub Command1_Click()Dim i As Integer,j As Integer,k As Integer
13、,x As Single,y As String For i1 To 9 ki For ji1 To 10 If _ Then kj Next j If ki Then xa(i):a(i)a(k):_ yb(i):b(i)b(k):b(k)y End If Next i For ii To 10 List2.AddItem Str(a(i)“”b(i)Next i End Sub Private Sub Form_Load()9/10 此过程用于对数组 a 和数组 b 进行初始赋值,代码略 End Sub (1)解决此问题的算法是_。(选填:冒泡排序或选择排序)在程序和画线处,填入适当的语句
14、或表达式,把程序补充完整:(2)程序中画线处应填入_。程序中画线处应填入_。【答案】(1)选择排序(2)a(k)a(j)或 a(j)a(k)a(k)x【解析】评卷人 得分 三、操作题 15 打开并修改考生文件夹下“VB”文件夹中的工程文件“paixu.vbp”,使其具有下列功能:点击命令按钮 Command1,清除列表框 List1 和列表框 List2 的内容,并自动产生三个100999 之间的随机数显示在列表框 1 中。点击命令按钮 Command2,清除列表框 List2的原有内容,对产生的随机数进行从大到小排序并显示在列表框 List2 中,点击命令按钮 Command3,清除列表框
15、List2 的原有内容,对产生的随机数进行从小到大排序并显示在列表框 List2 中。程序运行界面如下图所示:完成下列操作:1对照效果图,在窗体的适当位置创建命令按钮 Command2,适当修改其大小,设置其Caption 属性值为“从大到小排序”。2给命令按钮 Command2 添加合适的事件编码,使之实现上述功能。该事件过程代码从“VB”文件夹下“code.txt”文件中得到。3在注释和所在行中找出惟一的错误并改正,测试程序,使其实现上述功能。程序调试正确后,生成“paixu.exe”,保存在“VB”文件夹中。保存窗体文件和工程文件。【答案】1.双击“paixu.vbp”文件用 VB 打开工程,打开资源管理器里的工程窗口调出窗体,然后选择工具栏中的命令按钮,在窗体的合适位置创建,并鼠标拖动修改其大小,在属性栏里设置其 Caption 属性值为“从大到小排序”。2.打开“VB”文件夹下“code.txt”文件复制代码,双击 command2 按钮,右键点击复制。3.修改注释处的代码,把“900”改成“800”后进行调试,最后选择“文件”菜单中的“生成 paixu.exe”,保存在“VB”文件夹中,然后点击“文件”菜单选择“保存工程。”【解析】
限制150内