第二部分Visual Basic程序设计
一、选择题(每题1分,共10分。)
21.在程序中将变量Inta、Bl、St和D分别定义为Integer型、Boolean型、String型和Date型,下列赋值语句中,正确的是_________。
A.Inta="333"+"22" B.D=#10/05/01#
C.St=5+"abc" D.B1=#True#
22.以下使用方法的语句中,正确的是_________。
A.List1.Clear B.Form1.C1ear
C.Combo1.Cls D.Picture1.C1ear
23.以下所列的7个控件中,具有Caption属性的有_________个。
PictureBox(图片框)、Frame(框架)、OptionButton(单选按钮)、“listBox(列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
框)、TextBox(文本框)、Form(窗体)、DriveListBox(驱动器列表框)
A.3 B.4 C.2 D.5
24.以下有关对象属性的说法中错误的是________。
A.所有的对象都具有Name(名称)属性
B.只能在执行时设置或改变的属性为执行时属性
C.对象的某些属性只能在设计时设定,不能使用代码改变
D.Enabled属性值设为False的控件对象在窗体上将不可见
25.在窗体的通用声明处有语句“Dim A()As Single”,以下在某事件过程中重定义此数组的一组正确语句是_________。
A.ReDim A(3,3) B.ReDim A(3,3)
ReDim A(4,4) As Integer ReDim Preserve A(4, 4)
C.ReDim A(3) D.ReDim A(3,3)
ReDim A(3,3)As Integer ReDim Preserve A(3,4)
26.在窗体Form1中用“Public Sub Fun(x As Integer,Y As Single)”定义过程Fun,在窗体Form2中定义了变量i为Integer,J为Single,若要在Form2的某事件过程中调用Form1中的Fun过程,则下列语句中正确的语句有_________个。
①Call Fun(i, j) ②Call Form1.Fun(I, i)
③Form1Fun(i), j ④Form1.Fun i+l, (j)
A.1 B.2 C.3 D.4
27.在文本框Text1中输入数字12,在文本框Text2中输入数字34,执行以下语句,只有_______可使文本框Text3中显示46。
A.Text3.Text=Text1.Text & Text2.Text
B.Text3.Text=Val(Text1.Text)+Val(Text2.Text)
C.Text3.Text=Text1.Text+Text2.Text
D.Text3.Text=Val(Text1.Text) & Val(Text2.Text)
28.在窗体模块的通用声明处有如下语句,会产生错误的语句是__________。
①Const A As Integer=25 ②Public St As String*8
③ReDim B(3)As Integer ④Dim Const X As Integer=10
A.①② B.①③ C.①②③ D.②③④
29.下列定义Sub过程的语句中,正确的语句是_________。
①Private Sub Test(St As String*8)
②Private Sub Test(Sarray()As String*5)
③Private Sub Test(Sarray()As String)
④Private Sub Test(St As String)
A.①② B.①④ C.②③④ D.①②③④
30.VB中利用Circle方法不可以画__________。
A.圆 B.直线 C.弧 D.椭圆
二、填空题(每空1分,共30分。)
1.将任意一个两位正整数N的个位数与十位数对换得到新数的VB表达式是________。
2.执行下面的程序,单击窗体,则在窗体上显示的第一行是________,第二行是_______
Private Sub Form_Click()
Dim a(3, 3) As Integer, i As Integer , j As Integer
For i=1 To 3
For j=1 To 3
a(I, j)=(I-1)*2+j
Next J
Next i
For j=1 To 3
For I=j To 3
Print a(j, i);
Next i
Print
Next j
End Sub
3.执行下面的程序,单击命令按钮Command1,则窗体上显示的第一行是_______,第二行是________,第三行是________。
Private Sub Command1_Click()
Dim S As String, t As String
Dim k AS Integer, m AS Integer
s="BASICY"
k=1: m=k
For k=1 To Len(s) Step m+1
t=t & Chr(Asc(Mid(s, m, 1))+k)
k=k+1
If Mid(s, k, 1)= "Y" Then Exit For
M=m+k
Print t
Next k
Print m
End Sub
4.执行下面的程序,单击窗体,在立即窗口上显示的第二行是________,第三行是_______
Option Explicit
Dim A As Integer
Private Sub Form_Click()
Dim B As Integer
Dim D As Integer
A=1: B=2
D=fun(A, fun(A, B))
Debug. Print A, B, D
End Sub
Private Function fun(K As Integer, N As Integer)As Integer
Debug. Print K, N,
K=N+A+K
N=K+A+N
fun=K+N
Debug. Print fun
End Function
5.执行下面的程序,如果不选中复选框Check1,单击命令按钮Command1,则在文本框Text1中显示的变量a的值是_________,b的值是_________,r的值是________;如果选中复选框Check1,单击命令按钮command1,则文本框Text1中显示内容是________ (图l为本程序设计界面)。
Private Sub Command1_Click() 图 1
Dim a As Integer, b As Integer, r As Integer
a=27:b=12
If Check1. Value=0 Then
r=gcd(a, b)
Text1="GCD(" & CStr(a) & ", " & CStr(b) & ")=" & CStr(r)
ElseIf Check1. Value=1 Then
r=gcd((a), (b))
Text1="GCD(" & CStr(a) & "," & CStr(b) & ")=" & CStr(r)
End If
End Sub
Private Function gcd(x As Integer, Y As Integer) As Integer
Dim r As Integer
r=x Mod Y
Do While r<>0
X=Y: Y=r
r=X Mod Y
Loop
gcd=Y
End Function
6.运行下面的程序,单击命令按钮Command1,则显示在文本框Text1中的内容是_______, A(4)的值是__________,A(5)的值是_________。
Option Explicit
Private Sub Command1 _Click()
Dim A(8) As Integer, I As Integer, K As Integer
A(1)=1:A(2)=4:A(3)=6:A(4)=4
A(5)=6:A(6)=8:A(7)=6:A(8)=1
Call Stat(A, K)
Text1="K=" & Str(K)
End Sub
Private Sub Stat(A()As Integer, N As Integer)
Dim Idx As Integer, Count As Integer, P As Integer
Dim T As Integer
Count=UBound(A)
Do
Idx= Idx + 1
P=Idx+1
Do While P<=Count
If A(Idx)=A(P) Then
A(P)=A(Count)
Count=Count-1
Else
P=P+1
End If
Loop
N=Count
Loop While Idx<>Count
End Sub
7.下面程序的功能是:将以“12;3;15”形式输入的字符串分解为数字12、3、15,分别赋给3个数组元素,并对其进行简单运算(图2为本程序执行画面)。
Private Sub Command1_Click()
Dim a(3)As Integer, i As Integer
Dim n As Integer
Dim S As String
s=Text1.Text
For i=l To 2
n=________
a(i)=Left(s, n-1)
S=________
Next I 图 2
_________
Text2.Text=a(1)*a(2)+a(3)
End Sub
8.本程序是找零巧数。所谓零巧数是指具有下述特性的四位正整数;其百位数为0,如果去掉0,得到一个三位正整数,而该正整数乘以9,等于原数。例如,2025=225×9,所以2025是零巧数(图3)。
Private Function Change(s As String)As String
Dim P As String, i As Integer
For i=1 To Len(s)
If i<>2 Then
P=__________
End if
Next i
Change=P
End function
Private Sub Command1_Click()
Dim i As Integer, s As String
For i=1000 To 9999
_________
If Mid(s, 2, 1)= "0" Then
If Val(Change(s))*9=i Then 图 3
__________
End If
End If
Next i
End Sub
9.本程序是把给定的二进制整数转换为八进制整数。
Private Sub Command1_Click()
Dim a As String, b As String, c As String
Dim L As Integer, m As Integer, n As Integer
A=InputBox("请输入一个二进制数", "输入框")
_________
a=String(L, W) & a
_________
For m=l To n
b=Mid(a, 3*m-2, 3)
__________
Next m
Text1.Text=C
End Sub
Private Function zh(s As String)As String
Dim i As Integer, n AS Integer, P As Integer
P=1
For i=2 To 0 Step -1
__________
P=P+1
Next i
zh=Str(n)
End Function
10.找出由两个不同数字组成的平方数,并将结果按图4中的格式显示在列表框List1中。 Option Explicit
Private Sub Command1_Click()
Dim I As Long, N AS Long
For I=11 To 300
__________
If Verify(N) Then
_________
End If
Next I
End Sub
Private Function Verify(_________ )AS Boolean
Dim A(0 To 9) As Integer, I As Integer, Js As Integer
Do While N<>0
________
N=N\10
Loop
For I=0 To 9
Js=Js+A(I)
Next I
_________
End Function 图 4