将数组a中的8 个数据“18,33,5,26,86,0,60,200”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换的次数是(  )
A.4B.5C.6D.7
当前题号:1 | 题型:选择题 | 难度:0.99
(加试题)有以下程序段,
m=0:n=0
For i=1 to 3
For j=5 to i+1 step -1
n=n+1
If a(j)<a(j-1) then
t=a(j):a(j)=a(j-1):a(j-1)=t
m=m+1
End if
Next j
Next i
数组元素a(1)到a(5)的值依次为“10,45,8,6,20”,程序运行后,变量m和n的值分别为
A.6,9B.9,9C.9,6D.5,6
当前题号:2 | 题型:选择题 | 难度:0.99
(加试题)小王要对字符串“welcome”进行重新排列,程序界面如图所示,则该程序执行后文本框 Text2 中显示的结果为(  )

Private Sub Command2_Click()
 Dim a(1 To 7) As String
 Dim i, j, t2, m,cd As Integer
Dim s, t, p As String
 s = Text1.text
 cd=Len(s)
 For m = 1 To cd
  a(m) = Mid(s, m, 1)
 Next m
 For i = 1 To 2
  For j = cd To i + 1 Step -1
   If a(j) < a(j - 1) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t
  Next j
 Next i
For t2 = 1 To cd
  p = p + a(t2)
 Next t2
 Text2.Text = p
End Sub
A.welcomeB.ceelmowC.cewelmoD.womleec
当前题号:3 | 题型:选择题 | 难度:0.99
(加试题) 有一组正整数,要求对其中的数据进行排列, 排列后奇数在前, 偶数在后。 其中最后一个数据排到奇数与偶数交接处;自前到后的第一个偶数排到最后一个位置,空出的位置排列自后向前的第一个奇数,依此类推。 排序示例如下。

实现上述功能的 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
'⑴__________________
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
   '⑵____________________
'依次输出排序后的数据,代码略。
End Sub
当前题号:4 | 题型:填空题 | 难度:0.99
(加试题)一个无序整数数组,对它排序,使其前半部分都为奇数有序,后半部分为偶数有序。
基本想法:利用插入排序算法,对奇偶子序列分别插入排序。用两个变量把整个数组分割为三个部分,第一个部分为奇数有序子序列,第二部分为偶数有序子序列,第三部分为未排序子序列。使用两个变量进行分割,mid 指向偶数有序子序列的一个元素,end1 指向未排序子序列(等待一个个插入前面的奇数有序子序列或偶数有序子序列)。

Const n = 7
Dim a(-1 To n) As Integer
Private Sub Form_Load()
'随机生成7个不重复的正整数到a()数组中。代码略
End Sub
Private Sub Command1_Click()
Dim mid As Integer, end1 As Integer
Dim i As Integer, j As Integer, num As Integer
mid = 0: end1 = 0
Do While end1 <= n
num = a(mid)   ‘①
j = end1
If num Mod 2 = 1 Then
Do While j - 1 >= mid and a(j - 1) < num ‘②
a(j) = a(j - 1)
j = j - 1
Loop
a(j) = num
mid = mid + 1
Else
Do While a(j - 1) > num And j - 1 >= mid
a(j) = a(j - 1)
j = j - 1
Loop
a(j) = num
End If
end1 = end1 + 1
Loop
For i = 0 To n
List1.AddItem Str(a(i))
Next i
End Sub
划线处的代码有误,请改正:
①___________________________
②___________________________
当前题号:5 | 题型:填空题 | 难度:0.99
(加试题)某程序代码如下:
Private Sub Command1_Click()
Dim c  As Integer
Dim a(1 To 20) As String
s = "123 how are you": c = 0
For i = 1 To Len(s)
a(i) = Mid(s, i, 1)
Next i
For i = 1 To Len(s) - 1
For j = Len(s) To i + 1 Step -1
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
For i = 1 To Len(s) - 1
If a(i) < a(i + 1) Then c = c + 1
Next i
Text2.Text = Str(c)
End Sub程序运行结束后,变量c的值是( )
A.13B.11C.10D.15
当前题号:6 | 题型:选择题 | 难度:0.99
某书城五种畅销图书的市场价格(单位:元)存放在数组d中,如下表所示。现对这些数据进行升序排列,若采用冒泡排序算法自下而上进行比较和交换,那么在第一遍加工后,d[2]的值是______ 。
d[1]
26
d[2]
32
d[3]
20
d[4]
29
d[5]
36
 
当前题号:7 | 题型:填空题 | 难度:0.99
对学生数据排序,排序后男生在前,女生在后,(“M”表示男,“F”表示女),男生和女生分别按“姓名”升序排序。编写一个VB程序,功能如下:在列表框list1中显示排序前学生数据,单击“排序”按钮Command1,在列表框list2中显示排序后的结果。程序运行界面如图所示。

实现上述功能的 VB程序如下,但加框处代码有错,请改正。
Const n = 10
Dim xm(1 To n)As String, xb(1 To n)As String
Function adj(sAs String, n As Integer) As String
'函数功能:在字符串 s 后添加若干个空格,使其长度变为 n,代码略。
End Function
Private Sub Form1_Load(   )
'读取 10 个学生姓名和性别分别存数组 xm、xb,
并在列表框 list1 中显示,代码略。
End Sub
Private Sub Command1Click
Dim i As Integer, j As Integer
i = 1
Do While i <= n - 1

j = n-1 '(1)________

Do While j >= i + 1

If xb(j) = "M" And xb(j - 1) = "F" Or xm(j) < xm(j - 1) Then '(2)________
temp = xm(j): xm(j) = xm(j - 1): xm(j - 1) = temp
temp = xb(j): xb(j) = xb(j - 1): xb(j - 1) = temp
End If
j = j - 1

Loop

i = i + 1

Loop
For i = 1 To n

List2.AddItem adj(xm(i), 12) + " " + xb(i)

Next i
End Sub
当前题号:8 | 题型:填空题 | 难度:0.99
(加试题)有如下程序段:
k = 0 : First = 1 : Last = 5 : Flag = True
Do While Flag
k = k + 1
p = False : Flag = False
For j = First To Last
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
Last = j : Flag = True
If p = False Then
First = j :p = True
End If
End If
Next j
If First <> 1 Then First = First - 1
Last = Last - 1
Loop
数组元素a(1)到a(6)的值依次为“3,6,8,5,7,9”,经过该程序段“加工”后,下列说法正确的是( )
A.此过程中数据共交换了3次B.此过程中该数组的数据共比较了7次
C.变量k的值为2D.数组元素a(1)到a(6)的数未排成有序
当前题号:9 | 题型:选择题 | 难度:0.99