试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

浙江省杭州市2016年信息技术高考模拟卷十二

【加试题】自从“7选3”计入高考成绩,让考生告别“一考定终身”的窘困。各校均组织学生进行了7选3高考选考科目的选课工作。某校政治、历史、地理、物理、化学、生物、技术7科的选考人数如下表所示:

科目

政治

历史

地理

物理

化学

生物

技术

人数

193

151

112

186

167

103

179

设计VB程序,实现功能:将每个科目的选课人数按照选考人数降序排序后输出。其中,科目名称存放在数组a(i)中,人数存放在数组b(i)中。

程序运行界面设计如图所示,左边列表框List1是显示科目名称和选课人数,单击“排序”按钮Command1后,在右边的列表框List2中显示排序后的科目名称和选课人数。

Command1的处理事件过程如下,但加框处代码有错,请改正。

Private Sub command1_click()

Dim a(1 To 7)  As String

Dim b(1 To 7)  As Integer

Dim i As Integer, j As Integer, p As String, q As Integer

For i = 1 To 7

   List1.AddItem a(i) + " " + Str(b(i))

Next i

For i = 1 To 6

   k = i

   For j = i + 1 To 7

   

Next j

   If i <> k Then

     p = a(i): a(i) = a(k): a(k) = p

   End If

Next i

For i = 1 To 7

   List2.AddItem a(i) + " " + Str(b(i))

Next i

End Sub
   ②

举一反三
小明探索用链表思想实现插入排序。链表由节点连接而成,每个节点包含一个数据域和一个指针域。为了模拟这个过程,小明用a数组保存链表数据域,b数组保存链表指针域,排序的过程就是将每个数据的指针域不断链接到已有的有序链表合适位置,形成更长 的链表,直到所有的数据均链接到链表中。

例如将某节点插入到已有链表中,根据大小比较有三种情况:插入到最前面、插入到 最后、插入到中间,如图a所示,在链表中的节点 x 和节点 y之间插入节点n的过程示意:过程一(初始状态)如图1所示,链表中节点 x 的指针域指向节点y数据域,即图示①指向;过程二如图2所示,将节点n的指针域指向节点 y 数据域,即图示②指向;过程三如图 3 所示,将①指向断开,同时将节点 x 的指针域指向节点n数据域,即图示③指向;至此完成节点n的插入操作。

图a

具体程序设计方法如下:

1)将待排序的n个数保存在a(1)~a(n),b(1)~b(n)保存对应a数组各元素的位置,形成 n个没有链接的节点;

2)将a(1)结点看成只含有一个结点的链表head,且 head=1;

3)将a(2)节点插入到链表head的适当位置,使head仍有序,此时head成为含有两个结点的有序链表;以此方法依次将a数组中的其他节点插入到链表head中,最后链表 head上包含所有结点,且结点有序。依次输出head链表的数据域即完成排序。

程序运行界面如图b所示,采用此思想进行升序排序的 VB 代码如下,请回答下列问题。

图b

返回首页

试题篮