试题

试题 试卷

logo

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

浙江省“七彩阳光”联盟2017-2018学年高三上学期信息技术期中联考试卷

【加试题】数组a中有50个互异的整数,已按升序排列。给定一个正整数key,寻找数组a中是否有一对数的和等于给定的数key,算法如下:

若存在和为key的数对,输出该数对包含的两个整数,小的在前,大的在后;

若存在多个数对满足条件,则输出最先找到的数对;

若找不到符合要求的数对,则输出“没有符合条件的数对”。

根据上述算法,小黄编写了一个VB程序,功能如下:程序加载时,自动生成50个互异的、按升序排列的随机正整数,依次存入数组a中,并显示在列表框List1中。在文本框Text1中输入key的值,单击“查找”按钮Command1,查找结果在列表框List2中输出。程序运行界面如图所示。

(1)、实现上述功能的VB程序如下,请在画线处填入合适代码。

Dim a(1 To 50)As Integer

Const n As Integer=50

Private sub form_load()

‘生成50个互异的、被升序排序的随机正整数,依次存人数组a中

  ‘代码略

End Sub

 Private Sub Command1=_Click()

  Dim M As Integer,L As Integer,R As Integer

  Dim key As Integer,flag As Boolean

  flag=false:key=Val(Text1.Text)

  For i=1 To n-1

    L=i+1:R=n

    Do While    ①      

    M=    ②    

    If a(i)+a(M)<key Then

      L=M+1

    Else lf a(i)+a(M):>key Then

      R=M-1

    Else

      List2.AddItem Str(a(i))+””+    ③   

      flag=True

    End If

  Loop

  If Not flag Then List2.AddItem”没有符合条件的数对!”

End Sub

 ② ③ 

(2)、对于6个数据(12,23,35,46,57,68)的序列,若给定key的值是58,则根据上述代码查找的结果是
举一反三
返回首页

试题篮