- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- + 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- 循环语句
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
(加试题)小李与小王合作编写一个成绩统计的VB程序:小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;小李编写一个过程,该过程依据数组a中的相关数据进行排序。小李与小王约定的数组a各元素含义如图所示。
程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据,数据存放与a()中,呈现方式如表所示;在文本框text2中输入第几班级,单击“开始排序”按钮Command2,程序对输入班级的学生成绩进行排序,结果输出在列表框List1中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)表示的是_____________
(2)分析程序,可知数据库的文件名为____________________
(3)请在划线处填入合适的代码。
Dim a(1 To 600) As Integer '数组大小满足处理要求
Private Sub Command1_Click() '本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn ConncctionString = "provider=Microsoft.AC
conn.Open
Set rs.ActiveConnection = conn '本过程的其他语句略
End Sub
Private Sub Command2_Click() '依据数组a中的相关数据对第k个班级的学生平均分进行升序排序
Dim i As Integer, j As Integer, n As Integer ‘i,j为循环变量,n为班级个数
Dim k as integer,t as integer
Dim p As Integer ‘p为前几个班级的总人数
k=val(text2.text)
For i=2 to k ‘求得前几个班级的总人数
p=p+a(i)
Next i
t=___________‘t为第k-1个班级最后一个学生所在的位置
For i=t+1 to t+a(k+1)-1 ‘t+1为第k个班级第一位学生所在的位置,t+a(k+1)为第k个班级最后一个学生所在的位置
For j= __________ to i+1 step -1
If a(j)<a(j-1) then
k= a(j - 1): a(j - 1) = a(j): a(j) = k
Endif
Next j
Next i
For i=1 to a(k+1)
List1.additem str(i)+” ”+str(a(t+i))
Next i
End Sub
数组元素 | 数组元素的含义 |
a(1) | 存储班级数n |
a(2) | 从a(2)到a(n+1) 依次存储第1、2、…第n个班级人数 |
… | |
a(n+1) | |
a(n+2) | 从a(n+2) 依次存储第1班每个学生的单科成绩、第2班每个学生的单科成绩、…第n班每个学生的单科成绩 |
… | |
… |
程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据,数据存放与a()中,呈现方式如表所示;在文本框text2中输入第几班级,单击“开始排序”按钮Command2,程序对输入班级的学生成绩进行排序,结果输出在列表框List1中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)表示的是_____________
(2)分析程序,可知数据库的文件名为____________________
(3)请在划线处填入合适的代码。
Dim a(1 To 600) As Integer '数组大小满足处理要求
Private Sub Command1_Click() '本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn ConncctionString = "provider=Microsoft.AC
A.OLEDB.12.0;data source=" + "Score.accdb" |
Set rs.ActiveConnection = conn '本过程的其他语句略
End Sub
Private Sub Command2_Click() '依据数组a中的相关数据对第k个班级的学生平均分进行升序排序
Dim i As Integer, j As Integer, n As Integer ‘i,j为循环变量,n为班级个数
Dim k as integer,t as integer
Dim p As Integer ‘p为前几个班级的总人数
k=val(text2.text)
For i=2 to k ‘求得前几个班级的总人数
p=p+a(i)
Next i
t=___________‘t为第k-1个班级最后一个学生所在的位置
For i=t+1 to t+a(k+1)-1 ‘t+1为第k个班级第一位学生所在的位置,t+a(k+1)为第k个班级最后一个学生所在的位置
For j= __________ to i+1 step -1
If a(j)<a(j-1) then
k= a(j - 1): a(j - 1) = a(j): a(j) = k
Endif
Next j
Next i
For i=1 to a(k+1)
List1.additem str(i)+” ”+str(a(t+i))
Next i
End Sub
(加试题)某同学编写一个VB程序模拟音乐播放器的“随机排序”功能。单击“随机排序”按钮Command1,随机生成15个“歌曲名”(歌曲名由3-6个大写英文字母组成),在列表框list1输出原播放顺序,在列表框list2输出随机排序后的顺序。运行界面如下:

实现上述功能的VB代码如下,其中加框处代码有错,请改正。
(1)________________________;
(2)________________________;
Private Sub Command1_Click()
Dim a(1 To 15) As String, b(1 To 15) As Boolean, c(1 To 15) As String
'数组a和数组c分别代表排序前后的文件名
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 15 ‘生成各文件名,存放在数组a
k =Int(Rnd*5)+2 (1)
a(i) = ""
For j = 1 To k
a(i) = a(i) + Chr(65 + Int(Rnd() * 26))
Next j
List1.AddItem Str(i) + " " + a(i)
Next i
For i = 1 To 15
b(i) = False
Next i
For i = 1 To 15
k = Int(Rnd() * 15) + 1
Do While b(k) = True
k = Int(Rnd() * 15) + 1
Loop
b(k) = True
c(i) = a(k) + " " + "原位置" + Str(k)
Next i
For i = 1 To 15
List2.AddItem Str(i) + " " +str(a(i)) (2)
Next i
End Sub

实现上述功能的VB代码如下,其中加框处代码有错,请改正。
(1)________________________;
(2)________________________;
Private Sub Command1_Click()
Dim a(1 To 15) As String, b(1 To 15) As Boolean, c(1 To 15) As String
'数组a和数组c分别代表排序前后的文件名
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 15 ‘生成各文件名,存放在数组a
k =Int(Rnd*5)+2 (1)
a(i) = ""
For j = 1 To k
a(i) = a(i) + Chr(65 + Int(Rnd() * 26))
Next j
List1.AddItem Str(i) + " " + a(i)
Next i
For i = 1 To 15
b(i) = False
Next i
For i = 1 To 15
k = Int(Rnd() * 15) + 1
Do While b(k) = True
k = Int(Rnd() * 15) + 1
Loop
b(k) = True
c(i) = a(k) + " " + "原位置" + Str(k)
Next i
For i = 1 To 15
List2.AddItem Str(i) + " " +str(a(i)) (2)
Next i
End Sub
扔球进袋游戏是一种体现人思维反应能力的游戏,其思想为将数量有限的桶进行编号,分别为1~n,另有乒乓球m个,乒乓球上可写上1~n之间任意随机数,该随机数存储在数据b(1)~b(m)内。参与者则将所有手中的乒乓球扔入相应编号的桶内,完成后,1~n号桶内的乒乓球数量分别为a(1)~a(n)个,用此方法可以得出原先乒乓球的编号,并以有序的形式呈现。实现上述功能的vb程序如下,请回答以下问题。
(1) 某同学随机抽取了两个乒乓球,发现其编号为1和100,那么数组a的数组范围有可能是
(2) 修改划线处处的代码
dim n as integer,m as integer
Dim a(1 to n) as integer, b(1 to m) as integer
Private sub command1_click()
n=val(text1.text)
m=val(text2.text)
For i=1 to m
b(i)=int(rnd*n)+1
List1.additem str(b(i))
Next i
End sub
Private sub command2_click()
For i=1 to n
a(b(i))= b(i)+1
Next i
For j=1 to m
Do while b(j)<>0
List2.additem str(j)
b(j)= 0
Loop
Next j
End sub
(1) 某同学随机抽取了两个乒乓球,发现其编号为1和100,那么数组a的数组范围有可能是
(2) 修改划线处处的代码
dim n as integer,m as integer
Dim a(1 to n) as integer, b(1 to m) as integer
Private sub command1_click()
n=val(text1.text)
m=val(text2.text)
For i=1 to m
b(i)=int(rnd*n)+1
List1.additem str(b(i))
Next i
End sub
Private sub command2_click()
For i=1 to n
a(b(i))= b(i)+1
Next i
For j=1 to m
Do while b(j)<>0
List2.additem str(j)
b(j)= 0
Loop
Next j
End sub
某对分查找算法的VB 程序段如下:
i=l:j=9:n=0
key=Val(Text1,Text)
Do While i<=j
n=n+1
m=Fix((i+j) / 2)
If key=d(m) Then Exit Do ’Exit Do 表示退出循环
If key<d(m) Then j=m-1 Else i=m+1
Loop
数组元素d(1)到d(9)的值依次为“7,12,18,25,39,58,61,72,86”。若该程序段运行结束后,n 的值为2,则key 的值是( )
i=l:j=9:n=0
key=Val(Text1,Text)
Do While i<=j
n=n+1
m=Fix((i+j) / 2)
If key=d(m) Then Exit Do ’Exit Do 表示退出循环
If key<d(m) Then j=m-1 Else i=m+1
Loop
数组元素d(1)到d(9)的值依次为“7,12,18,25,39,58,61,72,86”。若该程序段运行结束后,n 的值为2,则key 的值是( )
A.39 | B.18 或61 | C.18 或72 | D.12 或61 |
(加试题) 有程序段
n = 0: i = 1
Do While i <= 4
y = False
For j = 5 To i + 1 Step -1
If a(j) > a(i) Then
y = True
n = n + 1
t = a(j): a(j) = a(i): a(i) = t
End If
Next i
If y = False Then Exit Do
i = i + 1
Loop
数组元素a(1)到a(5)的值依次为“43,18,5,26,51”,经过该程序加工后,变量n的值为( )
n = 0: i = 1
Do While i <= 4
y = False
For j = 5 To i + 1 Step -1
If a(j) > a(i) Then
y = True
n = n + 1
t = a(j): a(j) = a(i): a(i) = t
End If
Next i
If y = False Then Exit Do
i = i + 1
Loop
数组元素a(1)到a(5)的值依次为“43,18,5,26,51”,经过该程序加工后,变量n的值为( )
A.5 | B.4 | C.3 | D.2 |
实现某排序算法的部分VB 程序如下:
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
End If
Next i
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
End If
Next i
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
A.10,11,41,75,12,63,85 | B.10,11,75,12,63,41,85 |
C.10,11,12,75,63,41,85 | D.10,11,12,41,63,75,85 |
变量a 中存储了一个字符,能够正确判断该字符为数字字符“0”~ “9”的VB 表达式是( )
A.Asc(a)>=0 Or Asc(a)<=9 | B.“0”<=a<=“9” |
C.a<=“0”Or a>=“9” | D.a>=“0”and a<=“9” |
(加试题)有如下 VB程序段: For i = 1 To 2
k = i
For j = 6 To i + 1 Step -1
If a(j) > a(k) Then k = j
Next j
If k <> i then
t = a(i) : a(i) = a(k) : a(k) = t
End If
Next i
数组元素 a(1)到 a(6)的值依次为“71,46,31,58,29,78”,经过该程序段“加工”后,数组元素a(1)到 a(6)的值依次为
k = i
For j = 6 To i + 1 Step -1
If a(j) > a(k) Then k = j
Next j
If k <> i then
t = a(i) : a(i) = a(k) : a(k) = t
End If
Next i
数组元素 a(1)到 a(6)的值依次为“71,46,31,58,29,78”,经过该程序段“加工”后,数组元素a(1)到 a(6)的值依次为
A.29,31,46,58,71,78 |
B.78,71,58,46,31,29 |
C.46,29,31,58,71,78 |
D.78,71,31,58,29,46 |