- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- + 基本运算及表达式
- 赋值语句
- 选择语句
- 循环语句
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
【加试题】小王模拟超市收银机扫描商品条形码后计算总价的过程制作了一个VB程序。功能如下:在文本框Text1中输入商品条形码,按回车键后会将已经输入的条形码显示在列表框List1中,同时将商品明细显示在列表框List2中。点击按钮“计算商品总价”后,会将所有商品的总价显示在文本框Text2中。程序界面如图所示:

实现上述功能的部分VB程序如下,请在三个划线处填入合适代码。
'定义全局数组变量
Dim a(1 To 10) As Long
Dim b(1 To 10) As String
'自动加载条形码信息以及对应的商品信息
Private Sub Form_Load()
Dim i As Integer
a(1) = 503741
For i =" 2" To 10
a(i) =" a(i" - 1) + 1
Next i
b(1) = "可乐 5.00"
b(2) = "薯片 7.50"
b(3) = "牛奶 5.60"
b(4) = "橙汁 7.50"
b(5) = "面包 4.00"
b(6) = "蜂蜜 28.00"
b(7) = "蛋糕 12.00"
b(8) = "绿箭 3.50"
b(9) = "饼干 6.00"
b(10) = "雪碧 5.00"
End Sub
'输入条形码,查找条形码,并显示条形码及其对应的商品信息
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim txm As Long:
Dim i As Integer:
Dim j As Integer
txm = Val(Text1.Text)
If KeyAscii =" 13" Then
If txm >=" 503741" And txm <=" 503750" Then
List1.AddItem txm
Text1.Text = ""
i =" 1:" j = 10
Do While i <= j
①
If txm =" a(m)" Then
List2.AddItem b(m)
Exit Do
ElseIf txm > a(m) Then
i =" m" + 1
Else
②
End If
Loop
Else
MsgBox "条形码输入错误,无此商品"
Text1.Text = ""
End If
End If
End Sub
'计算所购商品的总额
Private Sub Command1_Click()
Dim i As Integer, mx As String, jg As String, sum As Single
For i =" 0" To 9
If List2.List(i) <> "" Then
mx = List2.List(i)
sum =" sum" + Mid(mx, 4)
End If
Next i
Text2.Text = ③
End Sub

实现上述功能的部分VB程序如下,请在三个划线处填入合适代码。
'定义全局数组变量
Dim a(1 To 10) As Long
Dim b(1 To 10) As String
'自动加载条形码信息以及对应的商品信息
Private Sub Form_Load()
Dim i As Integer
a(1) = 503741
For i =" 2" To 10
a(i) =" a(i" - 1) + 1
Next i
b(1) = "可乐 5.00"
b(2) = "薯片 7.50"
b(3) = "牛奶 5.60"
b(4) = "橙汁 7.50"
b(5) = "面包 4.00"
b(6) = "蜂蜜 28.00"
b(7) = "蛋糕 12.00"
b(8) = "绿箭 3.50"
b(9) = "饼干 6.00"
b(10) = "雪碧 5.00"
End Sub
'输入条形码,查找条形码,并显示条形码及其对应的商品信息
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim txm As Long:
Dim i As Integer:
Dim j As Integer
txm = Val(Text1.Text)
If KeyAscii =" 13" Then
If txm >=" 503741" And txm <=" 503750" Then
List1.AddItem txm
Text1.Text = ""
i =" 1:" j = 10
Do While i <= j
①
If txm =" a(m)" Then
List2.AddItem b(m)
Exit Do
ElseIf txm > a(m) Then
i =" m" + 1
Else
②
End If
Loop
Else
MsgBox "条形码输入错误,无此商品"
Text1.Text = ""
End If
End If
End Sub
'计算所购商品的总额
Private Sub Command1_Click()
Dim i As Integer, mx As String, jg As String, sum As Single
For i =" 0" To 9
If List2.List(i) <> "" Then
mx = List2.List(i)
sum =" sum" + Mid(mx, 4)
End If
Next i
Text2.Text = ③
End Sub
Sub test2()
a = 12:b = 12:c = 5
Label1.Caption = ""
Label2.Caption = ""
If a > b Or Not b<c Then
Label1.Caption = "monday"
Else
Label2.Caption = "tiger"
End If
Label3.Caption =" Label1.Caption+" Label2.Caption
End sub
该程序段运行后,在标签Label3的Caption属性值是( )
a = 12:b = 12:c = 5
Label1.Caption = ""
Label2.Caption = ""
If a > b Or Not b<c Then
Label1.Caption = "monday"
Else
Label2.Caption = "tiger"
End If
Label3.Caption =" Label1.Caption+" Label2.Caption
End sub
该程序段运行后,在标签Label3的Caption属性值是( )
A."monday" | B."tiger" | C."mondaytiger" | D."" |
变量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程序,实现计算器的简单计算功能:通过0~9的数字和小数点符号输入计算数据,单击选择“+、-、*、/”等运算,最后点击“=”按钮在文本框Text1中显示运算结果。界面如第14题-1图所示,回答下列问题:


(1)要修改窗体的显示名称为“计算器”,应选择第14题-2图所示的 属性。
(2)为实现上述功能,输入数据是非常重要的部分,以下是数字按钮“1”中的代码,用于在Text1中输入数字“1”,请在划线处输入合适的代码。
Private Sub Command11_Click()
Dim fuhao As ① '用于存储+、-、*、/等运算符号
Dim x As Single '用于存储第一个运算数
Dim y As Single '用于存储第二个运算数
Text1.Text = ②
If fuhao = "" Then
x = Val(Text1.Text)
③
y = Val(Text1.Text)
End If
End Sub
(3)运行测试通过之后,如果想让其他人能够直接运行使用,应该生成 格式文件。


(1)要修改窗体的显示名称为“计算器”,应选择第14题-2图所示的 属性。
(2)为实现上述功能,输入数据是非常重要的部分,以下是数字按钮“1”中的代码,用于在Text1中输入数字“1”,请在划线处输入合适的代码。
Private Sub Command11_Click()
Dim fuhao As ① '用于存储+、-、*、/等运算符号
Dim x As Single '用于存储第一个运算数
Dim y As Single '用于存储第二个运算数
Text1.Text = ②
If fuhao = "" Then
x = Val(Text1.Text)
③
y = Val(Text1.Text)
End If
End Sub
(3)运行测试通过之后,如果想让其他人能够直接运行使用,应该生成 格式文件。
编写VB程序,实现如下功能:在文本框Textl和Text2中分别输入一个整数,单击命令按钮Command1,在列表框List1中显示结果,运行效果如第1图所示。结果包含两列数据,第1列为两数之间的摄氏温度值(间隔1度、升序),第2列为对应的华氏温度值。

(1)要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(2图) 中将
____________属性的属性值修改为“转换”。
(2)为实现上述功能,请在划线处填入合适代码或选项。
Private Sub Command1_Click()
Dim t1 As Integer, t2 As Integer
Dim i As Integer, t As Integer
Dim f As Single
List1.Clear
t1 = Val(Text1.Text)
t2 = Val(Text2.Text)
If_________Then '(选填字母,从下列A、B、C、D四个选项中选取一项)
t =" t1:" t1 =" t2:" t2 = t
End If
i = t1
Do While__________'(选填字母,从下列A、B、C、D四个选项中选取一项)
f =" i" * 9 / 5 + 32 '摄氏温度转换为华氏温度
List1.AddItem Str(i) + " " + Str(f)
_________'(填程序代码)
Loop
End Sub
划线①、②处的选项:

(1)要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(2图) 中将
____________属性的属性值修改为“转换”。
(2)为实现上述功能,请在划线处填入合适代码或选项。
Private Sub Command1_Click()
Dim t1 As Integer, t2 As Integer
Dim i As Integer, t As Integer
Dim f As Single
List1.Clear
t1 = Val(Text1.Text)
t2 = Val(Text2.Text)
If_________Then '(选填字母,从下列A、B、C、D四个选项中选取一项)
t =" t1:" t1 =" t2:" t2 = t
End If
i = t1
Do While__________'(选填字母,从下列A、B、C、D四个选项中选取一项)
f =" i" * 9 / 5 + 32 '摄氏温度转换为华氏温度
List1.AddItem Str(i) + " " + Str(f)
_________'(填程序代码)
Loop
End Sub
划线①、②处的选项:
A.i <= t2 | B.f <= t2 | C.t1 > t2 | D.i < f |
编写VB程序,实现如下功能:在文本框Text1中输入某一年份,单击“天干地支与生肖”按钮Command1,在列表框List1中输出该年份开始的12个年份及对应的“天干地支”与“生肖”,运行界面如图所示,程序代码如下。

(1)代码“Private Sub Command1_Click()”中的Click是 。(单选,填字母:
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim i As Integer, n As Integer
Dim c1 As String, s1 As String
Dim c2 As String, s2 As String
Dim c3 As String, s3 As String
List1.Clear
s1 = "甲乙丙丁戊己庚辛壬癸"
s2 = "子丑寅卯辰巳午未申酉戌亥"
s3 = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
n = Val(Text1.Text)
For i =" n" To ①
a =" (i" + 6) Mod 10
b =" (i" + 8) Mod 12
c1 =" Mid(s1," a + 1, 1)
c2 =" Mid(s2," b + 1, 1)
c3 =" Mid(s3," b + 1, 1)
List1.AddItem ② + "年" + c1 + c2 + " " + c3
Next i
End Sub
(3)由上述算法可知,2024年对应的“天干地支”为 。

(1)代码“Private Sub Command1_Click()”中的Click是 。(单选,填字母:
A.对象名/ | B.属性名/ | C.事件名) |
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim i As Integer, n As Integer
Dim c1 As String, s1 As String
Dim c2 As String, s2 As String
Dim c3 As String, s3 As String
List1.Clear
s1 = "甲乙丙丁戊己庚辛壬癸"
s2 = "子丑寅卯辰巳午未申酉戌亥"
s3 = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
n = Val(Text1.Text)
For i =" n" To ①
a =" (i" + 6) Mod 10
b =" (i" + 8) Mod 12
c1 =" Mid(s1," a + 1, 1)
c2 =" Mid(s2," b + 1, 1)
c3 =" Mid(s3," b + 1, 1)
List1.AddItem ② + "年" + c1 + c2 + " " + c3
Next i
End Sub
(3)由上述算法可知,2024年对应的“天干地支”为 。
小明利用所学的信息技术知识帮助语文老师设计一个语文学考等级查询系统,要求如下:输入某个等级,就能查出该等级的所有学生学号和姓名,并统计出该等级学生的人数,以便语文老师方便了解学生的学考情况。语文学考成绩分A、B、C、D、E五个等级,学生信息存储在数据库文件“stugrade.accdb”的数据表“Chinese”中,数据表“Chinese”的结构如图所示。


VB程序运行界面如题图所示,在文本框Text1中输入查询的等级,单击“查询”按钮Command1,在列表框List1中显示所有该等级的学生学号和姓名,并按照学号从小到大排序,并在标签Label2处显示学生的人数,如果人数为0,则在列表框中显示“没有该等级的学生”。按此要求编写程序如下,在下划线处填上合适的代码。
Private Sub Command1_Click()
Dim stuna(1 To 100) As String '存放学生姓名的数组定义为stuna
Dim stunum(1 To 100) As String '存放学生学号的数组定义为stunum
Dim i As Integer, j As Integer, n As Integer
Dim t As String
Dim cn As New ADODB.Connection '连接数据库
Dim rs As New ADODB.Recordset
Dim strSQL As String
cn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\stugrade.accdb "
cn.Open
strSQL = "select * from ① where 语文等级='" + Text1.Text + "'"
Set rs.ActiveConnection = cn
rs.Open strSQL
n = 0
Do While Not rs.EOF
②
stuna(n) = rs.Fields("姓名").Value
stunum(n) = rs.Fields("学号").Value
rs.MoveNext
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
List1.Clear '清除列表框
If n =" 0" Then
List1.AddItem "没有该等级的学生"
Else
For i =" 1" To n - 1 '按姓名排序
For j =" n" To ③ Step -1
If ④ Then [:学。科。网Z。X。X。K]
t =" stunum(j):" stunum(j) =" stunum(j" - 1): stunum(j - 1) = t
t =" stuna(j):" stuna(j) =" stuna(j" - 1): stuna(j - 1) = t
End If
Next j
Next i
For i =" 1" To n
List1.AddItem stunum(i) + " " + stuna(i)
Next i
Label2.Caption = "该等级的学生共有" + Str(n) + "名"
End If
End Sub
(1)
(2)
(3)
(4)


VB程序运行界面如题图所示,在文本框Text1中输入查询的等级,单击“查询”按钮Command1,在列表框List1中显示所有该等级的学生学号和姓名,并按照学号从小到大排序,并在标签Label2处显示学生的人数,如果人数为0,则在列表框中显示“没有该等级的学生”。按此要求编写程序如下,在下划线处填上合适的代码。
Private Sub Command1_Click()
Dim stuna(1 To 100) As String '存放学生姓名的数组定义为stuna
Dim stunum(1 To 100) As String '存放学生学号的数组定义为stunum
Dim i As Integer, j As Integer, n As Integer
Dim t As String
Dim cn As New ADODB.Connection '连接数据库
Dim rs As New ADODB.Recordset
Dim strSQL As String
cn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\stugrade.accdb "
cn.Open
strSQL = "select * from ① where 语文等级='" + Text1.Text + "'"
Set rs.ActiveConnection = cn
rs.Open strSQL
n = 0
Do While Not rs.EOF
②
stuna(n) = rs.Fields("姓名").Value
stunum(n) = rs.Fields("学号").Value
rs.MoveNext
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
List1.Clear '清除列表框
If n =" 0" Then
List1.AddItem "没有该等级的学生"
Else
For i =" 1" To n - 1 '按姓名排序
For j =" n" To ③ Step -1
If ④ Then [:学。科。网Z。X。X。K]
t =" stunum(j):" stunum(j) =" stunum(j" - 1): stunum(j - 1) = t
t =" stuna(j):" stuna(j) =" stuna(j" - 1): stuna(j - 1) = t
End If
Next j
Next i
For i =" 1" To n
List1.AddItem stunum(i) + " " + stuna(i)
Next i
Label2.Caption = "该等级的学生共有" + Str(n) + "名"
End If
End Sub
(1)
(2)
(3)
(4)
在Visual Basic 中,若x、y都是正整数且x能被y整除,则下列关系表达式值一定为真的是( )
A.x mod y =0 |
B.x<>y |
C.x mod 2 =0 |
D.x/y=0 |
能得到一个大于等于20且小于50随机整数的VB表达式是( )
A.Int(rnd*50)-20 |
B.Int(rnd*30+20) |
C.Int(rnd*31+20) |
D.Int(rnd*30)+1 |