试题

试题 试卷

logo

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

浙江省嘉兴市第一中学2017-2018学年高二下学期信息技术期中考试试卷

【加试题】有如下 VB程序段:

For i = 1 To 2

k = i

  For j = 6 To i + 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(6)的值依次为“71,46,31,58,29,78”,经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为(  )

A、29,31,46,58,71,78 B、78,71,58,46,31,29 C、46,29,31,58,71,78 D、78,71,31,58,29,46
举一反三
原始的冒泡排序是单向的,它始终是从第一个(或最后一个)一个元素开始扫描。小王对冒泡排序进行了改进,从两端进行扫描,首先从数组的左端到右端进行扫描,把最大的数往后交换(以升序为例),再从右端到左端进行扫描,把最小的数往前交换,多次扫描后,最终得到一个有序的序列。他定义了left1、right1两个变量,变量left1表示左边指针,变量right1表示右边指针,每一遍排序,左边指针向右移动一位,右边指针向左移动一位。一趟排序,把最大值沉到最后一个,最小值冒泡到最前一个,最终让数组有序。运行界面如图a,单击“生成数据”按钮在列表框List1中显示生成的10个随机数,单击“排序”按钮后,将排序结果显示在列表框List2中。

实现上述功能的 VB 程序如下,请回答下列问题:

Dim b(1 To 10) As Integer

Dim left1 As Integer, right1 As Integer Private Sub Cd1_Click()

Dim i As Integer, j As Integer

  For i = 1 To 10

b(i) = Int(Rnd * 100) + 10 List1.AddItem Str(b(i))

  Next i left1 = 1 right1  = 10

End Sub

Private Sub Cd2_Click()

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

Do While left1 < right1

    For j = left1 To right1 - 1

    If b(j) > b(j + 1) Then

        t = b(j): b(j) = b(j + 1): b(j + 1) = t

    End If

    Next j

    For j = right1 To    ‘改错

        If b(j) < b(j - 1) Then

            t = b(j): b(j) = b(j - 1): b(j - 1) = t end If

    Next j

    right1 =           ‘填空

Loop

‘将排序结果显示在列表表框List2中,代码略

End Sub

返回首页

试题篮