试题

试题 试卷

logo

题型:填空题 题类:常考题 难易度:困难

浙江省台州市联谊五校2018-2019学年高二下学期信息技术期中考试试卷

【加试题】编写一个 VB 程序实现数据左右交替上升排序。功能如下:随机产生n个不重复的整数存数组a,并在列表框list1中显示,单击“排序”按钮Command1,在列表框list2中显示排序后的数据。某遍程序运行后,数组a中存储的左右交替上升排序的n个正整数,如下表所示:

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

Const n = 10

Dim a(1 To n) As Integer

Private Sub Form_Load()

    随机产生 n 个不重复的整数存数组 a,并在列表框 list1 中显示。代码略。

End Sub

Private Sub Command1_Click()

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

    Dim imin1 As Integer, imin2 As Integer

    For i = 1 To n \ 2

      imin1 = i: imin2 = i + 1

    If a(imin1) > a(imin2) Then t = imin1: imin1 = imin2: imin2 = t

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

      If a(j) < a(imin1) Then

      imin2 = imin1: imin1 = j

      '①

      imin2 = j

    End If

Next j

If i <> imin1 Then t = a(i): a(i) = a(imin1): a(imin1) = t

If imin2 = i Then    '②

If n - i + 1 <> imin2 Then

    t = a(n - i + 1): a(n - i + 1) = a(imin2): a(imin2) = t

End if

Next i

For i = 1 To n

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

Next i

End Sub

  ②

举一反三
活动课上,n个学生要两两组队进行拔河比赛,要求每个小组总体重不超过120kg,小林想知道最多可以组成多少个队伍,并希望得到可行的组队方案。于是设计了如下界面的程序,在文本框Text1中输入n 个学生的体重(数字之间用逗号隔开),单击“队伍”按钮Command1后在标签Label1上显示最多可组队数量,同时在列表框List1输出方案。

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

Dim n As Integer

Dim a(1 To 50) As Integer

Sub makedata(s As String)     ‘该过程实现将输入的体重分别存入数组a中

Dim in As Long, x As Long, c As String, i As Integer

m=Len (s) : n=0

For i=1 To m

 c=Mid(s, i, 1)

 If c >=“0” And c <=“9” Then

  {#blank#}1{#/blank#}

  x=x+Asc(c)-Asc(“0”)

 Else

  If x > 0 Then n=n+1: a(n)=x

  x=0

 End If

Next i

n=n+1: a(n)=x

End Sub

Private Sub Command1_Click()

Dim s As String, i As Integer, j As Integer, t As Integer

Dim cnt As Integer, st As Integer, ed As Integer

s=Text1.Text Call makedata(s)      ‘调用过程

For i=1 To n-1     ‘实现降序排序

For j=n To i+1 Step-1

If{#blank#}2{#/blank#}Then

a(j)=a(j)+a(j-1) : a(j-1)=a(j)-a(j-1) :{#blank#}3{#/blank#}

  End If

 Next j

Next i

‘下列程序段实现计算最多可组队伍

cnt=0: st=1: ed=n

Do While st < ed

 If a(st)+a(ecl) <=120 Then

  List1. AddItem Str(a(st))+“和”+Str(a(ed))+“组队”

  cnt=cnt+1

  st=st+1

  {#blank#}4{#/blank#}

 Else

  st=st+1

 End If

Loop

Label2. Caption=“最多可以组”+Str (cnt)+“组队伍”

End Sub

返回首页

试题篮