- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- + 面向对象程序设计 VB开发工具
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- 循环语句
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
(加试题)由英文字母构成的字符串数据压缩方法描述如下:
1)原始数据中,字母相邻无重复,压缩数据用该字母表示
2)原始数据中,字母相邻重复,压缩数据用1个整数和该字母表示
小明编写了一个解压缩VB程序,功能如下:程序运行时,在文本框Text1中输入压缩数据,点击按钮Command1,在文本框Text2中显示解压缩后的数据。程序运行如图所示

(1)如果压缩数据为”AB168D9A”,解压缩后数据的个数是___________ 。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Function zm(c As String) As Boolean
If c >= "0" And c <= "9" Then zm = False Else zm = True
End Function
Private Sub Command1_Click()
Dim s1 As String, s2 As String, fd As String, k As Integer
Dim count As Integer, i As Integer, j As Integer, length As Integer
s1 = Text1.Text: s2 = "": length = Len(s1)
i = 1
Do While i <= length
fd = Mid(s1, i, 1)
If zm(fd) Then
s2 = s2 + fd
i = i + 1
Else
j = i + 1
fd = Mid(s1, j, 1)
Do While Not zm(fd)
j = j + 1
fd = Mid(s1, j, 1)
Loop
count = ①______
fd = Mid(s1, j, 1)
For k = 1 To count
s2 = s2 + fd
Next k
②_______
End If
Loop
Text2.Text = s2
End Sub
1)原始数据中,字母相邻无重复,压缩数据用该字母表示
2)原始数据中,字母相邻重复,压缩数据用1个整数和该字母表示
原始数据 | 压缩数据 |
BBFFF | 2B3F |
ABBCCCCCD | A2B5CD |
小明编写了一个解压缩VB程序,功能如下:程序运行时,在文本框Text1中输入压缩数据,点击按钮Command1,在文本框Text2中显示解压缩后的数据。程序运行如图所示

(1)如果压缩数据为”AB168D9A”,解压缩后数据的个数是___________ 。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Function zm(c As String) As Boolean
If c >= "0" And c <= "9" Then zm = False Else zm = True
End Function
Private Sub Command1_Click()
Dim s1 As String, s2 As String, fd As String, k As Integer
Dim count As Integer, i As Integer, j As Integer, length As Integer
s1 = Text1.Text: s2 = "": length = Len(s1)
i = 1
Do While i <= length
fd = Mid(s1, i, 1)
If zm(fd) Then
s2 = s2 + fd
i = i + 1
Else
j = i + 1
fd = Mid(s1, j, 1)
Do While Not zm(fd)
j = j + 1
fd = Mid(s1, j, 1)
Loop
count = ①______
fd = Mid(s1, j, 1)
For k = 1 To count
s2 = s2 + fd
Next k
②_______
End If
Loop
Text2.Text = s2
End Sub
(加试题)一个正整数(非素数)可以表示成它的质因子(“1”与其本身除外)的乘积。给出任一个整数N,求出它所有的质因子以及每个因子出现的次数,并显示乘积表达式。例如:整数120=2×2×2×3×5,所以它的质因子是2,3,5,次数分别是3次,1次,1次。
用Visual Basic编写一个程序求质因子,功能如下:在文本框Text1中输入一个数,单击“计算”命令按钮Command1,在列表框中显示该数的质因子及相应的次数,并显示乘积表达式。程序运行时的界面如图所示。

实现上述功能的VB程序如下,但划线处代码有错,请改正:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer '数组a存放该整数的质因子出现的次数
Dim i As Integer, m As Integer, n As Integer, k As Integer, s As String
n = Val(Text1.Text)
m = n
k = Int(Sqr(n))
For i = 2 To k
a(i) = 0
Next i
For i = 2 To k
Do While n Mod i = 0
a(k) = a(k) + 1 '①
n = n \ i
If n = 1 Then s = s + Str(i) + " ×" Else s = s + Str(i): Exit For '②
Loop
Next i
List1.AddItem "质因子" & " " & "次数"
For i = 2 To k
If a(i) <> 0 Then List1.AddItem Str(i) & " " & Str(a(i))
Next i
List1.AddItem Str(m) + "=" + s
End Sub
加框①处应改为:________;加框②处应改为:________。
用Visual Basic编写一个程序求质因子,功能如下:在文本框Text1中输入一个数,单击“计算”命令按钮Command1,在列表框中显示该数的质因子及相应的次数,并显示乘积表达式。程序运行时的界面如图所示。

实现上述功能的VB程序如下,但划线处代码有错,请改正:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer '数组a存放该整数的质因子出现的次数
Dim i As Integer, m As Integer, n As Integer, k As Integer, s As String
n = Val(Text1.Text)
m = n
k = Int(Sqr(n))
For i = 2 To k
a(i) = 0
Next i
For i = 2 To k
Do While n Mod i = 0
a(k) = a(k) + 1 '①
n = n \ i
If n = 1 Then s = s + Str(i) + " ×" Else s = s + Str(i): Exit For '②
Loop
Next i
List1.AddItem "质因子" & " " & "次数"
For i = 2 To k
If a(i) <> 0 Then List1.AddItem Str(i) & " " & Str(a(i))
Next i
List1.AddItem Str(m) + "=" + s
End Sub
加框①处应改为:________;加框②处应改为:________。
(加试题)有以下VB程序段:
For i = 7 To 5 Step -1
k = i
For j = i - 1 To 1 Step -1
If d(j) > d(k) Then k = j
Next j
If k <> i Then
t = d(k): d(k) = d(i): d(i) = t
End If
Next i
数组元素d(1)到d(7)的值依次为“23,80,54,45,6,72,18”,经过该程序段“加工”后,数组元素d(1)到d(7)的值依次为( )
For i = 7 To 5 Step -1
k = i
For j = i - 1 To 1 Step -1
If d(j) > d(k) Then k = j
Next j
If k <> i Then
t = d(k): d(k) = d(i): d(i) = t
End If
Next i
数组元素d(1)到d(7)的值依次为“23,80,54,45,6,72,18”,经过该程序段“加工”后,数组元素d(1)到d(7)的值依次为( )
A.80,72,54,23,45,18,6 | B.80,72,54,45,6,23,18 |
C.23,18,6,45,54,72,80 | D.23,6,45,18,54,72,80 |
(1)有如下程度段:
X=5
Y=-20
If Not x>0 Then x=y-3 Else y=x+3
该程序段运行后,y的值为:___ 。
(2)有如下VB程序段:
a = 3: b = 4: c = 5
If a >= b And a >= c Then
y = a
ElseIf b >= c Then
y = b
Else
y = c
End If
该程序段运行之后,整数型变量y的值:_____。
(3)火车托运行李,根据行李的重量按下列标准收费:若不超过50千克,按每千克0.35元收费;若超过50千克,超过部分则按每千克0.5元收费。输入托运行李的重量,计算并输出托运行李的费用。下面程序若用于实现上述目标,则划线处的语句应更改为_________________________。
Sub command1_click( )
Dim x as double
X=val(text1.text)
If x<=50 then
Text2.text= str(0.35*x)
Else
Text2.text= str(0.5*x)
Endif
End sub
(4)求n阶乘(n!=1*2*3*4*n),划线处的语句应为.
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim f As Long
n = Val(Text1.Text)
f = 1
i = 1
Do While i <= n
__________________________
i = i + 1
Loop
Text2.Text = Str(f)
End Sub
X=5
Y=-20
If Not x>0 Then x=y-3 Else y=x+3
该程序段运行后,y的值为:___ 。
(2)有如下VB程序段:
a = 3: b = 4: c = 5
If a >= b And a >= c Then
y = a
ElseIf b >= c Then
y = b
Else
y = c
End If
该程序段运行之后,整数型变量y的值:_____。
(3)火车托运行李,根据行李的重量按下列标准收费:若不超过50千克,按每千克0.35元收费;若超过50千克,超过部分则按每千克0.5元收费。输入托运行李的重量,计算并输出托运行李的费用。下面程序若用于实现上述目标,则划线处的语句应更改为_________________________。
Sub command1_click( )
Dim x as double
X=val(text1.text)
If x<=50 then
Text2.text= str(0.35*x)
Else
Text2.text= str(0.5*x)
Endif
End sub
(4)求n阶乘(n!=1*2*3*4*n),划线处的语句应为.
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim f As Long
n = Val(Text1.Text)
f = 1
i = 1
Do While i <= n
__________________________
i = i + 1
Loop
Text2.Text = Str(f)
End Sub
人们常使用计算机程序解决一些实际问题。下面程序可以找出能被2、3、5除,余数为1的最小的4个正整数。(注:VB中不区分大小写)请分析程序回答问题。
Private Sub Command1_Click( 1 )
Dim CountN%, n%
CountN=0
N=1
Do
N=n+1
If n Mod 2=1 And n Mod 3=1 And n Mod 5=1 Then
Print n
CountN=CountN+1
End If
Loop___2___①___3___
End Sub
【小题1】利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )
【小题2】VB中保存工程文件的文件扩展名为( )
【小题3】程序中的If语句一般在流程图中用( )表示
【小题4】变量CountN的数据类型定义为( )
【小题5】变量CountN的作用是( )
【小题6】所用到的表示循环的标志性语句是()
【小题7】在这个循环中,CountN=CountN+1语句被执行()
【小题8】①处的语句应该是()
【小题9】这段程序的输出结果是( )
【小题10】VB语言中,下列合法的变量名是( )
【小题11】下列控件中可用于接收用户输入文本,又可用于显示文本的是( )
【小题12】VB中,下列哪一函数作用是将数值转化成字符串( )
【小题13】下列( )算法就是一种直接或者间接地调用自身的算法
【小题14】程序中Command1控件响应的事件是( )
【小题15】在VB中,“20”+“ 19”的运算结果是( )
Private Sub Command1_Click( 1 )
Dim CountN%, n%
CountN=0
N=1
Do
N=n+1
If n Mod 2=1 And n Mod 3=1 And n Mod 5=1 Then
Print n
CountN=CountN+1
End If
Loop___2___①___3___
End Sub
【小题1】利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )
A.设计程序 | B.测试程序 | C.运行程序 | D.编写程序 |
A..mdb | B..frm | C..vbp | D..fla |
A.平行四边形 | B.菱形 | C.矩形 | D.正方形 |
A.Integer | B.Single | C.Double | D.String |
A.求和 | B.求平均值 | C.求最大值 | D.计数 |
A.Dim……End If | B.Do…Loop | C.Dim……Loop | D.Do……End If |
A.1次 | B.2次 | C.3次 | D.4次 |
A.Until CountN =2 | B.Until CountN =4 |
C.Until Countn =2 | D.Until Countn =4 |
A.31 | B.33 | C.35 | D.37 |
A.12ab | B.ab12 | C.*abcd | D.c\c |
A.Label控件 | B.TextBox控件 | C.CommandButton控件 | D.Timer控件 |
A.Val( ) | B.Asc( ) | C.Abs( ) | D.Str( ) |
A.穷举算法 | B.排序算法 | C.递归算法 | D.解析算法 |
A.单击事件 | B.双击事件 | C.载入事件 | D.活动事件 |
A.“39” | B.False | C.“20+19” | D.“2019” |
(加试题)有以下VB程序段:
Dim a As String, b As String, p As String, s As String
a = Text1.Text: b = Text2.Text: c = Text3.Text :p = ""
For i = 1 To Len(a)
If b = Mid(a, i, Len(b)) Then
s = s + c
i = i + Len(b) – 1
p = p + Str(i)
Else
s = s + Mid(a, i, 1)
End If
Next i
Label1.Caption = p
若文本框Text1中输入“Hello,world!Hello,Python!”,文本框Text2中输入“Hello”,文本框Text3中输入“你好”运行该段程序后,标签Labele1中显示的是( )
Dim a As String, b As String, p As String, s As String
a = Text1.Text: b = Text2.Text: c = Text3.Text :p = ""
For i = 1 To Len(a)
If b = Mid(a, i, Len(b)) Then
s = s + c
i = i + Len(b) – 1
p = p + Str(i)
Else
s = s + Mid(a, i, 1)
End If
Next i
Label1.Caption = p
若文本框Text1中输入“Hello,world!Hello,Python!”,文本框Text2中输入“Hello”,文本框Text3中输入“你好”运行该段程序后,标签Labele1中显示的是( )
A.1 13 | B.5 17 | C.1 2 | D.5 5 |
(加试题)小王准备编写一个依据技术学考、加试成绩进行赋分的VB程序,需对成绩进行预处理。预处理算法的基本思想:先从数据库中读取考生的考号、学考、加试成绩,然后进行排序,排序规则是按学考+加试的总分降序,若总分相同按加试成绩降序排列。再根据排序结果给出名次,同分同名,学考、加试成绩相同,则名次相同。
程序运行时,学生数据显示在列表框List1中,单击“计算”按钮Command1,计算结果显示在列表框List2中,程序运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)如图所示,学生总数为1500人,排名前1%的学生可赋分为100,则共有______名学生可赋分为100。
(2)分析数据,可知存放学生成绩的数据表为_________。
(3)请在划线处填入合适的代码。
Dim kh(1 To 1500) As String '存放学生考号
Dim a(1 To 1500) As Integer '存放学考成绩
Dim b(1 To 1500) As Integer '存放加试成绩
Dim pm(1 To 1500) As Integer '存放排名
Dim n As Integer '存放总人数
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider = Microsoft.ace.OLEDB.12.0;DATA Source=" + App.Path + "\cj.accdb"
conn.Open
Set rs.ActiveConnection = conn
rs.Open "select * from stu_cj"
List1.AddItem " 考号 " & " 学考 " & "加试"
n = 0
Do While Not rs.EOF '到记录集最后一条记录后退出循环
n = n + 1 '计数
kh(n) = rs.Fields("考号")
a(n) = rs.Fields("学考成绩")
b(n) = rs.Fields("加试成绩")
List1.AddItem kh(n) & " " & a(n) & " " & b(n)
rs.MoveNext '移动到下一条记录
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer, k As String
For i = 1 To n - 1
For j = n To i + 1 Step -1
If a(j) + b(j) > a(j - 1) + b(j - 1) Or ①_________________Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
t = b(j): b(j) = b(j - 1): b(j - 1) = t
k = kh(j): kh(j) = kh(j - 1): kh(j - 1) = k
End If
Next
Next
pm(1) = 1
For i = 2 To n
If a(i) = a(i - 1) And b(i) = b(i - 1) Then
②______________
Else
pm(i) = i
End If
Next
List2.Clear
List2.AddItem "排名 " & " 考号 " & " 学考 " & "加试"
For i = 1 To n
List2.AddItem pm(i) & " " & kh(i) & " " & a(i) & " " & b(i)
Next
End Sub
程序运行时,学生数据显示在列表框List1中,单击“计算”按钮Command1,计算结果显示在列表框List2中,程序运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)如图所示,学生总数为1500人,排名前1%的学生可赋分为100,则共有______名学生可赋分为100。
(2)分析数据,可知存放学生成绩的数据表为_________。
(3)请在划线处填入合适的代码。
Dim kh(1 To 1500) As String '存放学生考号
Dim a(1 To 1500) As Integer '存放学考成绩
Dim b(1 To 1500) As Integer '存放加试成绩
Dim pm(1 To 1500) As Integer '存放排名
Dim n As Integer '存放总人数
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider = Microsoft.ace.OLEDB.12.0;DATA Source=" + App.Path + "\cj.accdb"
conn.Open
Set rs.ActiveConnection = conn
rs.Open "select * from stu_cj"
List1.AddItem " 考号 " & " 学考 " & "加试"
n = 0
Do While Not rs.EOF '到记录集最后一条记录后退出循环
n = n + 1 '计数
kh(n) = rs.Fields("考号")
a(n) = rs.Fields("学考成绩")
b(n) = rs.Fields("加试成绩")
List1.AddItem kh(n) & " " & a(n) & " " & b(n)
rs.MoveNext '移动到下一条记录
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer, k As String
For i = 1 To n - 1
For j = n To i + 1 Step -1
If a(j) + b(j) > a(j - 1) + b(j - 1) Or ①_________________Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
t = b(j): b(j) = b(j - 1): b(j - 1) = t
k = kh(j): kh(j) = kh(j - 1): kh(j - 1) = k
End If
Next
Next
pm(1) = 1
For i = 2 To n
If a(i) = a(i - 1) And b(i) = b(i - 1) Then
②______________
Else
pm(i) = i
End If
Next
List2.Clear
List2.AddItem "排名 " & " 考号 " & " 学考 " & "加试"
For i = 1 To n
List2.AddItem pm(i) & " " & kh(i) & " " & a(i) & " " & b(i)
Next
End Sub
下列VB表达式的值等于2018的是
A.Sqr(25)+2010 | B.Abs(-2009)+Len("Happy2018") |
C.Mid("3420001",3,4)+ "18" | D.Int(-2.3)+2020 |
将数学表达式
改写成VB表达式,正确的是

A.1 - Sqr(b ^ 2 – ac / 2) |
B.1 - Sqr(b ^ 2 – a * c / 2) |
C.1 - Abs(b ^ 2 – ac / 2) |
D.1 - Abs(b ^ 2 – a * c / 2) |