试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:普通

浙江省2019年信息技术选考模拟试卷一

编写VB程序,实现如下功能:在文本框Text1中输入一个整数,单击“查找删除”按钮Command1,采用对分查找法在数组a(从小到大排列,并显示在文本框Text2中)中查找该数。若找到,则从数组a中删除该数(该数后面的数组元素都前移一位),并在文本框Text3中显示删除后的结果;否则,在文本框Text3中显示“该数没有找到!”。运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。

Dim a(1 To 20) As Integer ’用于保存n(n<=20)个按从小到大顺序排列的整数

‘Form_Load事件过程产生n个整数,按升序保存在数组a中,并在Text1中显示

Private Sub Form_Load()

‘代码略

End Sub

Private Sub Command1_Click()

Dim i , j , m , k As Integer

Dim x As Integer,f As Boolean  ’变量f用于标记是否在数组中找到x

x = Val(Text2.Text)

i=1 :j=n  : f=False

Do While  i<=j And  f=False

 m = Fix((i+j)/2)

 If a(m)=x Then f=True

 If  Then i=m+1 Else j=m-1    ‘(1)

Loop

If f = True Then

 For k = m To n-1

         ‘(2)

 Next k

n = n - 1

 Text3.Text = ""

 For k = 1 To n

Text3.Text = Text3.Text+Str(a(k))+","

 Next k

Else

 Text3.Text = "该数没有找到!"

End If

End Sub

以上程序段运行时,为了实现上述功能,加框处代码应改正为:

;⑵

举一反三
【加试题】为破解看病手续烦琐问题,杭州市卫生局、杭州市医疗保险管理服务局、杭州市民卡有限公司推出了“智慧医疗结算”便民服务。持卡人只要在市民卡电子帐户内预充小额费用,就可在医生诊室直接刷卡支付需现金付费的部分。

杭州市民卡是一张集成电路卡,具有信息储存、身份识别、电子支付等功能。每位市民卡的卡号是唯一的,卡内会记录每位市民的姓名、住址、金额等信息。

假设共有100000个市民,市民的卡号、姓名和金额分别存放在数组a、b和数组c中,a(i)是存放第i个市民的卡号,则对应的第i个市民的姓名存放在b(i)中,金额存放在c(i)中。

通过卡号查询其姓名和余额的程序界面如图所示。在文本框Text1中输入卡号,单击“开始查询”按钮,如果找到,就在Label1中显示卡内市民姓名和金额;否则显示“查无此人”。已知卡号按照从小到大排序。请按要求将下列程序补充完整。

Dim a (1 To 100000) As long

Dim b (1 To 100000) As string

Dim c (1 To 100000) As long

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 = 100000: f = False           、

Do While  i<=j and f=false       

          ①        

If x= a(m) Then

        f = True

    ElseIf x< a(m) Then

        j = m - 1

    Else

             ②       

    End If

 Loop

 If f=false Then

        Label1.Caption =”查无此人”

    Else

         Label1.Caption = b(i)+ "卡内余额为"+ Str(c(i)) + "元"

    End If

 End Sub

 Private Sub Form_Load()

     ’ 此过程用于对数组a、b和c进行初始赋值,代码略

 End Sub

返回首页

试题篮