相关试卷

  • 1、有如下VB程序段:

    i = 1: j = 10: k = 6

    Do While i < = j

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

      If k= a(m) Then

        Exit Do

      ElseIf k < a(m) Then

        j = m-1

      Else

        i=m+1

      End if

    Loop

    数组元素a(1)到a(10)的值依次为3,5,7,10,12,15,17,18,21,25,该段程序运行后,在查找数值6的过程中,i,j,m的值分别是(  )

    A、i=2,j=3,m=3 B、i=3,j=2,m=3 C、i=3,j=3,m=3 D、i=1,j=4,m=2
  • 2、数组元素a(1)到a(10)中存储有10个整数,依次为2,5,7,7,9,11,12,13,13,17,使用两种算法查找特定的整数,部分程序如下:

    ‘顺序查找代码,查找次数用变量p表示

    For i =1 To 10

      If a (i) = Key Then

        p=i

      Exit For

      End If

    Next i

    ‘对分查找代码,查找次数用变量q表示

    i = 1: 1 = 10: find = False

    Do While i < = j And find= False

      x = (1+j) \ 2

      q = q+1

      If a(x) = Key Then find = True

      If a(x) > Key Then j=x- 1

      If a(x) < Key Then i = x+1

    Loop

    若变量Key的值为13,则程序运行后,变量p和q的值分别是(  )

    A、8,2 B、9,2 C、8,3 D、9,3
  • 3、某数组有10个元素,依次为5、12、16、23、27、3、35、41、49、50,下列选项中正确的是(  )
    A、使用对分查找算法查找数据12,需要的查找次数是3 B、使用顺序查找算法查找数据50,需要的查找次数是9 C、使用对分查找算法查找数据41,需要的查找次数是2 D、使用顺序查找算法查找数据5,需要的查找次数是0
  • 4、某对分查找算法的VB程序段如下:

    i = 1: j = 8: s =“”

    key =“sheep”

    Do While i < =j

      m =(i+j)\2

      If key = a(m) Then

      s = s + “M”

      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(8)的值依次为“tiger, snake, sheep, rabbit, pig, muse, monkey, dog”,该程序段执行后,文本框Text1中显示的内容是(  )

    A、LR B、RLM C、LRM D、LRL
  • 5、某对分查找算法的VB程序段如下:

    i = 1: j = 9: n = 0

    key = val (Text1.text)

    Do While i < = j

    n=n+1

    m = Fix((+j)/2)

    If key=d(m) Then Exit Do     ‘Exit Do表示退出循环

    If key < d (m) Then

      j = m-1

    Else

      i=m+1

      End If

    Loop

    数组元素d(1)到d(9)的值依次为“7,12,18,2,39,58,61,72,86”。若该程序段运行结束后,n的值为2,则key的值是(  )

    A、39 B、18或61 C、18或72 D、12或61
  • 6、按钮Command1的鼠标单击事件处理过程如下:

    Private Sub Command1_Click ( )

    Dim st (1 To 6) As string

    st(1)= “she”: st(2)= “her”: st(3)=“your”

    st(4)=“me”: st(5)= “you”: st(6) =“i”

      Key Text1 Text

      t= False

      i = 0

      Do While i < 6 And t= False

        i=i+1

        If st(i) = Key Then t = True

      Loop

      If t= False Then i =0

      Text2. Text Str(i)

    End Sub

    程序运行时,在文本框中输入“you”后单击按钮Command1,则文本框Text2中显示的内容是(  )

    A、0 B、1 C、5 D、7
  • 7、报名参加冬季越野赛跑的某班5位学生的学号是5,8,11,33,45利用对分查找算法查找学号为33的学生的过程中,依次被访问到的学号是(  )
    A、5,11,33 B、8,33 C、11,45,33 D、11,33
  • 8、某有序数组为6,15,18,22,25,38,45,若采用对分查找算法进行查找,则平均查找次数为(  )
    A、7/2 B、6/7 C、4/2 D、17/7
  • 9、某数组有7个元素,依次为2001、2005、2008、2009、2010、2015、2018,若采用对分查找中算法在该数组中查找数据2018,需要查找的次数是(  )
    A、1 B、2 C、3 D、4
  • 10、有以下两组数据:

    ①54,31,43,12,8,73,56,34,89,60,23,67;

    ②87,83,75,70,63,59,55,37,33,21,17,7。

    下列有关查找方法的描述不正确的是(  )

    A、①可以直接使用顺序查找 B、②可以直接使用对分查找 C、①可以直接使用对分查找 D、②可以直接使用顺序查找
  • 11、编写VB程序,实现如下功能:程序运行时,单击命令按钮 Command1产生100个随机字符串(每个字符串的长度不超过10),并显示在列表框List1中单击命令按钮Command2对产生的100个随机字符串按权值进行降序排序,将排序结果显示在列表框List2中。每个字符串的权值定义为该字符串中ASCⅡ码值最大的学母的ASCⅡ码值,例如字符串“Hello”中ASC码值最大的字母是“o”(ASCⅡ码值为111),则字符串“Hello”的权值为111。程序运行效果如图所示。

    实现上述功能的VB代码如下,在划线处填入合适的代码。

    Dim a (1 To 100) As String   ‘ 依次存放100个随机字符串

    Dim b (1 To 100) As Integer   ‘ 依次存放每个字符串的权值

    Private sub command1_Click( )   ‘ 产生100个随机字符串

    Dim i As Integer, k As Integer, j As Integer,x As Integer

    For i=1 To 100

      k=Int (Rnd*7+3)   ‘k表示第i个字符串的长度

      For j = 1 To k   ‘通过循环产生第i个字符串并存储在a(i)中

        If Int(Rnd*2+1) = 1 Then   ‘ 产生一个小写字母的 ASCⅡ码值

          x = Asc("a")+ Int (Rnd*26)

        Else

          x = Asc("A") + Int(Rnd*26) ‘ 产生一个大写字母的ASCⅡ码值

              ①        

        a(i) = a(i)+Chr (x)

      Next j

      List1 AddItem a(i)

    Next i

    End Sub

    Private sub command2_Click( )’ 对100个字符串按字符串权值降序排序

    Dim i As Integer, j As Integer, y As Integer, s As string

    For i =1 To 99

      k =1

      For = i + 1 To 100

              ③      

      Next j

      If k <> Then

        s = a(k) : a(k) = a(1) : a(1) = s

        y = b(k) : b(k) = b(1):b(i) = y

      End If

    Next i

    For i=1 To 100

      List2 AddItem a(i)

    Next i

    End sub

     ② ③ 

  • 12、有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后排序示例如下。

    排序前

    86

    71

    5

    41

    81

    79

    37

    89

    排序后

    5

    37

    41

    71

    79

    89

    86

    81

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

    Const n = 8

    Dim a(1 To n) As Integer

    Private Sub Command1_ click ( )

    Dim i As Integer, j As Integer, k As Integer, t As Integer

    Dim flag As Boolean, sl As String, s2 As String

    ‘ 读取一组正整数,存储在数组a中

    ‘ 代码略

    For i = 1 To n

      s1 = s1 + Str(a(i))

    Next i

    Text1. Text = s1

    For i = 1 To n-1

            ‘①

        If IsPrime(a(k)) Then flag = True

        Else flag = False

        For j = i + 1 To n

          If IsPrime (a(j)) Then

            If       Then    ‘②

              k = j

              flag = True

            End If

          End If

        Next j

        If k <> i Then

          t = a(k):a(k) = a(i):a(i) = t

        End If

      If Not flag Then Exit For ‘ Exit For表示退出循环

      Next i

      ‘依次输出排序后的数据

      ‘代码略

      For i=1 To n

        s2 = s2 + Str(a(i))

      Next i

      Text2. Text = s2

    End Sub

    Function IsPrime (m As Integer) As Boolean

    ‘ 本函数判断整数m是不是素数。是素数返回值为True,不是素数返回值为False

    ‘ 代码略

    End Function

    加框①处代码应改为

    加框②处代码应改为

  • 13、小明使用VB编写了一个按降序排名次的程序当数据相同时,排名相同)。程序运行时,随机产生10个[30,60]之间的随机数,并输出在列表框List中,单击“排名”按钮 Command1,在列表框List2中输出数据及其排名,程序运行界面如图所示。

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

    Dim a (1 To 10) As Integer

    Dim mc (1 To 10) As Integer

    Private Sub Form Load( )

    ‘ 随机产生10个[30, 60]之间的随机数,保存在数组a中,并输出到列表框List1

    ‘ 代码略

    End sub

    Private Sub Command1_Click( )

    Dim i As Integer, 3 As Integer, k As Integer

    For i = 1 To 10

      k = 0

      For j = 1 To 10

        If  Then     ‘ ①

          k=k+1

              ‘ ②

        End If

      Next j

    Next i

    For i = 1 To 10

      List2.AddItem Str(a(i)) + " " + Str(mc(i))

    Next i

    End Sub

    加框①处代码应改为

    加框②处代码应改为

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

    小赵编写的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、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
  • 15、有如下VB程序段:

    For n =1 To 4

      p = n

      For m = n+1 To 5

        If a(m) < a(p) Then p = m

      Next m

      If p > n Then

        temp=a(n): a(n) = a(p): a(p)= temp

      End if

    Next n

    设数组元素a(1)~a(5)的值分别为“1000,1200,1018,1208,1019”,经过该程序段“加工”后,a(1)+a(3)的值为(  )

    A、2018 B、2019 C、2200 D、2208
  • 16、采用下面的排序算法对数组a中元素进行排序。

    Private Sub Command1_ Click ( )

      Dim a(1 To 5) As Integer, i As Integer, 3 As Integer, c As Integer

      a(1) = 22: a(2) = 44: a(3) = 11: a(4) =33: a(5) = 55: c = 0

      For i = 1 To 4

    m = i

    For j = i + 1 To 5

      If a(i) > a(m) Then m = j

        Next j

        If m <> i Then

          t=a(1) : a(i)=a(m) : a(m)=t

          c=c+1

        End If

      Next i

      Label1.Caption= Str (c)

    End sub

    该程序运行后,标签Label1中显示的内容是(  )

    A、2 B、3 C、4 D、7
  • 17、有如下VB程序段:

    s = "7218634594”

    n = Len(s) : c = 0

    For i = 1 To n-1

      a(i) = Val(Mid(s, i, 2)

    Next i

    For i= 1 To n-2 Step 2

      k = i

      For j= i+2 To n-1 Step 2

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

      Next j

      If k <>i Then

        t=a(i): a(i)=a(k): a(k)=t

        c=c+1

      End if

    Next i

    Text1.Text=str(c)

    该程序段运行后,Text1中显示的内容是(  )

    A、1 B、2 C、3 D、4
  • 18、有如下VB程序段,其中数组元素a(1)到a(5)的值依次为“41,66,70,83,31”

    For i = 5 To 4 Step -1

      k=i

      For j = 6-1 To 1 Step-1

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

      Next j

      If k <>i Then

        t = a(i) : a(i) = a(k) : a(k) =t

      End if

    Next i

    则该程序段运行后,数组元素a(1)到a(5)的值依次为(  )

    A、31,41,66,83,70 B、83,70,66,41,31 C、83,66,70,41,31 D、31,41,66,70,83
  • 19、对数组元素d(1)到d(10)进行从小到大的排序其选择排序算法的VB程序段如下

    For m=1 To 9

      p=m

      For n = m+1 To 10

                   

      Next n

      If p<>m Then

        tt=(p): (p)=d(m): d(m)=tt

      End If

    Next m

    划线处的语句是(  )

    A、If d(n)<d(p) Then p=m B、If d(n)<d(p) Then p=n C、If d(n)>(p) Then p=n D、If d(n)>d(p) Then p=m
  • 20、实现某排序算法的部分VB程序如下:(  )

    For i =1 To 6

      k=i

      For j = i+1 To 7

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

      Next j

      If i <> k Then

        t = a(i): a(i) = a(k): a(k) = t

      End If

    Next i

    在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”,则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是(  )

    A、10,11,41,75,12,63,85 B、10,11,75,12,63,41,85 C、11,12,7,3,418 D、10,11,12,41,63,75,85
上一页 1381 1382 1383 1384 1385 下一页 跳转