试题

试题 试卷

logo

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

浙江省义乌市群星外国语学校2017届高三上学期期中考试信息技术试题

合唱队列是按队员的身高进行排列,形成中间高两边有序降低的队形;例如有六个队员“己、戊、丁、丙、乙和甲”的身高依次由小到大,则排列后的顺序为“戊、丙、甲、乙、丁、己”。小李用VB编写模拟“合唱队列”程序,功能如下:在文本框Text1中输入各队员身高,输入结束并回车,则输入的各队员身高分别存入数组a中;单击“合唱队列”按钮Command1,对数组a的元素进行有序排列后,将各元素存入数组C中形成合唱队列,并将结果显示在文本框Text2中。程序运行界面如图所示: 甲、乙、丙、丁、戊和己

    实现上述功能的VB程序如下:       

(1)、如果输入各队员身高为“190,191,194,179,166”,则合唱队列的结果为
(2)、实现上述功能的VB程序如下,请在划线处填入合适代码。

Dim a(1 To 20) As Integer

Dim n As Integer

Private Sub Text1_KeyPress(KeyAscii As Integer)

'将输入各队员身高分别存入数组a中,队员个数为n,代码略!

End Sub

Private Sub Command1_Click()

Dim c(1 To 20) As Integer

Dim right As Integer, left As Integer, i As Integer

For i = 1 To n – 1          

    For j =1 To n-i

        If      ①      Then          

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

        End If

    Next j

Next i

‘下列程序段实现数组C的合唱队列

m = (1 + n) \ 2

left = m: right = m

c(m) = a(n)      

i = 2

Do While i <= n

    If  i  Mod 2 = 0  Then

        right = right + 1

        c(right) = a(n-i+1)

    Else

                 ②      

        c(left) = a(n-i+1)

    End If

    i = i + 1

Loop

s =      ③     

For i = 2 To n

    s = s + "," + Str(c(i))

Next i

Text2.Text = s

End Sub

 ② ③ 

举一反三
下列VB程序实现数字字母混合序列分离后分别排序,最后又合并输出。具体算法如下:在文本框Text1输入若干组混合序列,每组序列中仅包含一组字母和一个多位数字,序列之间用逗号隔开,以逗号结束。单击“排序”按钮command1,把每组序列中的字母和数字分开,并分别排序,最后在列表框list1输出。排序规则如下:所有数字按从小到大升序排序,字母序列按长度升序排序,若长度相同,直接按字母序列大小升序排序(按字母的ASCII码排序,“A”<“Z”<“a”<“z”)。实现算法的部分程序界面如图所示,VB程序代码如下,回答下列问题:

Private Sub Command1_Click()

Dim a(1 To 6) As Integer, b(1 To 6) As String, i as integer, j as integer

Dim c As String, k As Integer, tmp1 As Integer, tmp2 As String

s=text1.text

i = 1: k = 1: tmp1 = 0: tmp2 = ""

Do While i <= Len(s)

      c = Mid(s, i, 1)

      If c = "," Then

         a(k) = tmp1: b(k) = tmp2

         tmp1 = 0: tmp2 = ""

              ①    

      Else

        If  Then 

           tmp2 = tmp2 + c

        Else

         tmp1=tmp1*10+val(c)

        End If

      End If

      i = i + 1

    Loop

    For i = 1 To 5

      For j = 1 To 6 - i

        If a(j) > a(j + 1) Then tmp1 = a(j): a(j) = a(j + 1): a(j + 1) = tmp1

    If Len(b(j)) > Len(b(j + 1)) Or      ②       Then

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

        End If

      Next j

    Next i

    For i = 1 To 6

      List1.AddItem Str(a(i)) + b(i)

    Next i

    End Sub

返回首页

试题篮