题型:单选题 题类:常考题 难易度:普通
浙江省高中信息技术 排序算法及程序实现同步练习
For i=1 To 2
For j=1 To 6-i
If a(j)<a(j+1) Then
k=a(j):a(j)=a(j+1):a(j+1)=k
End If
Next j
Next i
数组元素a(1)到a(6)的值依次为“71,54,58,29,31,78”,经过该程序段处理后,数组元素a(1)到a(6)的值依次为( )
科目 |
政治 |
历史 |
地理 |
物理 |
化学 |
生物 |
技术 |
人数 |
193 |
151 |
112 |
186 |
167 |
103 |
179 |
设计VB程序,实现功能:将每个科目的选课人数按照选考人数降序排序后输出。其中,科目名称存放在数组a(i)中,人数存放在数组b(i)中。
程序运行界面设计如图所示,左边列表框List1是显示科目名称和选课人数,单击“排序”按钮Command1后,在右边的列表框List2中显示排序后的科目名称和选课人数。
Command1的处理事件过程如下,但加框处代码有错,请改正。
Private Sub command1_click()
Dim a(1 To 7) As String
Dim b(1 To 7) As Integer
Dim i As Integer, j As Integer, p As String, q As Integer
For i = 1 To 7
List1.AddItem a(i) + " " + Str(b(i))
Next i
For i = 1 To 6
k = i
For j = i + 1 To 7
Next j
If i <> k Then
p = a(i): a(i) = a(k): a(k) = p
End If
Next i
For i = 1 To 7
List2.AddItem a(i) + " " + Str(b(i))
Next i
End Sub
①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#}
排序前 |
71 |
85 |
64 |
55 |
42 |
62 |
33 |
17 |
34 |
30 |
排序后 |
71 |
85 |
17 |
55 |
33 |
30 |
62 |
42 |
34 |
64 |
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n=10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer,j As Integer
Dim temp As Integer,flag As Boolean
'读取一组正整数,存储在数组a中,代码略
i=1:j=n
temp=a(j):flag=True
Do While i<j
If flag Then
If a(i) Mod 2=0 Then
a(j)=a(i)
j=j-1
flag=Not flag
Else
'{#blank#}1{#/blank#}
End If
Else
If a(j) Mod 2=1 Then
a(i)=a(j)
flag=Not flag
Else
j=j-1
End If
End If
Loop
' {#blank#}2{#/blank#}
'依次输出排序后的数据,代码略。
End Sub
试题篮