试题

试题 试卷

logo

题型:单选题 题类:常考题 难易度:普通

【bj】高中信息技术综合库——解析算法及程序实现2

某对分查找算法的VB程序段如下:

i=1: j=6: n=0: f=False

key=Val(Text1.Text)

Do While i<=j and Not f

    n=n+1

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

    If key=a(m)then f=True

    If key<a(m)then j=m-1 Else i=m+1

Loop

数组元素a(1)到a(6)的值依次为“12,19,27,31,46,55”,文本框Text 1中输入“31”后运行该程序,则以上程序段运行结束后,下列说法不正确的是(   )

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

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

假设共有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

返回首页

试题篮