- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
小红编写了一个将5位以内的十六进制正整数转换成十进制数的VB程序,功能如下:在文本框Text1中输入一个十六进制正整数,单击“转换”按钮Command1,在标签Label3中显示结果。程序运行界面如图所示。

(1)要使窗体Form1标题显示“数制转换”,则需修改窗体的________(单击,填字母:A.Font/B.Caption/C.BackColor)属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim x As String, ch As String
Dim flag As Boolean, i As Integer, result As Long
x=_________
i=1
result=0
flag=True
ch=Mid(x,1,1)
Do While i <=Len(x) And flag=True
If ch>= “0” And ch<= “9” Then
result=result * 16+Val(ch)
ElseIf ch>= “A” And ch <= “F” Then
result=result * 16+(Asc(ch)-Asc (“A”)+10)
ElseIf ch>= “a” And ch <= “f” Then
result=result * 16+(Asc(ch)-Asc (“a”)+10)
Else
flag=False
End If
i=i+1
ch=_________
(3)若在文本框Text1中输入5+9,单击“转换”按钮后,标签Label3中显示的内容是______(单选,填字母:A.14/B.E/C.输入错误)。

(1)要使窗体Form1标题显示“数制转换”,则需修改窗体的________(单击,填字母:A.Font/B.Caption/C.BackColor)属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim x As String, ch As String
Dim flag As Boolean, i As Integer, result As Long
x=_________
i=1
result=0
flag=True
ch=Mid(x,1,1)
Do While i <=Len(x) And flag=True
If ch>= “0” And ch<= “9” Then
result=result * 16+Val(ch)
ElseIf ch>= “A” And ch <= “F” Then
result=result * 16+(Asc(ch)-Asc (“A”)+10)
ElseIf ch>= “a” And ch <= “f” Then
result=result * 16+(Asc(ch)-Asc (“a”)+10)
Else
flag=False
End If
i=i+1
ch=_________
Loop
If flag=True Then
Label3.Caption=Str(result)Else
Label3.Caption= “输入错误”End If
End Sub(3)若在文本框Text1中输入5+9,单击“转换”按钮后,标签Label3中显示的内容是______(单选,填字母:A.14/B.E/C.输入错误)。
尼克斯彻定理:任何一个大于等于 1 的整数的立方等于一串连续奇数之和,如:13=1,23=3+5,33=7+9+11。编写一个 VB 程序验证尼克斯彻定理,程序运行时,在文本框 Text1 中输入 一个大于等于 1 的整数,单击“验证”按钮 Command1,在文本框 Text2 中显示验证结果,运行界 面如下图所示

实现上述功能的 VB 代码如下,其中加框处代码有错,请改正。
Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String
n = Val(Text1.Text)
For i = 1 To n ^ 3 Step 2 ' 变量 i 表示连续奇数的首个整数
t=t+1
If sum = n ^ 3 Then flag = True
s = Str(n) + "^" + Str(3) + "="
Do While sum > 0
Text2.Text = s
End Sub
加框部分应改为:① _________ ②__________

实现上述功能的 VB 代码如下,其中加框处代码有错,请改正。
Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String
n = Val(Text1.Text)
For i = 1 To n ^ 3 Step 2 ' 变量 i 表示连续奇数的首个整数
sum = 0 : t =i : flag = False
Do While sum <= n ^ 3 And flag = False
sum = sum + tt=t+1
If sum = n ^ 3 Then flag = True
Loop
If flag = True Then Exit For
Next is = Str(n) + "^" + Str(3) + "="
Do While sum > 0
sum = sum-1
If sum = 0 Then
s = s + Str(i)Else
s = s + Str(i) + "+"End If
i = i + 2
LoopText2.Text = s
End Sub
加框部分应改为:① _________ ②__________
(加试题)有如下程序段:
i=6 : flag=True
Do While i>=4 And flag=True flag=False
k=i
For j=1 To i-1
If a(k)>a(j) Then k=j
Next j
If k<>i Then
t=a(i) : a(i)=a(k) : a(k)=t flag=True
End If
i=i-1
Loop
数组元素 a(1)到 a(6)的值依次为“24,7,37,45,11,52”,经过该程序段“加工”后, 数组元素 a(1)到 a(6)的值依次为( )
i=6 : flag=True
Do While i>=4 And flag=True flag=False
k=i
For j=1 To i-1
If a(k)>a(j) Then k=j
Next j
If k<>i Then
t=a(i) : a(i)=a(k) : a(k)=t flag=True
End If
i=i-1
Loop
数组元素 a(1)到 a(6)的值依次为“24,7,37,45,11,52”,经过该程序段“加工”后, 数组元素 a(1)到 a(6)的值依次为( )
A.7,11,37,45,24,52 | B.45,52,37,24,11,7 |
C.7,11,24,45,37,52 | D.24,52,37,45,11,7 |
为了合理有效的共享学校图书馆自修室资源,学校实行自修室座位网上预约,学生
按学号登录系统进行预约(学号编码为六位数字,第一二位代表年级,第三四位代表班级,第五 六位代表顺序号。如 030102 表示高三 1 班 2 号同学)。为了方便老师管理,预约结束由电脑进行 排位。排位规则如下:
①年级优先原则,先高三再高二最后高一
②班号优先原则,同年级的班号小的排前面
③序号优先原则,同班级同学序号小的排前面 小张根据以上要求编写了 VB 程序,程序界面如下图所示:

实现上述功能的 VB 程序代码如下,请回答下列问题:
⑴分析程序,可知调用的数据库的名称为____________________________________。
⑵请在划线处填入合适的代码。
Dim a(200) As String
Const num = 200
Dim temp As String
Private Sub Form_Load() ‘此处代码实现将预约信息存储到数组 a(i)中
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "provider=Microsoft.AC
rs.Open "select * from student"
i = 1
Do While Not rs.EOF
a(i) = rs("xuehao")
rs.MoveNext
①____________
Loop
rs.Close
cn.Close
List1.AddItem "预约号" & " " & "学号"
For i = 1 To num
End Sub
Private Sub Command1_Click()
For i = 1 To num - 1
For j = num To i + 1 Step -1
If ②____________ Then
temp = a(j) a(j) = a(j - 1) a(j - 1) = temp
End If
List2.Clear
List2.AddItem "座位" & " " & "学号"
For i = 1 To num
List1.AddItem Str(i) & " " & a(i)
Next i
End Sub
Function check(x As String, y As String) As Boolean
Dim x1 As Integer, x2 As Integer, x3 As Integer
Dim y1 As Integer, y2 As Integer, y3 As Integer
x1 = Val(Mid(x, 1, 2)) : x2 = Val(Mid(x, 3, 2)) : x3 = Val(Mid(x, 5, 2))
y1 = Val(Mid(y, 1, 2)) : y2 = Val(Mid(y, 3, 2)) : y3 = Val(Mid(y, 5, 2))
If x1 < y1 Or x1 = y1 And x2 > y2 Or ③__________ Then
check = True
Else
End Function
按学号登录系统进行预约(学号编码为六位数字,第一二位代表年级,第三四位代表班级,第五 六位代表顺序号。如 030102 表示高三 1 班 2 号同学)。为了方便老师管理,预约结束由电脑进行 排位。排位规则如下:
①年级优先原则,先高三再高二最后高一
②班号优先原则,同年级的班号小的排前面
③序号优先原则,同班级同学序号小的排前面 小张根据以上要求编写了 VB 程序,程序界面如下图所示:

实现上述功能的 VB 程序代码如下,请回答下列问题:
⑴分析程序,可知调用的数据库的名称为____________________________________。
⑵请在划线处填入合适的代码。
Dim a(200) As String
Const num = 200
Dim temp As String
Private Sub Form_Load() ‘此处代码实现将预约信息存储到数组 a(i)中
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "provider=Microsoft.AC
A.OLEDB.12.0;data source=" & App.Path & "\" &"stu.accdb" |
i = 1
Do While Not rs.EOF
a(i) = rs("xuehao")
rs.MoveNext
①____________
Loop
rs.Close
cn.Close
List1.AddItem "预约号" & " " & "学号"
For i = 1 To num
List1.AddItem Str(i) & " " & a(i)
Next iEnd Sub
Private Sub Command1_Click()
For i = 1 To num - 1
For j = num To i + 1 Step -1
If ②____________ Then
temp = a(j) a(j) = a(j - 1) a(j - 1) = temp
End If
Next j
Next iList2.Clear
List2.AddItem "座位" & " " & "学号"
For i = 1 To num
List1.AddItem Str(i) & " " & a(i)
Next i
End Sub
Function check(x As String, y As String) As Boolean
Dim x1 As Integer, x2 As Integer, x3 As Integer
Dim y1 As Integer, y2 As Integer, y3 As Integer
x1 = Val(Mid(x, 1, 2)) : x2 = Val(Mid(x, 3, 2)) : x3 = Val(Mid(x, 5, 2))
y1 = Val(Mid(y, 1, 2)) : y2 = Val(Mid(y, 3, 2)) : y3 = Val(Mid(y, 5, 2))
If x1 < y1 Or x1 = y1 And x2 > y2 Or ③__________ Then
check = True
Else
check = False
End IfEnd Function
在一个数字字符串中,求最长连续递增序列的长度。例如,字符串“123423416789”,最长的递增序列为“16789”,长度为5。编写一个程序,功能如下:在文本框Text1中输入数字字符串,单击“计算”按钮Command1,在标签Label3中显示最长连续递增序列的长度。程序设计界面与运行界面如图所示。

(1)要使程序运行时,按钮Command1上的文字显示为“计算”,可在___________事件过程中添加语句Command1. Caption="计算"。
(单选,填字母:
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
PrivateSubCommand1_Click()
Dim s As String,max As Integer
Dim t As Integer,I As Integer
max=0:t=1
s=Text1. Text
i=1
Do While i <= Len(s)-1
______________
End If
i=i+1
If t > max Then max = t
(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“123423416789”,单击“计算”按钮,则标签框Label3中显示的内容为__________________。

(1)要使程序运行时,按钮Command1上的文字显示为“计算”,可在___________事件过程中添加语句Command1. Caption="计算"。
(单选,填字母:
A.Command1_Click / | B.Form_Load / | C.Command1_DblCkick)。 |
PrivateSubCommand1_Click()
Dim s As String,max As Integer
Dim t As Integer,I As Integer
max=0:t=1
s=Text1. Text
i=1
Do While i <= Len(s)-1
If Val(Mid(s,i,1)) < ___________Then
t=t+1Else
If t > max Then max = t______________
End If
i=i+1
Loop
If t > max Then max = t
Label3. Caption = Str(max)
End Sub(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“123423416789”,单击“计算”按钮,则标签框Label3中显示的内容为__________________。
有如下VB程序段:
Dim a(1 to 5) as Integer, i as Integer, c as Integer
a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5
c = 0
For I = 3 to 5
If a(i - 2) + a(i - 1) = a(i) Then c = c + 1
Next i
Text1.Text = Str(c)
该程序运行后,文本框text1中显示的内容是( )
Dim a(1 to 5) as Integer, i as Integer, c as Integer
a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5
c = 0
For I = 3 to 5
If a(i - 2) + a(i - 1) = a(i) Then c = c + 1
Next i
Text1.Text = Str(c)
该程序运行后,文本框text1中显示的内容是( )
A.1 | B.2 | C.3 | D.4 |
有如下VB程序段:
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”。执行程序后,变量n的值为( )
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”。执行程序后,变量n的值为( )
A.1 | B.2 | C.4 | D.9 |
已知一无序数组a(下标1到n),通过引入数组b(下标1到n),使得a(b(1))≤a(b(2)) ≤a(b(3))……≤a(b(n))(示例如下图所示),对这些有序数据可进行对分查找。则第一次查找时,中点位置m与中点值分别是( )


A.m的值是Fix((1+n)/2),中点值是 a(m) |
B.m的值是Fix((1+n)/2),中点值是 a(b(m)) |
C.m的值是Fix((b(1))+b(n))/2),中点值是 a(m) |
D.m的值是Fix((b(1))+b(n))/2),中点值是 a(b(m)) |