用枚举算法求解“找出所有满足各位数字之和等于5的三位数”时,在下列所列举的数值范围内,算法执行效率最高的是(  )
A.从0到999B.从100到999
C.从100到500D.从104到500
当前题号:1 | 题型:选择题 | 难度:0.99
下列问题适合使用枚举算法解决的是()
A.计算已知半径的圆面积B.计程车计费
C.校园歌曲大赛的成绩排名D.找出1000以内的所有素数
当前题号:2 | 题型:选择题 | 难度:0.99
有如下VB程序段:
For i = 1 To 2
For j = 5 To i + 1 Step -1
If d(j) >d(i) Then
t = d(j): d(j) = d(i): d(i) = t
End If
Next j
List1.additem  str(d(i+1))
Next i
数组元素d(1)到d(5)的值依次为34,25,46,17,78,经过该程序段“加工”后,则List1列表框中显示的结果为(  )
A.78 46 34 17 25B.25 34
C.17 25 34 46 78D.78 46
当前题号:3 | 题型:选择题 | 难度:0.99
插入排序。小明用VB设计程序,主要功能如下:随机产生10个介于1到100之间的正整数数列,按升序排序后显示在List1列表框中,在文本框Text1中输入1个100以内的正整数,单击“插入”按钮Command1后将其插入到数列中,并保持数列仍然有序,显示在列表List2中,同时在标签Label4中显示插入的位置,程序界面如下图所示。

实现上述功能的VB程序代码如下,但是有两个地方有误,请改正。
Dim a(1 To 15) As Integer
Dim i, j As Integer
Const n=10
Private Sub Form_Load()

Randomize '随机生成n个1到100之间的正整数

For i = 1 To n

a(i) = Int(Rnd * 100) + 1

Next i

'将10个数从小到大排序

For i = 1 To n-1

k = i

For j = i + 1 To n

If  a(k) < a(j)  Then k = j ‘(1)

Next j

If i <> k Then

   t = a(i): a(i) = a(k): a(k) = t

End If

Next i

'将排好序的数输出在列表框Listl中

List1.Clear

For i = 1 To n

List1.AddItem Str(a(i))

Next i

End Sub
Private Sub Command1_Click()

Dim key As Integer

key = Val(Text1.Text)

i = 1

Do While key > a(i) And (i <= n)

i = i + 1

Loop

Label4.Caption = "该数插入的位置是:" + Str(i)

If i = 11 Then

  a(i) = key

Else

 For j = n+1 To i + 1 Step -1
a(j-1) = a(j+1) ‘(2)
Next j
a(i) = key

End If

List2.Clear

For i = 1 To 11

List2.AddItem a(i)

Next i

End Sub
当前题号:4 | 题型:填空题 | 难度:0.99
某 VB 程序代码如下:
For i = 1 To 3
For j = 5 To i Step -1
If a(j) < a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
List1.AddItem Str(a(i)) Next i
数组元素 a(1)到 a(6)的数据依次为“1,5,7,6,9,3”,经过该程序段加工后,列表框 list1 中显示的内容是( )
A.9 7  6B.1  3 5C.9 7 6 1 5 3D.9 7  6  5 3  1
当前题号:5 | 题型:选择题 | 难度:0.99
小王用 VB 编写一个自动统计离散数据的“极大值”(如图 a 所示)个数的程序。 功能如下:在列表框 List1 中随机产生 n 个介于[1,99]的正整数,单击“统计极大值”命令按钮 Command1,程序自动统计出极大值,并将其输出到列表框 List2,且将其中的最大值输出在标签 Label1 中。程序界面如图 b 所示,实现上述功能的 VB 程序如下。(假设:数据的左右两个端点不 计入极大值,且相等的两个值也不计入极大值)。请回答以下问题:

图 a 图 b
(1)当 n=6,原始数据为“8 39 24 5 71 25”,此时极大值有:  。
(2)请在划线处填入合适的代码。 Const n = 10
Dim a(1 To n) As Integer    '存储原始数据 Dim Max(1 To n) As Integer  '存储极大值数据
Private Sub Form_Load() '原始数据初始化
Randomize
For i = 1 To n
a(i) = ①  '产生[1,99]间随机整数
List1.AddItem Str(a(i))
Next i End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim count As Integer, Maxa As Integer
count = 0
List2.Clear
For i = 2 To n - 1 '统计极大值,左右两边端点值除外
If   ②     Then
count = count + 1
    ③   = a(i)
End If
Next i
Maxa = 0
For i = 1 To count
List2.AddItem Str(Max(i))
If Maxa < Max(i) Then
Maxa = Max(i)
End If
Next i
Label1.Caption = "极大值中的最大值为:" + Str(Maxa) End Sub
当前题号:6 | 题型:填空题 | 难度:0.99
若一个正整数从左向右读与从右向左读都一样,我们就将其称之为回文数。如 11、121 均是回文数。请你编写程序,输出 10 至 n 之间的所有回文数。程序运行界面如图所示, 在文本框 Text1 中输入一个正整数 n,单击“查找”按钮 Command1,在列表框 List1 中显示 10 – n 之间的所有回文数,并且在标签 Label1 中输出查找到回文数的总数。

问题:实现上述功能的 VB 代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim n as long , sum as long , i As Long Dim x as long , y as long
List1.Clear
n = Val(Text1.Text) sum = 0
For i = 10 To n
  x = n   ’(1)
y = 0    
Do While x > 0
    y =  x Mod 10 ’(2)
x = x \ 10
Loop
If y = i Then
List1.additem  Str(i)
sum = sum+1
End if Next i
Label1.caption = “共有”& Str(sum) & “个回文数” End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
小孟为提高效率,对选择排序算法进行了如下改进:在数组的所有元素中找出最小和最大数据的元素,然后将这两个元素分别与第一个和最后一个元素交换数据,在余下的元素中找出最小和最大数据的元素,分别与第二个和倒数第二个元素交换数据,以此类推,直到所有元素的数据按升序排列。小赵编写的VB程序段如下:
p = 1: q = 10
Do While p < q
iMin = p: iMax = p
For i = p + 1 To q
If a(i) < a(iMin) Then
iMin = i
elseIf a(i) > a(iMax) Then
iMax = i
endif
Next i
t = a(iMax): a(iMax) = a(q): a(q) = t
    ①    
t = a(iMin): a(iMin) = a(p): a(p) = t
p = p + 1:q = q -1
Loop
要使程序实现上述算法思想,则方框中的语句是
A.If iMax = q Then iMax = iMinB.If iMin = q Then iMin = iMax
C.If iMax = q Then iMin = iMaxD.If iMin = q Then iMax = iMin
当前题号:8 | 题型:选择题 | 难度:0.99
如下VB程序段:
Dim a(1 To 8) As Integer
a(1) = 13: a(2) = 18: a(3) = 9: a(4) = 32
a(5) = 12: a(6) = 11: a(7) = 7: a(8) = 20
start = 1: k = 1
For i = start + 1 To 8
If a(i) < a(start) Then
k = k + 1
t = a(i): a(i) = a(k): a(k) = t
End If
Next i
t = a(start): a(start) = a(k): a(k) = t
For i = k + 1 To 8
List1.AddItem Str(a(i))
Next i
执行上面代码段后,列表框List1中依次输出的数组元素值为
A.322018B.32122018
C.203218D.321820
当前题号:9 | 题型:选择题 | 难度:0.99
(加试题)某对分查找算法的VB程序段如下:
i = 1: j = 8: c = 0
Do While i <= j
c = c + 1
m = Fix((i + j) / 2)
If key = b(m) Then Exit Do 'Exit Do表示退出循环
If key < b(m) Then j = m - 1 Else i = m + 1
Loop
数组元素b(1)到b(8)的值依次为 “22,32,39,48,71,82,96,106”。若该程序段运行结束后,c的值为2,则key的值是
A.48或32B.48或96C.32或82D.82或96
当前题号:10 | 题型:选择题 | 难度:0.99