试题

试题 试卷

logo

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

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

【加试题】某单位会员储值卡查询系统具有如下功能:输入会员卡号,即可查出该卡号对应的余额。所有会员卡号和相应的余额已分别保存在数组kh和数组ye中,第i个会员的卡号保存在kh(i)中,对应卡号的余额保存在ye(i)中,卡号从小到大排序。

程序运行界面如图所示,左边列表框List1中显示的是会员卡号和余额,在文本框Text1中输入会员卡号,单击"查询余额"按钮(Command1)后,如果找到此卡号,则在标签Label2中显示"此卡号余额为"和卡号对应的余额值,如果未找到则显示"找不到此卡号,请重新输入"。

解决此问题的部分程序段如下:

Dim kh (1 To n) As Long

Dim ye (1 To n) As Single

Private Sub Command1_Click()

Dim x As Long, i As Long, j As Long, m As Long, f As Boolean

x = Val(Text1.Text)

i = 1: j = n: f = False           ‘ 设卡号总数为n

Do While        ①            

        ②    

       If x = kh (m) Then

           f = True

       ElseIf x < kh (m) Then

           j = m - 1

       Else

         ③      

      End If

Loop

If f Then

      Label2.Caption = "此卡号余额为" + Str(ye(m)) + "元"

Else

      Label2.Caption = "找不到此卡号,请重新输入"

  End If

End Sub

Private Sub Form_Load()

   ’此过程用于对数组kh和数组ye进行初始赋值,代码略

End Sub

(1)、程序中①划线处应填入
(2)、程序中②划线处应填入
(3)、程序中③划线处应填入
举一反三
用VB编写一个模拟在900个观众中产生10个中奖号码的程序,每位观众用三位数字进行编号,要求产生的10个号码不能重复,并且升序排列输出。

①检查产生号码是否重复:把产生的中奖号码放在数组a中,新产生的号码与已经产生的号码进行一一对比,如果找到相等的数,则重新产生新号码。

②找到新产生号码存放的数组下标:从下标为1的数组元素开始,新号码(第i个号码)分别与他们进行一一比较,找到第一个比新号码大的数,该数所在的下标就是新号码应存放的下标。如果在已经产生的数中没有找到比新号码大的数,则新号码应存放在下标为i的数组元素中。下表以产生第5个号码为例,如果产生的号码是150,第一个比他大的数是a(2),下标为2的数组元素应存放新号码;如果产生的号码是300,则新号码应存放在下标为5的数组元素中。

数组元素

a(1)

a(2)

a(3)

a(4)

数组元素的值

120

188

211

278

③移动数组元素到新的位置:如果在已经产生的号码中找到比新号码大的数,从上一个产生的号码开始,到新号码应存放的数组元素,依次把他们向后面移动。以②中产生150为例,从a(4)开始,让a(5)的值等于a(4),a(4)的值等于a(3),依次类推,直到新号码应存放的数组元素a(2)为止。

④将新产生的号码放在相应的数组元素中。

程序运行的界面如图所示,实现上述功能的VB程序代码如下:

Dim a(10) As Single

Private Sub Command1_Click()

Dim i As Integer, j As Integer

Dim temp As Single, k As Integer ‘temp产生随机数,k随机数存放数组元素的下标

    Randomize

    a(1) = Int(Rnd() * 900 + 100)

    For i = 2 To 10

        temp = Int(Rnd() * 900 + 100)

        If  seach(temp, i - 1)= True  Then

            i = i – 1

        Else

k = i                  

For j = 1 To i - 1

    If temp < a(j) Then k = j: Exit For

Next j

            For j = i - 1 To k Step -1

               a(j + 1) = a(j)

            Next j

                     ①        

      End If

    Next i

    List1.Clear

    For i = 1 To 10

       List1.AddItem Str(a(i))

    Next i

End Sub

‘函数实现在数组a中,从下标为1的数组元素到下标为t数组元素,查找有无pp的数值

Function seach(pp As Single, t As Integer) As Boolean

    Dim i As Integer

    seach = False

    For i = 1 To t

        If       ②          Then seach = True : Exit For

    Next i

End Function

返回首页

试题篮