高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题Word文件下载.docx
《高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。
![高中信息技术VB排序算法与程序实现浏览题阅览题会考复习题Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/1ec319d3-e038-4280-b2cd-3cc0885b70c7/1ec319d3-e038-4280-b2cd-3cc0885b70c71.gif)
8,"
n个数据时,肯定i<
=n,i即为找到的数组元素下标,d(i)=key;
(2)、当"
时,i=9>
8了;
n个数据时,当i=n+1时,表示"
顺序查找的主程序段如下:
PrivateSub顺序查找_Click()
n个数据放入d
(1)到d(n)中
Key="
Val(Text1.Text):
i=1.‘变量Key从文本框Text1取的数要查找的数;
DoWhile①
i="
i"
+1
Loop
Ifi<
n"
Then
Text2.Text="
在d("
+Str(i)+"
)中"
‘例如在文本框Text2显示:
“在d(6)中”
Else
EndIf
EndSub
上程序DoWhile的条件①是()
A.Key<
>
d(i)
B.i<
=n
C.Key<
d(i)Andi<
D.Key<
d(i)ori<
【答案】C
【解析】
2.用选择排序将七个数“2022、2017、2018、2014、2021、2012、2015”从小到大进行排序,则第二轮交换数据后的顺序是:
A、2022、2021、2018、2017、2014、2012、2015
B、2012、2014、2018、2017、2021、2022、2015
C、2012、2017、2018、2014、2021、2022、2015
D、2022、2021、2018、2014、2017、2012、2015
【答案】D
3.关于对分查找和顺序查找算法的叙述,正确的是()。
A.顺序查找需要排序,效率低;
对分查找不需要排序,效率高。
B.顺序查找不需要排序,效率低;
对分查找需要排序,效率高。
C.顺序查找不需要排序,效率高;
对分查找需要排序,效率低。
D.顺序查找需要排序,效率高;
对分查找不需要排序,效率低。
【答案】B
4.某数组有8个元素,依次为500、419、352、350、300、200、180、100,若采用顺序查找法在该数组中查找数据300,需要查找的次数是()
A.1B.3C.4D.5
5.下面程序段用于求两数中的较大数(结果保存到变量maxn中),不正确的是()
A.maxn=x
Ify>
=maxnThenmaxn=y
B.Ifx>
yThenmaxn=xElsemaxn=y
C.maxn=x
=xThenmaxn=y
D.Ify>
=xThenmaxn=y
maxn=x
6.某超市面食区共有5种面食品种,其价格依次为6.20、4.5、5.5、2、3,若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是()
A、25.536.24.5
B、236.24.55.5
C、24.56.235.5
D、235.54.56.2
7.某市组织了一次我心目中最喜爱的球队的评比活动,6个球队网上投票数为201、287、501、189、397、295,若采用冒泡排序算法对其进行从大到小排序,则第三遍加工后的结果是()
原始数据
201
287
501
189
397
295
第一遍
第二遍
第三遍
A.501397295287201189
B.501397201287295189
C.501397295201189287
D.501397295201287189
8.在信息加工中,经常要对被处理的数据进行排序,在排序时经常要进行数据的交换。
下面有四个程序段:
x=y
y=x
②x=x+y
y=x-y
x=x-y
③t=x
x=y
y=t
④x=x-y
y=x+y
x=y-x
其中能正确地将x和y两个变量中的数据进行交换的程序段有()
A、1个B、2个C、3个D、4个
9.解决上问题所用的算法是:
()
A、枚举法B、解析法C、顺序查找D、选择法
10.用选择排序将七个数“2022,2017,2018,2014,2021,2012,2015”从小到大进行排序,则第二轮交换数据后的顺序是()
A.2022,2021,2018,2017,2014,2012,2015
B.2012,2014,2018,2017,2021,2022,2015
C.2012,2017,2018,2014,2021,2022,2015
D.2022,2021,2018,2014,2017,2012,2015
【解析】本题意图考核考生考生选择排序算法执行过程的理解。
11.下表记录了6个数据的排序过程。
分析表中数据可知,该排序采用的算法与排序方式分别为()
65
57
59
44
45
69
第1遍
第2遍
55
第3遍
…
A.冒泡排序,升序B.选择排序,升序
C.冒泡排序,降序D.选择排序,降序
【答案】A
二、填空题
12.小王设计了一个程序来列举仁川亚运会的奖牌前三的国家。
下列VB程序实现如下功能:
单击命令按钮Command1后,在列表框List1中按奖牌数由多到少显示国家名称,如图。
请根据算法将下列程序补充完整。
Dima(1To45)AsString
Dimb(1To45)AsInteger
PrivateSubForm_Load()
a
(1)="
中国"
b
(1)=308
‘45个代表团名称及奖牌数分别放在a
(1)到a(45)及b
(1)到b(45)中
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger
DimtAsInteger,fAsInteger
List1.Clear
Fori=1To3
Forj=①To2Step-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
Nextj
Nexti
List1.AddItem"
第"
名"
+a(i)+"
奖牌数"
+Str(b(i))
【答案】
(1)45(1分)
(2)b(j-1)>
b(j)(1分)
13.下列VB程序的功能是:
程序运行时,单击命令按钮Commandl后,产生10个[1,999]范围内互不相同的随机整数,依次显示在列表框List1中,然后将它们按从小到大的顺序排序,排序结果显示在列表框List2中。
数组a用于存储产生的10个随机整数,函数f(x)用于判断随机整数x与已生成的整数是否有重复,若有重复则返回True,否则返回False。
(1)虚线框内程序段所采用的排序算法名称是。
(填:
冒泡排序/选择排序)
(2)在程序
(1)和
(2)划线处,填入适当的语句或表达式,把程序补充完整。
Dima(1To10)AsInteger
Functionf(xAsInteger)AsBoolean′代码略
EndFunction
PrivateSubCommandl_Click()
DimnAsInteger′n用于统计已经产生的随机整数个数
DimiAsInteger.jAsInteger
DimxAsInteger.kAsInteger
Randomize′初始化Rnd函数
n=0
List1.Clear′清除列表框中内容
List2.Clear
DoWhilen<
10
x=Int(Rnd*999)+1′产生[1,999]范围内的随机整数
IfNotf(x)Then
n=n+1
a(n)=x
List1.AddItemStr(
(1))
Fori=1To9′进行排序
Forj=10Toi+1
(2)
Ifa(j)<
a(j-1)Then
k=a(j):
a(j)=a(j-1):
a(j-1)=k
Nextj
Nexti
Fori=1To10
List2.AddItemStr(a(i))
(1)冒泡排序
(2)a(n)Step-1
14.某协会进行钓鱼比赛,最后有十人进入决赛,录入员编制了如下VisualBasic程序,功能是根据成绩进行排序,程序中数组a保存所有参赛者的成绩,数组b保存此成绩对应的姓名,第i位参赛者的成绩保存在a(i)中,姓名保存在b(i)中。
程序界面如图所示,左边列表框List1中显示原始数据(成绩和相应的姓名),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框List2中。
解决此问题的算法流程图如图所示,排序部分的程序段如下:
Dima(1To10)AsSingle
Dimb(1To10)AsString
DimiAsInteger,jAsInteger,kAsInteger,xAsSingle,yAsString
Fori=1To9
k=i
Forj=i+1To10
If①________Thenk=j
Ifk<>iThen
x=a(i):
a(i)=a(k):
②________
y=b(i):
b(i)=b(k):
b(k)=y
Fori=iTo10
List2.AddItemStr(a(i))+“”+b(i)
’此过程用于对数组a和数组b进行初始赋值,代码略
(1)解决此问题的算法是________。
(选填:
冒泡排序或选择排序)
在程序①和②画线处,填入适当的语句或表达式,把程序补充完整:
(2)程序中①画线处应填入________。
程序中②画线处应填入________。
(1)选择排序
(2)①a(k)<a(j)或a(j)>a(k)
②a(k)=x
三、操作题
15.打开并修改考生文件夹下“VB”文件夹中的工程文件“paixu.vbp”,使其具有下列功能:
点击命令按钮Command1,清除列表框List1和列表框List2的内容,并自动产生三个100~999之间的随机数显示在列表框1中。
点击命令按钮Command2,清除列表框List2的原有内容,对产生的随机数进行从大到小排序并显示在列表框List2中,点击命令按钮Command3,清除列表框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”文件夹中,然后点击“文件”菜单选择“保存工程。
”