相关试卷

  • 1、使用数据库应用系统的优势,不正确的说法是(    )。
    A、能够存储大量数据,且占用空间少 B、存储和管理数据的多少不受限制 C、管理操作方便、快捷、数据维护简单、安全 D、检索统计准确、迅速、高效;数据应用共享性能好
  • 2、数组a中存储的是左右交替上升的n个正整数,如下表所示:

    a(1)

    a(2)

    a(3)

    a(n-2)

    a(n-1)

    a(n)

    3

    25

    38

    55

    31

    12

    依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有误,请改正。

    Private Sub Command1_Click( )

      Const n=6

      Dim a(1 To n)As Integer,flag As Boolean

      Dim i As Integer, j As Integer, m As Integer, key As Integer

      ‘读取一组正整数,按上述规则存入数组a中,代码略

      key=Val(Text1.Text)

      i=1

      j=(n+1)\2

      flag=False

      Do While  And Not flag    ‘①

          m=(i+j)\2

          If key=a(m)then

              flag=True

          Elself key <a(m)then

              j=m-1

          Else

              i=m+1

          End If

      Loop

      If Not flag And j>0 Then

                              ‘②

          If key=a(m)Then flag=True

      End If

      If flag Then

          Text2.Text=Str(m)

      Else

          Text2.Text= "找不到"

      End If

    End Sub

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

  • 3、数组a中有100个正整数,已按升序排列。在文本框Text1中输入一个正整数key,寻找数组a中是否有一数对的和等于给定的数key。若存在和为key的数对,输出该数对所包含的两个整数,小数在前,大数在后。若有多个数对满足条件,则输出最先找到的数对;若找不到符合要求的数对,则输出“没有符合条件的数对”。小吴为此编写了VB程序,代码如下,但加框处代码有误,请改正。

    Dim a(1 To 100)As Integer

    Const n=100

    Private Sub Command1_Click( )

      Dim key As Integer, left As Integer, right As Integer, mid As Integer

      Dim flag As Boolean

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

      For i=1 To n-1

                           ‘①

        right=n

        Do While        ‘②

            mid=(left +right)\2

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

                left=mid+1

            ElseIf a(i)+a(mid)>key Then

                right=mid-1

            Else

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

                flag=True

            End If

        Loop

      Next i

      If Not flag Then List1.Addltem"没有符合条件的数对"

    End Sub

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

  • 4、有一个按升序排列的数组a(a(1)~a(n),n≥3),从左到右相邻两个元素的差值(后一个元素值减去前一个元素值)先由小到大,再由大到小,且相邻的两个差值不相等。为了查找相邻两个元素的最大差值,小李编写的VB程序段如下:

    i=1:j=n

    Do While i+1<j

        m=(i+j)\2

        If a(m+1)-a(m)>a(m)-a(m-1)Then

         

        Else

         

        End If

    Loop

    Label1.Caption=“相邻两个元素的最大差值是”+Str(a(j)-a(i))

    上述程序段中两个方框处的语句分别应为(  )

    A、①i=m;②j=m B、①i=m;②j=m-1 C、①i=m+1;②j=m-1 D、①i=m+1;②j=m
  • 5、某对分查找算法的VB程序段如下:

    i=1:i=7:s=""

    Key=Int(Rnd*100)

    Do While i<=j

        m=(i+j)\ 2

        If Key=a(m)Then

          s=s+ "M":Exit Do    ‘Exit Do表示退出循环

        ElseIf Key<a(m)Then

          j=m-1:s=s+"L"

        Else

          i=m+1:s=s+"R"

        End If

    Loop

    Text1.Text=s

    数组元素a(1)到a(7)的值依次为“24,35,38,41,45,69,78”。若该程序段执行后,文本框Text1中显示的内容可能是(  )

    A、RL B、LMR C、RLR D、LRLM
  • 6、采用如下对分查找算法对数组a中的7个有序数据“15,38,51,66,77,81,99”进行查找,要查找的数据为“55”,程序段如下:

    i=1:j=7:x=55

    Do While i<=j

          m=(i+j)\2

          If a(m)=x Then Exit Do

          If a(m)>x Then j=m-1 Else i=m+1

    Loop

    执行完上述程序段后,根据最终变量值判断下列表达式,其中正确的是(  )

    A、i=m+1 B、i=m-1 C、j>m+1 D、j<m-1
  • 7、已知数组元素a(1)到a(9)的值依次为“19,28,37,46,55,64,73,82,91”,若在Text1中输入29,并执行如下程序段后,Text2中显示的内容是(  )

    Key=Val(Text1.Text)\10

    Text2.Text=""

    i=1:j=9:f=False

    Do While i<=j And Not f

        m=(i+j)\2

        If a(m)Mod 10=Key Then

            search=m:f=True

        ElseIf a(m)Mod 10>Key Then

            i=m+1

        Else

            j=m-1

        End If

    Text2.Text=Text2.Text+Str(m)

    Loop

    A、5,2 B、55,37,28 C、55,28,37 D、5,7,8
  • 8、某对分查找算法的VB程序如下:

    Key=Val(Text1.Text)

    i=1:j=6

    n=0:f=False

    flag=False

    Do While i<=j And Not f

        n=n+1

        m=Int((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)的值依次为“3,9,12,17,28,39”,在文本框Text1中输入17后运行该程序,则以上程序段运行结束后,下列说法不正确的是(  )

    A、变量i的值为4 B、变量j的值为4 C、变量m的值为4 D、变量n的值为4
  • 9、某对分查找算法的VB程序如下:

    Key=Val(Text1.Text)

    i=1:j=9

    Do While i<=j

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

        If Key <a(m)Then j=m-1 Else i=m+1

    Loop

    若数组元素a(1)到a(9)的值分别为“10,13,13,15,18,18,18,25,28”,且在文本框Text1中输入的是18,执行该程序段后,变量j的值是(  )

    A、7 B、6 C、5 D、4
  • 10、某对分查找算法的VB程序段如下:

    Key=Val(Text1.Text)

    i=1:j=10

    Text2.Text=""

    Do While i<=j

      m=Int((i+j)/2+0.5)

      If Key=a(m)Then Exit Do    'Exit Do表示退出循环

      If Key<a(m)Then j=m-1 Else i=m+1

      Text2.Text=Text2.Text +Str(a(m))

    Loop

    数组元素a(1)到a(10)的值依次为“8,17,24,30,36,40,55,58,61,66”,文本框Text1中输入的值是30,执行该程序段后,文本框Text2中显示的是(  )

    A、40 24 B、40 24 36 C、36 24 D、36 17 24
  • 11、在升序数组a(1)到a(9)中插入一个数m,数组元素依然有序,则在插入该数前需先找到其应插入的位置。使用如下VB程序段查找,则数m应插入的位置是(  )

    i=1:n=9:f=False

    Do While i<=n And f=False

        If a(i)>m Then f=True

        i=i+1

    Loop

    A、i B、i+1 C、i-1 D、n\2
  • 12、某查找算法的部分VB代码如下:

    t=False:m=0

    For i=1 To 8

        If a(i)=key Then

            t=True

            m=i

        End If

    Next i

    数组元素a(1)到a(8)的数据依次为“3,5,15,8,9,5,7,9”,当变量key值为5时,运用该算法处理后,变量m的值是(  )

    A、0 B、2 C、6 D、8
  • 13、下列有关查找算法的说法,正确的是(  )
    A、进行对分查找时,被查找的数据必须已按升序排列 B、进行对分查找时,如果查找的数据不存在,则无需输出结果 C、在新华字典中查找某个汉字,最适合使用顺序查找 D、对规模为n的数据进行顺序查找,平均查找次数是
  • 14、已知单调函数f(x)在[0,1]区间存在一个xo,使f(x0)=0。现在用对分查找法搜索x0的值,开始时搜索区间为[0,1],若经过10次对分查找后还需要继续搜索,则第11次搜索区间的长度为(  )
    A、1/2 B、1/10 C、1/102 D、1/210
  • 15、某学校图书管理系统中有10万条图书资料记录(已经索引排序),假设从中取出一条记录并与待查找项进行比较的时间为10毫秒,则用对分法在该系统中查找任意一本指定图书最多花费的时间约为(  )
    A、100万毫秒 B、50万毫秒 C、10毫秒 D、17毫秒
  • 16、在有序单词序列“bike,cake,data,easy,feel,great,hive,mark,sweet”中,用对分查找算法找到“easy”的过程中,依次被访问到的数据为(  )
    A、feel,data,easy B、great,data,easy C、bike,cake,dada,easy D、feel,cake,data,easy
  • 17、数组变量d(1)到d(8)的值依次为87,76,69,66,56,45,37,23,在用对分查找法找到“69”的过程中,依次被访问到的数据是(  )
    A、69 B、66,69 C、66,76,69 D、56,66,76,69
  • 18、用对分查找法和顺序查找法在数字序列“1,2,3,5,8,13,21,34,55”中查找数字13,两种方法都能访问到的数字是(  )
    A、3 B、5 C、8 D、34
  • 19、现利用VB编写一个程序。功能如下:数组xh,kh和cj分别存储了序号、考号和成绩数据,窗体加载时,序号、考号和成绩显示在列表框List1中。在文本框Text1中输入数值N,点击“筛选”按钮,可以将成绩最高的前N项筛选出来,并按由大到小的顺序显示在列表框List2中。如果成绩有并列,那筛选的结果可能会超过N项。程序运行界面如图所示。

    Dim num As Integer

    Dim xh(1To 1000)As String

    Dim kh(1 To 1000)As String

    Dim cj(1 To 1000)As Integer

    Private Sub Form_Load( )

    ´本过程从数据库中将序号、考号、成绩分别存入数组xh,kh,cj中,并将总人数赋值给了num(总人数num为大于N的值),代码略

    End Sub

    Private Sub Command1_Click( )

      Dim N As Integer, i As Integer, j As Integer

      Dim t1 As String, t2 As Integer

      N=Val(Text1.Text)

      List2.Clear

      For i=1 To N

        k=i

                  ´①

          If cj(k)<cj(j)Then k=j

        Next j

        If k<>i Then

            t1=xh(i):xh(i)=xh(k):xh(k)=t1

            t1=kh(i):kh(i)=kh(k):kh(k)=t1

            t2=cj(i):cj(i)=cj(k);cj(k)=t2

        End If

        List2. Addltem xh(i)+" "+kh(i)+" "+Str(ci(i))

      Next i

    ´以下代码是处理可能存在的重复项

      For i=N+1 To num

        If  Then       ´②

            List2.Addltem xh(i)+" "+kh(i)+" "+Str(cj(i))

        End If

      Next i

    End Sub

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

  • 20、小赵对选择排序算法进行了如下改进;在数组的所有元素中找出包含最小和最大数据的元素,然后将这两个元素分别与第一个和最后一个元素交换数据;在余下的元素中找出包含最小和最大数据的元素,分别与第二个和倒数第二个元素交换数据;以此类推,直到所有元素的数据按升序排列。小赵编写的VB程序段如下:

    p=1:q=10

    Do While p<q

      iMin=p:iMax=p

      For i=p+1 To q

        If a(i)<a(iMin)Then iMin=i

        If a(i)>a(iMax)Then iMax=i

      Next i

      t=a(iMin):a(iMin)=a(p):a(p)=t

     

      t=a(iMax):a(iMax)=a(q):a(q)=t

      p=p+1

      q=q-1

    Loop

    要使程序实现上述算法思想,则方框中的语句是(  )

    A、If iMax=p Then iMax=iMin B、If iMin=p Then iMin=iMax C、If iMax=p Then iMin =iMax D、If iMin=p Then iMax=iMin
上一页 1071 1072 1073 1074 1075 下一页 跳转