- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
(加试题)火柴棒等式。用火柴棒可以摆出0-9的数字,摆放规则如下图所示:

有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:
(1)A、B都是不大于1000的正整数,若数值非零,则最高位不能是0
(2)摆放“+”与“=”各使用两根火柴棒
(3)A+B=C 与 B+A=C 视为相同的等式
(4)n根火柴棒必须全部用上
小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。
(1)请在划线处填入合适的代码。①__________,②__________,③________;
(2)某次运行程序时,显示的等式中包含“7+17=24”,根据程序分析,输入的n的值为:______。
Dim sz(0 To 9) As Integer ’数组元素sz(i)用于存储数字i所使用的火柴棒的数量
Private Sub Form_Load()
sz(0) = 6 : sz(1) = 2 : sz(2) = 5 : sz(3) = 5 : sz(4) = 4
sz(5) = 5 : sz(6) = 6 : sz(7) = 3 : sz(8) = 7 : sz(9) = 6
End Sub
‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量
Function hcs(ByVal x As Integer) As Integer
Dim s As Integer,k as integer
s = 0
Do While ①
k = x Mod 10
s=s+sz(k)
x = x \ 10
Loop
hcs = s + sz(x)
End Function
Private Sub Command1_Click()
Dim n As Integer
Dim a As Integer, b As Integer, c As Integer
n = Val(Text1.Text)
ans = 0
List1.Clear
For a = 0 To 999
For b = ② To 999
c = a + b
If ③ Then
List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))
ans = ans + 1
End If
Next b
Next a
List1.AddItem ("共有" + Str(ans) + "种等式")
End Sub

有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:
(1)A、B都是不大于1000的正整数,若数值非零,则最高位不能是0
(2)摆放“+”与“=”各使用两根火柴棒
(3)A+B=C 与 B+A=C 视为相同的等式
(4)n根火柴棒必须全部用上
小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。
(1)请在划线处填入合适的代码。①__________,②__________,③________;
(2)某次运行程序时,显示的等式中包含“7+17=24”,根据程序分析,输入的n的值为:______。
Dim sz(0 To 9) As Integer ’数组元素sz(i)用于存储数字i所使用的火柴棒的数量
Private Sub Form_Load()
sz(0) = 6 : sz(1) = 2 : sz(2) = 5 : sz(3) = 5 : sz(4) = 4
sz(5) = 5 : sz(6) = 6 : sz(7) = 3 : sz(8) = 7 : sz(9) = 6
End Sub
‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量
Function hcs(ByVal x As Integer) As Integer
Dim s As Integer,k as integer
s = 0
Do While ①
k = x Mod 10
s=s+sz(k)
x = x \ 10
Loop
hcs = s + sz(x)
End Function
Private Sub Command1_Click()
Dim n As Integer
Dim a As Integer, b As Integer, c As Integer
n = Val(Text1.Text)
ans = 0
List1.Clear
For a = 0 To 999
For b = ② To 999
c = a + b
If ③ Then
List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))
ans = ans + 1
End If
Next b
Next a
List1.AddItem ("共有" + Str(ans) + "种等式")
End Sub
(加试题)使用VB程序研究“回文素数在素数表中的位置”,程序运行界面如下图所示。程序将10000以内的全部素数按顺序保存到数组a中,在文本框中输入需要查找的回文数,单击“查找”按钮command1,在标签label1中显示该回文素数在全部素数中的位置。

实现上述功能的程序如下,加框处的代码有错,请改正。
Dim a(1 To 10000) As Integer
Dim n As Integer
Private Sub Form_Load()
‘将1000以内的素数从小到大依次存入数组a中
‘将素数的个数存入变量n中
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, mid As Integer
Dim key As Integer, flag As Boolean
key = Val(Text1.Text)
If key > 10000 Or Not hws(key) Then
MsgBox "输入的数据不是10000以内的回文数"
Else
i = 1 : j = n
flag = False
Do While flag = False
mid = (i + j) \ 2
If key > a(mid) Then
i = mid + 1
ElseIf key < a(mid) Then
j = mid - 1
Else
flag = True
End If
Loop
If Not flag Then
Label1.Caption = "该回文数不是素数"
Else
Label1.Caption = "回文素数" + Str(key) + "是第" + Str(mid) + "个素数"
End If
End If
End Sub
‘自定义函数 hws(y)用于判断y是否是回文数
Function hws(y As Integer) As Boolean
Dim x As Integer, k As Integer
x = 0: k = y
hws = True
Do While k > 0
x = x + k Mod 10
k = k \ 10
Loop
If x <> y Then hws = False
End Function

实现上述功能的程序如下,加框处的代码有错,请改正。
Dim a(1 To 10000) As Integer
Dim n As Integer
Private Sub Form_Load()
‘将1000以内的素数从小到大依次存入数组a中
‘将素数的个数存入变量n中
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, mid As Integer
Dim key As Integer, flag As Boolean
key = Val(Text1.Text)
If key > 10000 Or Not hws(key) Then
MsgBox "输入的数据不是10000以内的回文数"
Else
i = 1 : j = n
flag = False
Do While flag = False
mid = (i + j) \ 2
If key > a(mid) Then
i = mid + 1
ElseIf key < a(mid) Then
j = mid - 1
Else
flag = True
End If
Loop
If Not flag Then
Label1.Caption = "该回文数不是素数"
Else
Label1.Caption = "回文素数" + Str(key) + "是第" + Str(mid) + "个素数"
End If
End If
End Sub
‘自定义函数 hws(y)用于判断y是否是回文数
Function hws(y As Integer) As Boolean
Dim x As Integer, k As Integer
x = 0: k = y
hws = True
Do While k > 0
x = x + k Mod 10
k = k \ 10
Loop
If x <> y Then hws = False
End Function
这是一个可以计算十六进制各位数之和的VB程序,功能如下:在文本框Text1中输入一个十六进制数n,将计算结果显示在Label1上。程序界面如下图所示:

实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim n As String, m as string
Dim s As Integer, i As Integer
n=Text1.Text
n=ucase(n) ’n中的字母转为大写
①
m = Mid(n, i, 1)
If m >= "0" And m <= "9" Then
s = s + Val(m)
ElseIf m>=”A” And m<=”F” Then
s = s + ②
Else
Msgbox(“输入数据有误,请输入一个十六进制数!”)
Exit Sub
End If
Next i
Label2.Caption = "各位数和为:" + Str(s)
End Sub
(1)代码“Private Sub Command1_Click()”中的Command1_Click()是________ (选填:
(2)请在划线处填入合适代码①____________________ ②____________________;
(3)程序运行,在Text1中无论输入“5A0D”,在label1中显示的内容为______________。

实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim n As String, m as string
Dim s As Integer, i As Integer
n=Text1.Text
n=ucase(n) ’n中的字母转为大写
①
m = Mid(n, i, 1)
If m >= "0" And m <= "9" Then
s = s + Val(m)
ElseIf m>=”A” And m<=”F” Then
s = s + ②
Else
Msgbox(“输入数据有误,请输入一个十六进制数!”)
Exit Sub
End If
Next i
Label2.Caption = "各位数和为:" + Str(s)
End Sub
(1)代码“Private Sub Command1_Click()”中的Command1_Click()是________ (选填:
A.属性名 | B.对象名 | C.事件处理过程名 ); |
(3)程序运行,在Text1中无论输入“5A0D”,在label1中显示的内容为______________。
有如下程序段:
i=1
Do while i<=2
j=1
Do while j<=7-i
If a(j) > a(j+1) Then
t = a(j): a(j) = a(j+1): a(j+1) = t
End If
j=j+1
Loop
i=i+1
Loop
数组元素a(1)到a(7)的值依次为“44,24,33,67,77,58,12”,经过该程序段“加工”后,数组元素a(1)到a(7)的值依次为 ( )
i=1
Do while i<=2
j=1
Do while j<=7-i
If a(j) > a(j+1) Then
t = a(j): a(j) = a(j+1): a(j+1) = t
End If
j=j+1
Loop
i=i+1
Loop
数组元素a(1)到a(7)的值依次为“44,24,33,67,77,58,12”,经过该程序段“加工”后,数组元素a(1)到a(7)的值依次为 ( )
A.24,33,44,58,12,67,77 | B.12,24,33,67,77,58,44 |
C.12,24,44,33,58,67,77 | D.44,24,33,58,12,67,77 |
小李编写了一个 VB 程序,读取某数据库中的数据,数据表打开后界面及部分VB代码如下:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim a(1 to 1000) as string,strconn as string
strconn="provider=Microsoft.AC
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim a(1 to 1000) as string,strconn as string
strconn="provider=Microsoft.AC
A.OLEDB.12.0;data source ="+ App.Path+"\score.accdb" conn.ConnectionString =strconn Conn.Open Set rs.ActiveConnection = conn rs.Open "Select * from stuinfo" ![]() Do While Not rs.EOF n=n+1 a(n)=rs.fields(1) rs.MoveNext Loop rs.Close conn.Colse 下列对于以上代码的理解正确的有 ( ) ① 连接的数据库文件名是“score.accdb” ② “ConnectionString“是 conn 对象的属性值 ③ 查询的数据表名称是“stuinfo” ④ 程序运行后,a(1)=”101” ⑤ 程序运行后,读取的记录总数共n条 | ||
B.①②③ B.①③④ | C.①③⑤ | D.②④⑤ |
某算法的部分流程如下图所示。进入流程前b的初值为0,流程执行后,依次输入3,-2,1,4,则输出的值是( )


A.8 | B.11 | C.19 | D.21 |
台州市政公共停车的收费标准如下:
30分钟以内不收费,1小时及以内收费5元,超过一小时后超过部分2元\小时收费(不足1小时的按1小时计算)。小明据此设计了以下VB程序,程序运行界面如图。

(1)若将窗体标题改为“台州停车收费”,应修改窗体属性栏中的___________属性。
(2)运行程序,在文本框Text1中输入当天停车时间(分钟),单击“收费”按钮Command1,在文本框Text2显示所对应的费用(元),实现上述功能的VB程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
Dim t As Integer , cost As Integer , h As Integer ‘h是小时时长
t=Val(Text1.Text)
If t <= 30 Then
cost=0
Else
h=(t-1)\60+1
If ①____ Then
cost=5
Else
cost=②____
EndIf
EndIf
Text2.Text=③____
EndSub
30分钟以内不收费,1小时及以内收费5元,超过一小时后超过部分2元\小时收费(不足1小时的按1小时计算)。小明据此设计了以下VB程序,程序运行界面如图。

(1)若将窗体标题改为“台州停车收费”,应修改窗体属性栏中的___________属性。
(2)运行程序,在文本框Text1中输入当天停车时间(分钟),单击“收费”按钮Command1,在文本框Text2显示所对应的费用(元),实现上述功能的VB程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
Dim t As Integer , cost As Integer , h As Integer ‘h是小时时长
t=Val(Text1.Text)
If t <= 30 Then
cost=0
Else
h=(t-1)\60+1
If ①____ Then
cost=5
Else
cost=②____
EndIf
EndIf
Text2.Text=③____
EndSub
某两段VB程序分别如图1和图2所示:


当n的值为10时,关于该两段程序,下列说法不正确的是()


当n的值为10时,关于该两段程序,下列说法不正确的是()
A.两段程序中i的初值相同 |
B.两段程序都采用了循环结构 |
C.图1程序实现了算式“1+4+7+10”的运算 |
D.图2程序中i=i+2执行了5次 |
《庄子.天下篇》中写道:“一尺之棰,日取其半,万世不竭”意思是:一根一尺的木棍,如果每天截取它的一半,永远也取不完。根据题意,第一天木棍剩下0.5尺,第二天木棍剩下0.25尺……
(1)在VB中处理0.25这样的小数时,应采用哪种数据类型________________ )
(2)编程求解,到第几天时,木棍长度小于0.01尺,写出VB代码。
(1)在VB中处理0.25这样的小数时,应采用哪种数据类型________________ )
(2)编程求解,到第几天时,木棍长度小于0.01尺,写出VB代码。