- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- + 排序算法及程序实现
- 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
实现以上功能的VB程序如下,请回答下列问题:
(1)如原始数据里漏输了一个学生,已知该学生的学号为“20170240”,成绩为“99”,则增加该学生数据后,运行程序时,该学生的考试号为________。
(2)请在画线处填入合适的代码。
Const n=500
Dim xh(1 To n) As Integer '存放学生学号
Dim cj(1 To n) As Integer '存放学生成绩
Dim I,d,k,t,y As Integer
Private Sub Command1 Click()
'本过程从数据库中读取学生数据,存储在相应的变量中,并在List1中显示
'代码略
End Sub
Private Sub Command2_Click()
For i=1 To n-1
For j=n To i+1 Step-1
If c(j)>cj(j-1) Thent=ci(j):cj(j)=cj(j-1):cj(j-1)=t
t=xh(j):xh(j)=xh(j-1):xh(j-1)=t
End If
Next j
Next ik=1
For i=2 To n
If______Then
k=k+1y=0
Else
y=1End If
If (y=l And k> 1) Or (i=n And k> 1) Then
For d=i-k To i-2For______To(i-k+1) Step-1
If xh(j)>xh(j-1) Then
t=xh(j):xh(i)=xh(j-1):xh(j-1)=t
End If
Next j
Next d
k=1
End If
Next iList2.Clear
List2.AddItem " "+"学号"+" "+"技术成绩"+" "+"考试号"
For i=1 To n
List2.AddItem Str(xh(i))+" "+Str(cj(i))+" "+_____
Next i
End Sub
Private Sub Form _ Load( )
′数组a,b存储整数,代码略
End sub
Private Sub Command1_Click( )
Dim i As Integer,j As Integer, k As Integer, t As Integer, flag As Boolean
flag- True
For i=1To ①
j=n2

If b(j)< b(j-1) Then t=b(j: b(j)=b(j-1): b(j-1)=t
j=j-1
Loopk=i
For j=n1Toi+1Step-1
If a(j)<a(k) then k-j
Next jIf a(k)<= b(1) And k <> i Then
t=a(k):a(k)=a(i): a(i)=t
flag=False
Elself② Thent=a(i):a(i)=b(1):b(1)=t
flag=True
End IfNext i
For i=1 To nl
Listl AddItem Str(a(i))
Next i
End sub
请回答问题:
(1)要使程序运行时,清空列表框List1的内容,可在 Form Load事件过程中添加语句:_____(单选,填字母:
A.List1.Caption=""/ | B.List1.Clear/ | C.List1. Additem"")。 |
①_______________________
②_______________________
(3)程序代码方框处,flag为_______时,表示b数组该遍加工需要进行_______排序(选填:冒泡/选择)。
a(1)=91:a(2)=5:a(3)=65:a(4)=8;a(5)=78:a(6)=13:a(7)=29:a(8)=18
For i=2 To 5
tmp= a(i)
L=1
R=i-1
Do While l<= R
M= Fix(L+ R)/2)If tmp <=a(M) Then R= M-1 E lse L= M+1
Loop
j=i-1
Do While j>=L
a(j+1)=a(j)j=j-1
Loop
a (L)= tmp
Next i执行上述代码后,数组a中的元素分别是( )
A.5 8 13 18 29 65 78 91 | B.5 8 65 78 91 13 29 18 |
C.91 78 65 29 18 13 8 5 | D.91 78 65 8 5 13 29 18 |

实现该功能的VB程序代码如下,请在划线处填入合适代码。
Dim a(0 To 100) As Integer
Const high = 16
Private Sub Form_Load()
Randomize
For i = 1 To high
a(i) = Int(Rnd * 20) + 1
Text1.Text = Text1.Text + Str(a(i))
Next i
End Sub
Private Sub Command1_Click()
Dim p As Integer, q As Integer, t As Integer
Dim m As Integer, n As Integer, k As Integer
m = Val(Text2.Text)
For i = 1 To ①________
c = ""
For j = 1 To m
p =②________
q = i * m
k = sort(p, q)
If a(k) <> a(p) Then
t = a(p): a(p) = a(k): a(k) = t
End If
c = ③________
Next j
Text3.Text = Text3.Text + " " + c
Next i
End Sub
Function sort(f As Integer, g As Integer) As Integer
s = f
For i = f To g
If a(i) > a(s) Then
s = i
End If
Next i
sort = s
End Function
For i = 1 To 2
For j = 5 To i + 1 Step -1
If a(j) > a(i) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next jNext i
数组元素a(1)到a(5)的值依次为“33,24,45, ,16,77”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为( )
A.77, 45, 33, 16, 24 |
B.77, 33, 45, 16, 24 |
C.77, 24, 45, 16, 33 |
D.77, 45, 33, 24, 16 |
实现上述功能的VB程序如下,但加框处代码有错,请改正。

Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
a(1) = 30: a(2) = 47: a(3) = 30: a(4) = 72
a(5) = 70: a(6) = 23: a(7) = 99: a(8) = 24
n = 8
For i = 1 To 8
List1.AddItem a(i)
Next i
End SubPrivate Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim pos As Integer
Dim s As String
s = Text1.Text
pos = Val(Text1.Text)
For i = 1 To n – 1
For j = n To i + 1 Step -1If a(j) < a(j - 1) Then
_____________
a(j - 1) = a(j)
a(j) = k'如果pos位置的数据参与交换,则更新pos值,记录pos变化位置
If pos = j Then
pos = j - 1
s = s + "→" + Str(pos)

pos = j
s = s + "→" + Str(pos)
End If
End If
Next j
Next i
Label1.Caption = "位置变化情况:" + s
For i = 1 To n
List2.AddItem Str(a(i))
Next i
End Sub排序前 | 86 | 71 | 5 | 41 | 81 | 79 | 37 | 89 |
排序后 | 5 | 37 | 41 | 71 | 79 | 89 | 86 | 81 |
Const n = 8
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, t As Integer
Dim flag As Boolean
'读取一组正整数,存储在数组a中,代码略
For i = 1 To n – 1
_____________
If IsPrime(a(k)) Then flag = True Else flag = False
For j = i + 1 To nIf IsPime(a(j)) Then
If

k = j
flag = True
End If
End If
Next j
If k <> i Then
t = a(k): a(k) = a(i): a(i) = t
End If
If Not flag Then Exit For 'Exit For表示退出循环
Next i
'依次输出排序后的数据。代码略
End SubFunction IsPrime(m As Integer) As Boolean
'本函数判断m是否是素数:是素数返回值为True,不是素数返回值为False
'代码略
End Function
A.4 | B.5 | C.6 | D.7 |
(1)虚线框内程序段所采用的排序算法名称是 。(填:冒泡排序/选择排序)
(2)在程序(1)和(2)划线处,填入适当的语句或表达式,把程序补充完整。
Dim a(1 To 10) As Integer
Function f(x As Integer) As Boolean ′代码略
End Function
Private Sub Commandl_Click()
Dim n As Integer ′n用于统计已经产生的随机整数个数
Dim i As Integer.j As Integer
Dim x As Integer.k As Integer
Randomize ′初始化Rnd函数
n=0
List1.Clear ′清除列表框中内容
List2.Clear
Do While n<10
x=Int(Rnd*999)+1 ′产生[1,999]范围内的随机整数
If Not f(x) Then
n=n+1
a(n)="x"
List1.AddItem Str( (1) )
End If
Loop
For i="1" To 9 ′进行排序
For j="10" To i+1 (2)
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 10
List2.AddItem Str(a(i))
Next i
End Sub
原始数据 | 65 | 57 | 59 | 44 | 45 | 69 |
第1遍 | 44 | 65 | 57 | 59 | 45 | 69 |
第2遍 | 44 | 45 | 55 | 57 | 59 | 69 |
第3遍 | 44 | 45 | 57 | 65 | 59 | 69 |
… | … | … | … | … | … | … |
A.冒泡排序,升序 | B.选择排序,升序 |
C.冒泡排序,降序 | D.选择排序,降序 |