试题

试题 试卷

logo

题型:单选题 题类:模拟题 难易度:困难

浙江省普通高校招生信息技术选考模拟卷(一)

【加试题】小张编写程序,实现把数据temp插入到升序序列中,得到一个新的升序序列,原升序序列各元素已依次存放在数组元素a(1)、a(2)、a(3)、……、a(n)中。他编写的VB程序段如下:要使程序实现上述功能,则方框①②中的语句分别是(  )

If temp >= a(n) Then

a(n + 1) = temp

Else

j = n

Do While j >= 1 And temp < a(j)

       ①            

j = j -1

Loop

         ②            

End If

A、①a(j + 1) = a(j) ②a(j + 1) = temp B、①a(j) = a(j-1) ②a(j + 1) = temp C、①a(j + 1) = a(j) ②a(j) = temp D、①a(j) = a(j-1) ②a(j) = temp
举一反三
小王基于选择排序算法编写了一个VB程序,功能如下:读取若干数据依次存储在数组a中,并将数据分段排序,每段数据的元素个数及排序的次序要求依次存储在数组b中。如图,在文本框Text1中显示数组a的原始数据,在文本框Text2中显示每段数据的元素个数及排序次序要求(0表示升序、1表示降序);单击“排序”按钮Command1,根据要求输出对每段数据进行排序的结果。实现上述功能的VB程序如下:

Dim n As Integer

Dim a(1 To 100) As Integer

Dim b(1 To 100) As Integer

Private Sub Form Load()

‘读取若干数据依次存储到数组a中,并将数据元素的总个数存储到变量n中。

‘将每段数据的元素个数及排序的次序依次存储到数组b中;

‘b(1)、b(2)分别存储第1段数据的元素个数、排序的次序,

‘b(3)、b(4)分别存储第2段数据的元素个数、排序的次序,.....

“代码略。

End Sub

Private Sub Command1_Click())

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

    Dim pb As Integer, endpos As Integer

    pb=1: endpos =b(1)

    For i=1 To n-1

        If i=endpos Then

            pb=pb+2:i=endpos+1

               ①  

        End If

        k=i

        For j =i+1 To endpos

            If  Then k=j     ‘⑵

        Next j

        If k<>i Then

                ②  

        End If

    Next i

    Text3.Text =""     ‘⑷

    For i=1 To n

        Text3.Text=Text3.Text + Str(a(i))

    Next i

End Sub

小吴为了研究冒泡排序过程中数据的”移动”情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前数据(存储在数组a中),在文本框'Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Labell中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。

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

Dim a(1 To 8)As Integer

Dim n As Integer

Private Sub Form_Load()

    a(1)= 30:a(2)= 47:a(3)= 30:a(4)= 72

    a(5)= 70:a(6)= 23:a(7)= 99:a(8)= 24

    n = 8

    For i = 1 To 8

      List 1.Addltem a(i)

    Next i

End Sub

Private Sub Command1_Click()

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

    Dim pos As Integer

    Dim s As String

    s = Text1.Text

    pos = Val(Text1.Text)

    For i = 1 To n- 1

      For j = n To i+1 Step-1

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

                ‘⑴

          a(j-1)= a(j)

          a(j)= k

          '如果pos位置的数据参与交换,则更新pos值,记录pos变化位置

          If pos = j Then

            pos = j-1

            s = s + " →" + Str(pos)

              ‘⑵

            pos = j

            s = s + " →" + Str(pos)

          End If

        End If

      Next j

    Next i

    Label1.Caption = "位置变化情况:" +s

    For i = 1 To n

      List2.AddItem Str(a(i))

    Next i

End Sub

⑴{#blank#}1{#/blank#} ⑵{#blank#}2{#/blank#} 

返回首页

试题篮