试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省杭州市西湖高级中学2018-2019学年高二下学期信息技术5月月考试卷

统计学中的“中位数”是这样的一种数:一组数据里的一半的数据比它大,而另外一半数据比它小。计算一组数据的中位数的方法是:把所有数据按照非升的次序排列。如果数据的个数是奇数,则中间那个数就是这组数据的中位数;如果个数是偶数,则中间两个数的算术平均值是中位数。

小诗收集了全市部分教职员工的工资数据,设计了找中位数的程序如下。小诗收集的人员工资数据放在了Access数据库中。小诗的程序在窗体加载时读出了所有人员的数据:姓名放在数组a中,对应的工资放在数组b中,数据总记录数放在n中。单击按钮Command1后先以工资按非升的次序排序,然后找出中位数。

Dim a(1 To 1000) As String

Dim b(1 To 1000) As Single

Dim n As Integer

‘数据库读取所有人员的数据代码略

Private Sub Command1_Click()

Dim i As Integer , j As Integer , k As Integer

Dim tmp1 As Single, tmp2  As String

Dim median As Single

For i = n To 2 step -1

k = i

For j = i-1 To 1 step -1

If  Then

k = j

End If

Next j

If k <> i Then

tmp1 = b(k): b(k) = b(i): b(i) = tmp1

tmp2 = a(k): a(k) = a(i): a(i) = tmp2

End If

Next i

For i = 1 To n

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

Next i

If n Mod 2 = 0 Then

median =                 

Else

median = b(n\2+1)

End If

Label1.Caption = "中位数是:" & Str(median)

End Sub

(1)、要使程序运行时,从数据库中读取所有人员的数据,可在事件过程中添加相关代码。(单选,填字母:A .Form1_load/ B .Form_load/ C .Form1.Caption)
(2)、将划线处代码补充完整。
(3)、程序代码中,加框处有错,请改正。
(4)、如图所示,数据库中一共有个教职员工。
举一反三
数组a存储降序排列的m个数据,数组b中存储的是升序排列的n个数据,且两个数组中存储的数据为区间[1,20]范围内的不重复的随机整数。现将两个数组的数据合并到c数组中,使c数组的数据为左右交替上升,如下表所示:

a(1)

a(2)

a(3)

a(4)

a(5)

19

17

6

4

3

a数组

b(1)

b(2)

b(3)

b(4)

b(5)

b(6)

5

7

8

13

15

20

b数组

c(1)

c(2)

c(3)

c(4)

c(5)

c(6)

c(7)

c(8)

c(9)

c(10)

c(11)

3

5

7

13

17

20

19

15

8

6

4

c数组

当窗体Form1加载时,自动产生a、b数组的数据,并分别显示在列表框List1与List2中,单击合并按钮Command1后,在c数组中保存按规则合并后的a、b数组的数据,并显示在列表框List3中。程序截图如下所示:

实现该功能的VB程序如下:

Const m = 5

Const n = 6

Dim a(1 To m) As Integer

Dim b(1 To n) As Integer

Dim c(1 To m + n) As Integer

‘窗体加载时,生成数组a、b中的数据,并按要求排序后显示在列表框中,代码略

Private Sub Command1_Click()

Dim pa As Integer, pb As Integer, pc As Integer, s As Integer, flag As Boolean

pa = m: pb = 1: pc = 1

flag = True

Do While         ①        

    If a(pa) < b(pb) Then

        s = a(pa)

        pa = pa - 1

    Else

        s = b(pb)

        pb = pb + 1

    End If

    c(pc) = s

    If  flag Then

        pc = m + n - pc + 1

    Else

        pc =

    End If

            ②       

Loop

‘处理a、b数组中剩余数据,并在列表框List3中输出数组c,代码略

End Sub

返回首页

试题篮