一、选择题
1.Visual basic 采用了__________________编程机制。
A) 面向对象 B)面向过程 C)事件驱动 D)可视化
2._____________版本的Visual basic 6.0 具有其它两个版本的全部功能,它能够开发分布式应用程序。
A)学习版 B)
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
版 C)专业版 D)企业版
3.Visual basic不具有以下的_______________特点。
A)Visual basic采用了面向对象的程序设计方法
B)Visual basic是结构化程序设计语言
C)Visual basic采用面向过程的编程机制
D)Visual basic提供了可视化的工具。
4.下列操作不能打开属性窗口的是________________。
A)在对象上单击右键,弹出快捷菜单,选取“属性窗口”菜音项
B)按F4键 C)单击工具栏上的“属性窗口” D)双击对象
5.用户通过__________模拟屏幕的小图像来布置应用程序。
A)窗体设计器 B)快捷菜单 D)立即窗口 D)窗体布局窗口
6.以下不属于Visual basic的三种工作模式的是______________。
A)编辑 B)设计 C)运行 D)中断
6.当将窗体的_____属性设置为False时,将不显示窗体的控制菜单、最大化/最小化及关闭按钮。
A)MaxButton B) MinButton C)ControlBox D) WindowsState
7.如果在运行时不允许移动窗体,可以将窗体的________属性设计为False。
A)BorderStyle B) ControlBox C)Moveable D) WindowsState
8.如果要使窗体的最大化按钮变成灰色(不起作用),应该设置窗体的____属性。
A)Caption B) Icon C) Maxbutton D) MinButton
9.要在窗体上显示图片,需要设计窗体的_________属性。
A)Caption B) Icon C)Picture D) ControlBox
10.如果希望运行时窗体以最大化方式显示,应该设置窗体的______属性。
A)BorderStyle B)ControlBox C)C)Moveable D)WindowsState
11.当将窗体的_____属性设置为False时,运行时窗体上的按钮、文本框等控件就不会对用户的操作做出响应。
A)Enabled B) Visible C) ControlBox D) WindowsState
12.运行时,单击窗体将窗体的前景颜色设置为红色的事件过程是_______。
A)Private Sub Form_Click()
Backcolor=vbRed
End Sub
B) Private Sub Form_Click()
Form1.forecolor=vbRed
End Sub
C) Private Sub Form_Click()
Form1.Backcolor=vbRed
End Sub
D) Private Sub Form_Load()
Forecolor=vbRed
End Sub
13.假设某一事件的过程如下,则响应该过程的对象名是____B_,事件名是__C___。
Private Sub Mylbl_DblClick()
Form1.Caption=”Hello!”
End Sub
A) Mylbl_Dbl、DblClick B) Mylbl C) DblClick D) Mylbl_Click
14.在设计阶段,双击窗体Form的空白处,打开代码窗口,显示_______事件过程
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
。
A) Form_click B)Form_load C)Load D) Unlosd
10.在运行时,系统自动启动窗体的_________事件过程。
A)Click B) GotFocus C) Load D) Unlosd
11.在属性窗口设置命令按钮的DownPicture属性,指定按下时显示的图形文件,但在运行时按下命令按钮又没有效果,解决的方法是_____________。
A) 命令按钮的Default属性设计为True B) 命令按钮的Style属性设计为2-Picture
C) 命令按钮的Style属性设计为0-Standard D) 命令按钮的Style属性设计为1-Graphical
12.如果在设计时在属性窗口中将命令按钮的___________属性设置为False,则运行时按钮将在窗体上消失。
A) Visible B) Enabled C) DisabledPicture D) Default
13.如果在设计时在属性窗口中将命令按钮的___________属性设置为False,则运行时按钮将不起作用。
A) Visible B) Enabled C) DisabledPicture D) Default
14.下列操作不能触发一个命令按钮的Click事件的是________________。
A)在按钮上单击鼠标左键 B)在按钮上单击鼠标右键
C)把焦点移到按钮上,按回车键 D) 使用该按钮的访问键
15.将文本框的__________属性设置为True时,文本框可以输入或显示多行文本,且会自动换行。
A)Multiline B)Sccollbars C)Text D)Enabled
16.如果将passwordChar属性设置为一个字符“*”号,在文本框输入的字符仍然显示出来,而不显示*号,则原因可能是______________。
A)文本框的Multiline属性设置为True B)文本框的Locked属性设置为True
C)文本框的Multiline属性设置为False D)文本框的Locked属性设置为False
17.在设计阶段,双击某一文本框,打开代码窗口,显示文本框的_______事件过程模板。
A) click B)DblClick C)Change D) GotFucos
18.在运行阶段,要在文本框Text1获得焦点时选中文本框的所有内容,对应如下的事件过程是_________________。
A)Private Sub Text1_Gotfocus()
Ttext1.SelStart=0
Text1.Sellength=Len(Text1.Ttext)
End Sub
B)Private Sub Text1_Lostfocus()
Ttext1.SelStart=0
Text1.Sellength=Len(Text1.Ttext)
End Sub
C)Private Sub Text1_Change()
Ttext1.SelStart=0
Text1.Sellength=Len(Text1.Ttext)
End Sub
D)Private Sub Text1_Settfocus()
Ttext1.SelStart=0
Text1.Sellength=Len(Text1.Ttext)
End Sub
19.通过文本框的_______________事件过程可以获得文本框中输入字符的ASCII码值。
A) Change B)Gotfocus C)LostFocus D) Keypress
20.为了在按下ESC键时执行某个命令按钮的事件过程,需要把此命令按钮的___________设置为True。
A)Value B) Default C)Cancel D)Enabled
21.下列_______是日期型常量。
A) “2/1/02” B)2/1/02 C)#2/1/02# D){2/1/02}
22.下面____________不是字符串常量。
A)“你好” B)“ ” C)“True” D)#False#
23.表达式Int(8*sqr(36)*10^(-2)+0.5)/10的值是__________________。
A).48 B).048 C).5 D).05
24.下列符号常量中,______________是不合法的。
A) Const a as Single=1.1 B)Const a as Integer=”12”
C)Const a as Double=Sin(1) D)Const a=”OK”
25.系统常量符号的定义可以通过______________获得。
A)对象浏览器 B)代码窗口 C) 属性窗口 D)工具箱
26.要强制显示声明变量,可以在窗体模块或标准模块人声明段中加入语句_________。
A)Option Base 0 B)Option Explicit C)Option Base 1 D)Option Compare
27.假设x=3,y=6,z=5,则表达式(x^2+y)/z是_________________。
A)1 B)5 C)3 D)2.4
28.假设A=3,B=7,C=2,则表达式A>B or B>C的值是_______________。
A)True B)False C)表达式有错 D)不确定
29.产生[10,37]之间的随机整数的Visual Basic表达式是______________。
A)Int(Rnd(1)*27)+10 B)Int(Rnd(1)*28)+10
C)Int(Rnd(1)*27)+11 D)Int(Rnd(1)*28)+11
30.表达式Int(-17.8)+Abs(17.8)是______________。
A)0 B)0.8 C)-0.2 D)-34.8
31.表达式Left(“how are you”,3)的值是_______________。
A)how B)are C)you D)how are you
32.表达式Right(“Beijing”,4) 的值是_______________。
A)Bei B)jing C)eiji D)ijin
33.代数式x1-|a|+ln10+sin(x2+2π)/cos(57o)对应的Visual Basic 表达式是____________。
A)x1-Abs(a)+Log(10)+sin(x2+2*3.14)/cos(57*3.14/180)
B)x1-Abs(a)+Log(10)+sin(x2+2*π)/cos(57*3.14/180)
C)x1-Abs(a)+Log(10)+sin(x2+2*3.14)/cos(57)
D)x1-Abs(a)+Log(10)+sin(x2+2*π)/cos(57)
34.下列数学式的正确VB表达式是____________________。
A)3y+(a+3*x^2+4*x^3)/(1+2*x+x^2)-2*b
B)3*y+(a+3*x^2+4*x^3)/(1+2*x+x^2)-2b
C)3*y+(a+3*x^2+4*x^3)/1+2*x+x^2-2*b
D)3*y+(a+3*x^2+4*x^3)/(1+2*x+x^2)-2*b
35.语句x=x+1的正确函义是________________。
A)变量X与X+1的值相等 B) 将变量X的值存到X+1中去
C)将变量X的值加1后赋给变量X D)变量X的值为1
36.如果将布尔常量True赋给一个整型变量,则整型变量的值为_______。
A)0 B)-1 C)True D)False
37.变量未赋值时,整型变量的值为_A_,字符型变量的值为__B__。
A)0 B)空串“ “ C)Null D)没有任何值
38.InputBox函数的返回值为__________。
A)数值 B)字符串 C)变体 D)数值与字符串(视输入数据而定)
39.以下_______程序段可以实现变量X与Y的值互换。
A)Y=X:X=Y B)Z=X:Y=Z:X=Y C)Z=X:X=Y:Y=Z D)Z=X:W=Y:Y=Z:X=Y
40.以下程序段的执行结果是______________。
X=2
Print X+1:X+1
A)3 3 B)X+1 X+1 C)3 4 D)2+1 2+1
41.下列程序的执行结果是__________。
X=0
Print X-1
X=3
A)-1 B)3 C)2 D)0
42.以下叙述不正确的是_____________。
A)注释语句是非执行语句,仅对程序的有关内容起注释作用,它不被解释和编译
B)注释语句可以放在代码的任何位置
C)注释语句不能放在续行符(VB续行符是空格后跟一下划线)的后面
D)代码中加入注释语句的目的是为了提高程序的可读性
43.下列程序段的执行结果为_________。
X=1:y=2
Z=x=y
Print x;y;z
A)1 1 2 B)1 1 1 C)False False 1 D)1 2 False
44.以下程序在窗体上输出__B_,在图片框中输出__A_,在立即窗口中输出__C_。
A=“your”
B=“sname”
C=“isc”
Print right(A,3)
Picture1.Print Mid(B,2,4)
Debug.Print Left(C,2)
A)Name B)our C)is D)ournameis
45.设变量a和b的值分别为153和-45,则Debug.print a;b的输出结果为___。
A)□153□-45 □ B)153□-45 C)□153□□-45 □ D)□153□-45
46.Print sgn(-6^2)+abs(int(-234.12))的输出结果为________。
A)-300 B)300 C)256 D)234
47.Print Format(Abs(-3 ^ 2) + 32.5, "$$####,##.000")的输出结果为_____。
A)$$41.500 B)$$41.5 C)$000041.5000 D)$$000041.5000
48.如下程序运行时,在两个输入对话框中分别输入123和456,则程序的输出结果为_________。
Private Sub Form_Click()
x = InputBox("输入第一个数据", "输入数据")
y = InputBox("输入第二个数据", "输入数据")
Print x + y
End Sub
A)123456 B)123 C)579 D)456
49.计算分数函数:
下列程序段中正确的是_____________.
if x<0 then y=0
if x<1 then y=1
if x<2 then y=2
if x>=2 then y=3
if x>=2 then y=3
if x<1 then y=2
if x>=0 then y=1
if x<0 then y=0
C)
If x<0 then
Y=0
Elseif x>=0 then
Y=1
Elseif x>=1 then
Y=2
Else
Y=3
Endif
D)
If x>=2 then
Y=3
Elseif x>=1 then
Y=2
Elseif x>=0 then
Y=1
Else
Y=0
End if
50.计算分段函数:
下列程序段中正确的是_____________.
A)
Select case x
Case x<0
Y=0
Case x>=1 and x<1
Y=1
Case x>=1 and x<2
Y=2
Case else
Y=3
End select
B)
Select case x
Case x<0
Y=0
Case x<1
Y=1
Case x<2
Y=2
Case else
Y=3
End select
C)
Select case x
Case is<0
Y=0
Case is<1
Y=1
Case is<2
Y=2
Case else
Y=3
End select
D)
Select case x
Case is<0
Y=0
Case is<1
Y=1
Case is<2
Y=2
Case else
Y=3
End select
51.下列程序的执行结果是________.
J1=10
J2=30
If j1
b then print a-b else print b-1
A)-9 B) 9 C) 12-12 D)0
53. 下列程序的执行结果是________.
A=”abcd”
B=”bcde”
E=right(a,3)
F=mid(b,2,3)
If e 0 Then x = y - 3 Else y = x + 3
Print x - y; y - x
End Sub
A)-3 3 B) 5 -8 C)3 -3 D)25 -25
57 .执行语句a=iif(5>10,1,-1)后,变量a的值为__________.
A)5 B)10 C)1 D)-1
58.下列程序的执行结果是_________。
Private Sub Form_Click()
x = 1
y = 1
For i = 1 To 3
f = x + y
x = y
y = f
Print f;
Next i
End Sub
A)2 3 6 B)2 2 2 C)2 3 4 D)2 3 5
59.下列程序的执行结果是_________。
Private Sub Form_Click()
i = 4
a = 5
Do
i = i + 1
a = a + 2
Loop Until i >= 7
Print "i="; i
Print "a="; a
End Sub
A)
I=4
A=5
B)
I=7
A=23
C)
I=8
A=7
D)
I=7
A=11
60.下列程序的执行结果是_________。
Private Sub Form_Click()
n = 0
j = 1
Do Until n > 2
n = n + 1
j = j + n * (n + 1)
Loop
Print n; j
End Sub
A)0 1 B)3 7 C)3 21 D)3 13
61.下列程序的执行结果是_________。
Private Sub Form_Click()
n = 0
For i = 1 To 3
For j = 5 To 1 Step -1
n = n + 1
Next j, i
Print n; j; i
End Sub
A)12 0 4 B)15 0 4 C)12 3 1 D)15 3 1
62.下列程序的执行结果是_________。
Private Sub Form_Click()
k = 0
For j = 1 To 2
For i = 1 To 3
k = i + 1
Next i
For i = 1 To 7
k = k + 1
Next i
Next j
Print k
End Sub
A)10 B)6 C)11 D)16
63.对于下面结构的循环语句,叙述正确的是________。
Do until 条件
循环体
Loop
A)如果条件是一个为0的常数,则不执行循环体
B)如果条件是一个为0的常数,则至少一次执行循环体
C)如果条件是一个不为0的常数,则至少一次执行循环体
D)不论条件是否为真,至少至少执行一次循环体
64.下列程序的执行结果是_________。
Private Sub Form_Click()
Dim m As Integer, n As Integer, j As Integer, k As Integer
n = 0
For m = 1 To 3
For j = 1 To m
For k = 1 To 3
n = n + 1
Next k, j, m
Print n
End Sub
A)6 B)10 C)18 D)21
65.如下程序的print i*j的执行次数是________。
Private Sub Form_Click()
Dim i As Integer, j As Integer, n As Integer
i = 1
n = 0
Do While i < 4
i = i + 1
For j = 5 To 1 Step -1
Print i * j;
n = n + 1
Next j
Print
Loop
Print n
End Sub
A)15 B) 16 C)17 D)18
66.下列程序的执行结果是_________。
Private Sub Form_Click()
Dim k As Integer, n As Integer, m As Integer
k = 1: m = 1: n = 10
Do While k <= n
m = m * 2
k = k + 1
Loop
Print m
End Sub
A)20 B)1 C)1024 D)200
67.下列程序的执行结果是_________。
Private Sub Form_Click()
Dim x As Integer, y As Integer
x = 1
For y = 1 To 50
If x >= 10 Then
Exit For
End If
If x Mod 2 = 1 Then
x = x + 5
Else
x = x - 3
End If
Next y
Print x
End Sub
A)4 B)6 C)8 D)10
68.下列程序的执行结果是_________。
Private Sub Form_Click()
Dim i As Integer, j As Integer, s As Integer
For i = 6 To 5 Step -1
s = 0#
For j = i To 4 Step -1
s = s + i * j
Next j
Next i
Print s
End Sub
A)90 B)45 C)135 D)60
69.下列程序的执行结果是_________。
Private Sub Form_Click()
Dim k As Integer, c As String * 1
k = 0: c = "A"
Do
Select Case c
Case "A"
k = k + 1
Case "B"
k = k - 1
Case "C"
k = k + 2
Case "D"
Case "E"
k = k * 2
Case Else
k = k / 3
End Select
c = Chr(Asc(c) + 1)
k = k + 1
Loop While c < "F"
Print k
End Sub
A)2 B)5 C)6 D)13
70.语句dim a(3,4,5)定义的数组中包含的数据元素的个数量为________。
A)12 B)60 C)120 D)345
71.设有数组声明语句:
Option base 0
Dim b(-1 to 10,2 to 9,20) as integer
则数组B中共有__________个元素。
A)1700 B)1747 C)2016 D)2310
72.以下说法不正确的是__________。
A)使用Redim语句可以修改数组的维数
B)使用Redim语句可以改变数组的类型
C)使用Redim语句可以改变数组的每一维的大小
D)使用Redim语句可以对数组中的所有元素进行初始化
73.设用复制、粘贴的方法建立了一个命令按钮数组command1,以下对该数组的说法错误的是_________。
A)命令按钮的所有Caption属性都是command1
B) 在代码中访问任何一个按钮只需要使用数组名称command1
C)命令按钮的大小写都相同
D)命令按钮共享相同的事件过程
74.下列程序的执行结果为_________。
Private Sub Form_Click()
Dim M(10)
For i = 0 To 10
M(i) = 2 * i
Next i
Print M(M(3))
End Sub
A)12 B)6 C)0 D)4
75.下列程序的执行结果为_________。
Private Sub Form_Click()
Dim a(5)
For i = 1 To 5
a(i) = i * i
Next i
Print a(i - 1)
End Sub
A)5 B)25 C)0 D)16
76.下列程序的执行结果为_________。
Option Base 0
Private Sub Command1_Click()
Dim a
a = Array("a", "b", "c", "d", "e", "f", "g")
Print a(1); a(3); a(5)
End Sub
A)abc B)bdf C)ace D)错误
77.下列程序的执行结果为_________。
Private Sub Form_Click()
Dim a(1 To 20) As Integer
For k = 1 To 20
a(k) = k * k
Next k
Print a(k)
End Sub
A)400 B)20 C)441 D)出错
78.下列程序的执行结果为_________。
Private Sub Command1_Click()
Dim m(1 To 10) As Integer, k As Integer
For k = 1 To 10
m(k) = 11 - k
Next k
For k = 1 To 10
Print m(m(k));
Next k
End Sub
A)10 9 8 7 6 5 4 3 2 1
B)1 3 5 7 9 2 4 6 8 10
C)2 4 6 8 10 1 3 5 7 9
D)1 2 3 4 5 6 7 8 9 10
79.下列程序的执行结果为_________。
Option Base 1
Private Sub Command1_Click()
Dim x As Variant
Dim s As Integer, j As Integer
s = 0: j = 1
x = Array(1, 2, 3, 4, 5)
For i = 4 To 1 Step -1
s = s + x(i) * j
j = j * 10
Next i
Print s
End Sub
A)1234 B)4321 C)12 D)34
80.下列程序的执行结果为_________。
Option Base 1
Private Sub Command1_Click()
Dim x() As Integer
Dim m As Integer, n As Integer, k As Integer
m = Val(InputBox("请输入m的值"))
n = Val(InputBox("请输入n的值"))
ReDim x(m To n)
For k = LBound(x, 1) To UBound(x, 1)
x(k) = k * k
Print x(k)
Next k
End Sub
程序运行时m和n分别输入的是5和5,则输出结果为:
A)5 B)25 C)出错 D)没有输出
81.下列程序段运行后,元素x(3,4)的值为 __________。
Private Sub Command1_Click()
Dim x(3, 5) As Integer, i As Integer
For i = 1 To 3
For j = 1 To 5
x(i, j) = x(i - 1, j - 1) + i + j
Next j
Next i
Print x(3, 4)
End Sub
A)12 B)13 C)14 D)15
82.要想在过程调用后两个结果,下面的过程定义合法的语句是________.
A) Sub proc1(byval m)
B) Sub proc1(n,byval m)
C) Sub proc1(n,m)
D) Sub proc1(byval n,m)
83. 在参数传递过程中,使用关键字_______来修饰参数,可以使之按传递.
A)byval B)by C)value D) reference
84. 下面程序的执行结果是________.
Private Function firproc(x As Integer, y As Integer, z As Integer)
firproc = 2 * x + y + 3 * z
End Function
Private Function secproc(x As Integer, y As Integer, z As Integer)
secproc = firproc(z, x, y) + x
End Function
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = 2: b = 3: c = 4
Print secproc(c, b, a)
End Sub
A)21 B)18 C)17 D)34
85.下面程序的执行结果是________.
Public Function myfunc(m As Integer, n As Integer) As Integer
Do While m <> n
Do While m > n: m = m - n: Loop
Do While m < n: n = n - m: Loop
Loop
myfunc = m
End Function
Private Sub Command1_Click()
Print myfunc(24, 18)
End Sub
A)2 B)4 C)6 D)8
86.在代码中定义了一个子过程:
Sub P(a,b)
…
End Sub
以下调用正确的是____________。
A)Call p B)Call p 10,20 C)Call P(10,20) D)p(10,20)
87.以下程序的执行结果为__________________。
Sub s(x As Single, y As Single)
t = x
x = t / y
y = t Mod y
End Sub
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
a = 5: b = 4
s a, b
Print a, b
End Sub
A)5 4 B)1 1 C)1.25 4 D)1.25 1
88.以下程序的执行结果为__________________。
Function func(ByVal x As Integer, y As Integer)
y = x * y
If y > 0 Then
func = x
Else
func = y
End If
End Function
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 3
b = 4
c = func(a, b)
Print "a="; a
Print "b="; b
Print "c="; c
End Sub
A)
A= 3
B= 12
C= 3
B)
A= 3
B= 4
C= 3
C)
A= 3
B= 4
C= 12
D)
A= 3
B= 12
C= 12
89.以下程序的执行结果为__________________。
Private Sub Form_Click()
Dim i As Integer
s = 0
For i = 1 To 5
s = s + f(i)
Next
Print s
End Sub
Function f(n As Integer) As Integer
f = n - 1
End Function
A)11 B)10 C)9 D)8
90. 以下描述中正确的是_______________。
A)标准模块中的任何过程都可以在整个工程范围内被调用
B)在一个窗体模块中可以调用在其它窗体中被定义为Public的通用过程
C)如果工作中包含Sub Main过程,则程序一定首先执行第一个建立的窗体
D)如果工作中不包含Sub Main过程,则程序一定首先执行第一个建立的窗体
91.设已经在窗体画好一个容器控件,要在容器中建立一个命令按钮组,以下操作正确的是______.
A)逐次单击工具中,再在容器中画出按钮;
B)在容器上画出按钮,选择按钮,复制,粘贴,并创建控件数组,再重复粘贴
C) 在容器上画出按钮,选择按钮,复制,再选择容器,粘贴,并创建控件数组,再重复粘贴
D)在容器上画一个按钮,按下Ctrl同时拖动按钮到容器中的另一个位置.
92.运行时,要向图片框p1中加载”c:\windows\clouds.bmp”图形文件,应该使用语句________.
A) picture1.picture=”c:\windows\clouds.bmp”
B) picture1.picture=loadpicture(c:\windows\clouds.bmp)
C) p1. picture=loadpicture(c:\windows\clouds.bmp)
D) p1. picture=loadpicture(“c:\windows\clouds.bmp”)
93.运行时,要在图片框p1中打印字符串”How are you”,应该使用语句_________.
A) picture1.print “How are you”
B) p1.picture1.loadpicture(“How are you”)
C) p1.print “How are you” D) print “How are you”
94.以下以下选项按钮的说法,正确的是____________.
A) 选项按钮的Enabled属性用于决定该按钮是否被选中
B) 选项按钮的value 属性用于决定该按钮是否被选中
C) 选项按钮的checked 属性用于决定该按钮是否被选中
D) 选项按钮的visible 属性用于决定该按钮是否被选中
95.如果有三个按钮画在窗体上,另有四个按钮画在框架中,则运行时可以同时选定几个选项按钮.
A)1 B)2 C)3 D)4
96.以下关于复选按钮正确的说法是____________.
A)按钮的Enabled属性用于决定该按钮是否被选中
B)按钮的value 属性用于决定该按钮是否被选中
C)按钮的checked 属性用于决定该按钮是否被选中
D)按钮的visible 属性用于决定该按钮是否被选中
97.下列_______程序段能删除列表框list中的所有项.
A)
Private Sub Command1_Click()
For i = 0 To List.listcount - 1
List1.RemoveItem 1
Next I
B)
Private Sub Command1_Click()
For i = 0 To ListCount - 1
List1.RemoveItem 0
Next I
End Sub
C)
Private Sub Command1_Click()
For i = 0 To List1.ListCount
List1.RemoveItem 1
Next i
End Sub
D) Private Sub Command1_Click()
For i = 0 To List1.ListCount - 1
List1.RemoveItem 0
Next i
End Sub
98.要选择列表框list1的第6项,可以使用的语句是____________.
A)Private Sub List1_Click()
List1.Selected(6) = True
Label1.Caption = List1.Text
End Sub
B)Private Sub List1_Click()
List1.Selected(9) = True
Label1.Caption = List1.Text
End Sub
C)Private Sub List1_Click()
List1.Selected = 6
Label1.Caption = List1.Text
End Sub
d) Private Sub List1_Click()
List1.listindex = 6
Label1.Caption = List1.Text
End Sub
99.要清除组合框combo1中的所有内容,可以使用_______语句。
A)Private Sub Command1_Click()
Combo1.cls
End Sub
B)Private Sub Command1_Click()
Combo1.Clear
End Sub
C)Private Sub Command1_Click()
Combo1.delete
End Sub
D)Private Sub Command1_Click()
Combo1.remove
End Sub
100.timer控件的_______属性决定该控件是否对时间的推移作出响应。
A)Enabled B)Visible C)time D)capable
101.下列控件中,__________控件不能改变大小。
A)picture B)Image C)scrollbar D)Timer
102.若要在列表框中显示多列数据,可用列表框的____属性来实现。
A)MulitiSelect B)Index C)columns D) List
103.下列叙述不正确的是__________。
A)驱动器列表框是一种能显示系统中所有有效磁盘驱动器的列表框
B)驱动器列表框的Driver属性只能在运行时被设置
C)从驱动器列表框选择驱动器能自动变更系统当前的工作驱动器
D)要变更系统当前的工作驱动器需要使用chDrv语句
104.改变驱动器列表框的Driver属性将激活_____事件。
A)Change B)Scroll C)KeyDown D)KeyUp
105.下列操作不能向工程中添加窗体的命令是___________.
A) 执行工程菜单中的添加窗体命令 B) 单击工具栏上的添加窗体
C) 右击窗体,在弹出的菜单中选择“添加窗体”命令
D) 右击工程资源管理器,在弹出的菜单中选择“添加命令”,然后在下一级菜单中选择“添加窗体”命令
106.在一个工程中含有多个窗体时,其中的启动窗体是___________。
A)第一个添加的窗体 B)启动VB时建立的窗体
C)最后一个添加的窗体 D)在“工程属性”指定的窗体
107.设有一个工程文件,包含form1、model1、model2等模块。在form1的通用部分声明一个变量Public x as Integer,form1中包含若干事件过程和一个通用过程Getfile,以下关于X的作用域的描述中正确的是____________。
A)在model1中可以使用X B)X的作用范围不包含Form1中的Getfile
C)X的作用范围是Form1 D)X的作用范围是整个工程
108.以下关于VB模块的描述中正确的是_____________。
A)标准模块的所有过程可以在整个工程文件的范围内被调用
B)窗体模块Form1中的过程可以调用其它窗体中被声明为Public的过程
C)如果工程文件中包含Sub main过程,则运行该工程时,一定先执行Sub main过程
D)如果工程文件中不包含Sub main过程,则程序从第一个创建的窗体验生活开始运行
109.关于多重窗体应用程序,以下叙述中不正确的是_____________。
A)对于多重窗体应用程序,可以有多个当前窗体
B)多重窗体应用程序的启动窗体可以在设计时指定
C)多重窗体应用程序中每个窗体作为一个磁盘文件保存,所有窗体、标准模块等作为一个工程文件保存
D)多重窗体应用程序中可以编译生成一个exe文件
110. 设在窗体Form1上加一通用框控件commandialog1,则语句commandialog1.Action=3 的作用是______________.
A) 建立打开文件对话框 B) 建立保存文件对话框 C) 建立颜色对话框 D) 建立字体对话框
111. 设在窗体Form1上加一通用框控件commandialog1,则语句commandialog1.Action=4 的用的功能等价的是______________.
A)commandDialog1.showopen B)commandDialog1.showsave C)commandDialog1.showColor D)commandDialog1.showfont
112. 设在窗体Form1上加一通用框控件commandialog1,将其filter属性和FilterIndex属性设计为:
commanddialog1.Filter=”All Files|*.*|Bitmap Files|*.bmp|JPEG Files|*.jpg|ICO Files|*.ico”
commanddialog1.FilterIndex=2
commanddialog1.showopen
则显示出来的打开文件对话框中,在文件类型框中显示________。
A)All Files B)Bitmap Files C)JPEG Files D)ICO Files
113.设在窗体Form1上加一通用框控件commandialog1,用语句commandialog1.showopen建立打开文件对话框,则从该文件对话框中按“确定”按钮退出时,要得到用户所选择的文件的路径僦文件名时,应该使用commanddialog1的哪个属性__________。
A)DefaultEXT属性 B)DialogTitle属性 C)FileName属性 D)FileTitle属性
114.设在窗体Form1上加一通用框控件commandialog1,要建立保存文件对话框,则应该将commandialog1的Action属性设置为____________.
A)1 B)2 C)3 D)4
115. 设在窗体Form1上加一通用框控件commandialog1,要建立保存文件对话框,使对话框的标题属性为“保存文件”,则应该对commandialog1的哪些个属性进行设置________。
A)DefaultEXT属性 B)DialogTitle属性
C)FileName属性 D)FileTitle属性
116. 在打开文件对话框中,如果单击取消按钮退出对话框,则其Filename属性取值为_______。
A)系统默认的当前路径 B)系统默认的当前盘
C)空字符 D)系统默认的当前文件名
117. 设在窗体Form1上加一通用框控件commandialog1,利用它建立一个打开文件对话框央对话框中选择了“D:\Myfolder\text\text1.txt”,并单击确定按钮退出对话框,则commandialog1的Filetitle属性为_______________。
A)空字符 B)D:\Myfolder\text\
C)text1.text D)D:\Myfolder\text\text1.txt
118. 用于显示弹出式菜单的方法名是_____________。
A)Showpopup B)ShowpopupMenu C)popupMenu D)ShowMenu
119. 用于动态地在菜单项增加菜单项的语句是___________。
A)Load B)Unload C)LoadMenu D)UnloadMenu
120.要把一个名称为mnuFont的菜单项设置为不可见的语句是____________。
A)mnuFont.checked=True B)mnuFont.Enabled=True
C)mnuFont.Visible=False D)mnuFont.Caption=False
121.以下不是菜单编辑窗口的组成部分的是___________。
A)菜单项显示区 B)菜单属性设置区 C)编辑区 D)菜单代码编辑
122.编写如下事件过程:
Private Sub Form_KeyPress(KeyAscii As Integer)
Print Chr(KeyAscii);
Print (KeyAscii)
End Sub
运行程序时按下“a”键,则输出结果为__________。
A)A 65 B)a 97 C)65 A D)65 a
123.窗体上画一个命令按钮和一个文本框,并把窗体的KeyPreview属设置为true,编写如下事件代码:
Dim all As String
Private Sub Command1_Click()
Text1.Text = UCase(all)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
all = all + Chr(KeyAscii)
End Sub
程序运行后,把焦点放入text1,输入“Hello”,单击命令按钮,则文本框显示为__________。
A) HELLO B) Hello C)不显示任何信息 D)出错
124.如下事件过程运行时按下“E”键,输出的结果是____________。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode);
Print KeyCode
End Sub
A)E 69 B)e 69 C) 69 E D)69 e
125.将窗体的keypreview设置为true,运行如下事件过程 按下“a”,则输出为________。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode);
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode + 32)
End Sub
A)Aa B) AA C)aa D)aA
126.运行如下程序时按下“A”键时,输出为______________。
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
KeyCode = KeyCode + 32
Print UCase(Chr(KeyCode))
End Sub
A)A B)65 C)a D) 97
127.运行如下程序时,为了在窗体输出“BBBB”,则应该执行的操作为_________。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 3 And Button = 2 Then
Print "BBBB"
End If
End Sub
A)同时按下鼠标左键和shift键 B)同时按下鼠标右键和shift键
C)同时按下Ctrl、Alt和鼠标左键 D)同时按下Ctrl、Alt和鼠标右键
128.运行如下程序,当鼠村在窗体左击三次,右击一次,再单击按钮,则输出为__________.
Dim sum As Integer
Private Sub Command1_Click()
Print sum
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
sum = sum + 1
ElseIf Button = 2 Then
sum = sum - 1
End If
End Sub
A)1 B)-1 C)2 D)4
129.运行如下程序,当同时按下shift
键和Alt键并用鼠标左击时,输出“HELLO”,请造反程序中的shift和Button的值__________。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 5 And Button = 1 Then
Print "HELLO"
End If
End Sub
A)1 3 B)2 1 C)3 2 D)5 1
130.在某个程序中,想要把鼠标光标变为沙漏形状,mousepointer的值为__________。
A)1 B)2 C)14 D)11
131.在VB中按文件的访问方式不同,可以将文件分为____________。
A)顺序文件、随机文件和二进制文件
B)文本文件和数据文件
C)数据文件和可执行文件
D)ADCII文件和二进制文件
132.执行语句Open “c:\stuDatu.dat” for Input as #1后,系统____________。A)将C盘当前文件夹下名为stuDatu.dat的文件读入内存
B)在C盘当前文件夹下建立名为stuDatu.dat的文件
C)将内存数据放在C盘前文件夹下名为stuDatu.dat的文件中
D)将鞭个磁盘文件的内容写入C盘前文件夹下名为stuDatu.dat的文件中
133.如果在C盘当前文件夹下建立了名为stuDatu.dat的文件,那么执行语句Open Open “c:\stuDatu.dat “for Append as #1后将____________。
A)删除文件中的原有内容 B)保留文件原有内容,在文件尾添加新内容
C)保留文件原有内容,在文件头添加新内容 D)以上均不对
134.随机文件用__________语句写数据,使用_________读数据。
A)input B)write# C)put# D)input# E)Get
135.要读出顺序文件temp.txt的内容,下列打开方式中__________是正确的。
A)open “temp.txt” for append As #1
B)open “temp.txt” for random As #1
C)open “temp.txt” for output As #1
D)open “temp.txt” for input As #1
136.下列_________语句或函数,不能读出顺序文件的内容
A)Get # B)Line Input# C)Input # D)Input()
137.下列_________语句或函数,可以读出随机文件的数据。
A)input # 文件句柄号,变量名列表 B)write # 文件句柄号,表达式列表
C)Put # 文件句柄号,变量名 D)get# 文件句柄号,变量名
138.下列叙述中错误的是__________。
A)顺序打开文件后,文件中的数据即可以读也可以写
B)顺序打开文件后,文件中的数据只能读或只能写
C)随机打开文件后,文件中的数据即可以读也可以写
D)顺序文件和随机文件的打开都使用open语句
139.在随机文件中,每条记录必须_______。
A)内容不一样 B)长度不一样 C)长度相等 D)排序
140.下列命令中________可以实现对顺序文件的写操作。
A)Print B)Line Input C)Input D)Put
141.默认的坐标系统ScaleMode的属性_________?ScaleMode的自定义属性值为_________?
A)0,1 B)1,0 C)1,3 D)0,3
142.图形容器在运行时才能设置和访问的两个专用属是______________.
A) ScaleMode和DrawMode B) X和 Y
C) CurrentX和CurrentY D) DrawStyle和DrawMode
143.要在Picture1对象中绘制一个红色的实心矩形,可以使用下面的_________语句,(x1,y1)和(x2,y2)为矩形的对角坐标。
A)Line((x1,y1)-(x2,y2)
B) picture1. Line((x1,y1)-(x2,y2),RGB(255),BF
C)picture1. Line((x1,y1)-(x2,y2),RGB(255,255,255),B,F
D)picture1. Line((x1,y1)-(x2,y2),RGB(255,255,255),B[F]
144.执行下列语句:Circle(100,100),50.QBColor(04),-3.14/6,-2*3.14/3绘制的图形为________。
A)圆 B)圆弧 C)椭圆 D)扇形
145.要在Picture1对象中绘制一个红色的实心椭圆,应该在Circle语句前先执行下面_________语句。
A)FillColor=RGB(255,0,0):FillStyle=0
B)FillColor=RGB(255,0,0):FillStyle=1
C)FillStyle=1 :FillColor=RGB(255,0,0)
D)FillStyle=0: FillColor=RGB(255,0,0)
146.坐标度量单位可以通过___________来改变。
A)DrawStyle属性 B)DrawWidth属性
C)ScaleWidth属性 D)ScaleMode属性
147.以下属性和方法中__________可以重新定义坐标。
A)DrawStyle属性 B)DrawWidth属性
C)Scale方法 D)ScaleMode属性
148.当使用Line方法画直线后,当前坐标在___________。
A)(0,0) B)直线起点 C)直线终点 D)容器的中心
149.当窗体的Autoredraw属性菜用默认值时,若在窗体载入时使用绘图方法绘制图形,则应该放在___________。
A)paint事件B)Load事件 C)Initialize事件 D)Click事件
150.当对DrawWidth设置后,将影响___________。
A)Line 、Circle、 Pset方法 B)Line、 Shape方法
C) Line 、Circle、 Point方法 D) Line 、Circle、 Pset方法和 line、 Shape控件
二、填空题
1.假设某一过程如下:
Private Sub cmd1_Click()
Form1.Caption=”VB示例”
End Sub
则响应该过程的对象名是cmd1,事件名是Click(单击)。
2.假设一个文本框的Name属性为Text1,为了在该文本框中显示“Hello”,所使用的语句为Text1.text=“Hello”。
3.一个工程文件包括多种类型的文件,其中,扩展名为.VBP文件表示工程文件;扩展名为.Frm的文件表示窗体文件;扩展名为.Bas的文件表示标准模块文件;包含ActiveX的文件的扩展名为.OCX。
4.闰年的条件是:年号(Y)能被4整除,但不能被100整除;年号能被400整除,表示该条件的布尔表达式是y mod 4=0 and y mod 100<>0 or y mod 400=0。
5.写出一元二次方程有实根的布尔表达式为a<>0 and b*b-4*a*c>=0。
6.表示条件:变量x能被5整除的偶数的布尔表达式是x mod 5=0 and x mod 2=0。
7.写出下面Format 函数的值:
Format (5459.4,”##,##0.00):5,459.40
Format(334.9,” #### “): 335
Format(0.6725,”0.00”):0.67
Format(0.6725,”#.00”):.67
Format(“HELLO”,”<”):hello
8.交换两个变量的值显示在立即窗口中。
Private Sub Form_Load()
Dim a As Double, b As Double, c As Double
a = Val(InputBox("输入a"))
b = Val(InputBox("输入b"))
t = a: a = b: b = t
Debug.Print a
Debug.Print b
End Sub
9.输出实数的平方及平方根,保留3位小数,数据之间有间隔。
Private Sub Form_Click()
Dim a As Single
a = Abs(InputBox("输入a"))
Print Format(a * a, "0.000"); Format(Sqr(a), " 0.000")
Print x + y
End Sub
10.以下程序用于判断输入的年份是否是闰年.
Private Sub Command1_Click()
y = InputBox("请输入年份")
If y Mod 400 = 0 Or y Mod 4 = 0 And y Mod 100 <> 0 Then
Print y & "是闰年"
Else
Print y & "不是闰年"
End If
End Sub
11.下面的程序用于求输入的三个数中的最大数和最小数.
Private Sub Command1_Click()
a = InputBox("请输入第一个数:")
b = InputBox("请输入第二个数:")
c = InputBox("请输入第三个数:")
Max = a
Min = a
If b > Max Then Max = b
If b < Min Then Min = b
If Max < c Then Max = c
If Min > c Then Min = c
Print "max="; Max
Print "min="; Min
End Sub
12.以下程序判断从文本框text1中输入的数据,如果该数据满足如下条件:除3余2,除5余3,除7余4,则输出之.否则将焦点定位在文本框中,选中其中的文本.
Private Sub Command1_Click()
x = Val(Text1.Text)
If x Mod 3 = 2 And x Mod 5 = 3 And x Mod 7 = 4 Then
Print x
Else
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End If
End Sub
13.计算下面的函数.
Private Sub Command1_Click()
x = Val(Text1.Text)
Select Case x
Case Is > 200, Is < -100
Print "x<-100 or x>200"
Case -100 To 0
y = 100 - x
Case 0 To 100
y = 100 + x
Case 100 To 200
y = 400
End Select
Text1.Text = y
End Sub
14.搬砖问题:36块砖,男的搬4块,2个小孩抬一块,女的搬3块,要求一次搬完,需要多少人。
Private Sub Command1_Click()
For male = 1 To 9
For female = 1 To 12
For boy = 2 To 72 Step 2
If boy + female + male = 36 And male * 4 + female * 3 + boy * 1 / 2 = 36 Then
Print male, female, boy
End If
Next boy
Next female
Next male
End Sub
15.以下程序用于计算N=1+(1+3)+(1+3+5)+ (1+3+5+…+39)
Private Sub Command1_Click()
t = 0
m = 1
Sum = 0
Do
t = t + m
Sum = Sum + t
m = m + 2
Loop While m <= 39
Print "sum="; Sum
End Sub
16.以下程序求12-23+32+…+(n-1)2-n2
Private Sub Command1_Click()
n = Val(InputBox("请输入大于0的偶数N:"))
s = 0
i = 1
c = -10
Do
c = -c: s = s + i * c + Sgn(c) * 2
i = i + 1
Loop While i <= n
Print "s="; s
End Sub
17.以下程序用于在文本框text1中输入3——100之间的全部素数。
Private Sub Command1_Click()
Text1.Text = ""
For n = 3 To 100
k = Int(Sqr(n))
i = 2
flag = 0
Do While i <= k And flag = 0
If n Mod i = 0 Then flag = 1 Else i = i + 1
Loop
If flag = 0 Then
Text1.Text = Text1.Text & Str(n) & Chr(13) & Chr(10)
End If
Next n
End Sub
18.以下程序用于输出20个在开区间(10,87)中的随机整数R,每行5个数。
Private Sub Command1_Click()
For i = 1 To 20
r = Int(10 + Rnd * 77)
Print r;
If i Mod 5 = 0 Then Print
Next i
End Sub
19.以下程序是把100个元素:A按每行10个数的形式赋给数组B,即a(1)——a(10)依次赋给B(1,1)——B(1,10),……
Private Sub Command1_Click()
Dim a(1 To 100) As Integer, b(1 To 10, 1 To 10) As Integer
For i = 1 To 100
a(i) = Int(Rnd * 5 + 1)
Next i
For i = 1 To 10
For j = 1 To 10
b(i, j) = a((i - 1) * 10 + j)
Next j
Print
Next i
For i = 1 To 100
Print a(i);
If i Mod 10 = 0 Then Print
Next i
Print
For i = 1 To 10
For j = 1 To 10
Print b(i, j);
Next j
Print
Next i
Print
End Sub
20.以下程序是将整型动态数组X声明为具有20个元素的数组,并给所有元素赋值为1。
Dim x() As Integer
Private Sub Command1_Click()
ReDim x(1 To 20)
For i = 1 To 20
x(i) = 1
Print x(i)
Next i
21.以下程序产生100个1——4之间的随机整数,并进行统计。数组元素s(i)(i=1,2,3,4)表示等于i的随机整数的个数。
Private Sub Command1_Click()
Dim s(4) As Integer
Randomize
For i = 1 To 100
x = Int(Rnd * 4 + 1)
s(x) = s(x) + 1
Next i
For i = 1 To 4
Print "s("; i; ")="; s(i)
Next i
End Sub
End Sub
22.以下程序产生20个(0,100)之间的随机整数,打印大于50的数,并求这些数的和。
Private Sub Command1_Click()
Dim arr(1 To 20)
For i = 1 To 20
arr(i) = Int(Rnd * 100)
Text1.Text = Text1.Text & arr(i) & Chr(13) & Chr(10)
Next i
Sum = 0
For Each x In arr
If x > 50 Then
Print Tab(20); x
Sum = Sum + x
End If
Next x
Print Tab(20); "sum="; Sum
End Sub
23.窗体上有一文本框和具有10个标签的标签数组,以下程序实现单击任一标签时将标签的内容添加文本框之后。
Private Sub Label1_Click(Index As Integer)
Text1.Text = Text1.Text + Label1(Index).Caption
End Sub
24.写输出结果。
Private Sub Command1_Click()
Dim s1(5) As Integer, s2(5) As Integer, s3(5) As Integer
N = 4
For i = 1 To N
s1(i) = i
l = N + 1 - i
s2(i) = l
Next i
s3(5) = 0
For k = 1 To N
s3(k) = s1(k) * s2(k)
s3(5) = s3(5) + s3(k)
Next k
Print s1(3); s1(5); s1(2)
Print s2(4); s3(1); s3(5)
End Sub
运行结果为:
3 0 2
1 4 20
25.写输出结果。
Private Sub Command1_Click()
Dim a(3, 4)
For i = 1 To 3
For j = 1 To 4
a(i, j) = (i - 1) * 2 + j
Print a(i, j);
Next j
Print
Next i
End Sub
运行结果为:
1 2 3 4
3 4 5 6
5 6 7 8
26.写输出结果。
Private Sub Command1_Click()
Dim a(5)
For i = 0 To 4
a(i) = i + 1
m = i + 1
If m = 3 Then a(m - 1) = a(i - 2) Else a(m) = a(i)
If i = 3 Then a(i + 1) = a(m - 4)
a(4) = i
Print a(i)
Next i
End Sub
运行结果为:
1
2
1
4
4
27.写输出结果。
Private Sub Command1_Click()
Dim a(5, 5), s(5)
For i = 1 To 5
s(i) = 0
For j = 1 To 5
a(i, j) = i + j
s(i) = s(i) + a(i, j)
Next j
Next i
For Each x In s
Print x;
Next x
End Sub
运行结果为:
20 25 30 35 40
28.写输出结果。
Dim a() As Integer
Private Sub Command1_Click()
ReDim a(1 To 5)
For i = 1 To 5
a(i) = i
Next i
ReDim a(1 To 10)
For i = 6 To 10
a(i) = 2 * i
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
运行结果为:
0 0 0 0 0 12 14 16 18 20
29.以下程序求二维数组对角线元素之和。
Private Sub Command1_Click()
Dim data(5, 5) As Integer
Dim i%, j%
For i = 1 To 5
For j = 1 To 5
data(i, j) = 1
Next j, i
For i = 1 To 5
For j = 1 To 5
If i = j Or i + j = 5 Then data(0, 0) = data(0, 0) + data(i, j)
Next j, i
Print data(0, 0)
End Sub
30.输入10个整数,找出最大与最小数,把这两个数对调,输出对调的结果。
Private Sub Command1_Click()
Dim d(10) As Integer
Dim i%, max%, min%, temp%
Randomize Timer
For i = 1 To 10
d(i) = Rnd * 100
Next i
For i = 1 To 10
Print d(i);
Next i
Print
max = 1: min = max
For i = 2 To 10
If d(i) > d(max) Then max = i
If d(i) < d(min) Then min = i
Next i
temp = d(max)
d(max) = d(min)
d(min) = temp
For i = 1 To 10
Print d(i);
Next i
End Sub
31.程序的输出结果是_20 10 10 20__。
Private Sub suba(x As Integer, y As Integer)
Dim t As Integer
t = x: x = y: y = t
End Sub
Private Sub Form_Click()
Dim a As Integer, b As Integer
a = 10: b = 20
Call suba(a, b)
Print a; b;
Call suba(b, a)
Print a; b
End Sub
32.程序的输出结果__15_。
Private Function funa(x As Integer) As Integer
Static s As Integer
s = s + x
funa = funb(s)
End Function
Function funb(y As Integer) As Integer
Static sum As Integer
sum = sum + y
funb = sum
End Function
Private Sub Form_Click()
Dim acc As Integer, i As Integer
acc = 0
For i = 1 To 3
acc = acc + funa(i)
Next i
Print acc
End Sub
33.程序的输出结果__10 110_。
Private Sub sub1(ByVal a As Integer, b As Integer)
a = a + b: b = b + a
End Sub
Private Sub Form_Click()
Dim x As Integer, y As Integer
x = 10: y = 20
Call sub1(x, y)
sub1 x, y
Print x; y
End Sub
34.程序的输出结果__3 2___.
Private Sub mysub(pa1 As String, a As Integer, b As Integer)
Dim str As String, n As Integer, i As Integer
n = Len(Trim(pa1))
For i = 1 To n
If Mid(pa1, i, 1) >= "A" And Mid(pa1, i, 1) <= "Z" Then
a = a + 1
ElseIf Mid(pa1, i, 1) >= "0" And Mid(pa1, i, 1) <= "9" Then
b = b + 1
End If
Next i
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = 0: y = 0
Call mysub(Text1.Text, x, y)
Print x; y
End Sub
注意:运行程序时在文本框中输入”There are 12 students studing VB”.
35.程序的输出结果为__1 4 9 16 25_____.
Private Sub SUB1(ARR() As Integer, Optional ByVal N As Integer = 2)
For I = 1 To 5
ARR(I) = I ^ N
Next I
End Sub
Private Sub Form_Click()
Dim A(1 To 5) As Integer, I As Integer
Call SUB1(A(), 3)
Call SUB1(A())
For I = 1 To 5
Print A(I);
Next I
End Sub
36.以下程序当三次单击命令按钮时输出结果_25 50 75____.去掉static时, 三次单击命令按钮时输出结果_25 25 25_____.
Sub mysub()
For i = 1 To 10 Step 2
s = s + i
Next i
Print s;
End Sub
Private Sub Command1_Click()
Call mysub
End Sub
37.对于以下程序代码,程序运行时第一次单击命令按钮时文本框text1和text2中的内容是_10 10__;第二次单击命令按钮时文本框text1和text2中的内容__58 58___.
Dim y As Integer
Private Function firstfunc(x As Integer) As Integer
x = x + y: y = x + y
firstfunc = x + y
End Function
Private Function secondfunc(x As Integer, y As Integer) As Integer
secondfunc = 2 * x + y
End Function
Private Sub Command1_Click()
Dim x As Integer
x = 2
Text1.Text = secondfunc(firstfunc(x), y)
Text2.Text = firstfunc(x)
End Sub
38.在窗体上画两个组合框combo1和combo2.两个标签label1和label2.程序运行时,在某个组合框中选一个项目,然后把所选的项目在其下面的标签中显示出来,填空.
Private Sub Combo1_Click()
Call showitem(Combo1, Label1)
End Sub
Private Sub Combo2_Click()
Call showitem(Combo2, Label2)
End Sub
Public Sub showitem(tmpcombo As ComboBox, tmplabel As Label)
tmplabel.Caption = tmpcombo.Text
End Sub
39.设某列表框共有10项,按要求补充程序。
(1)按下命令按钮时将第八项内容显示在窗体上。
Private Sub Command1_Click()
List1.Selected(8) = True
Print List1.Text
End Sub
(2)单击列表框某一项时,立即把该项打印在窗体上。Private Sub List1_Click()
Print List1.Text
End Sub
(3)删除第1、3、5、7、9项。
Private Sub Command2_Click()
For i = 1 To 9 Step 2
List1.RemoveItem (10 - i)
Next i
End Sub
(4)在列表框的每项后插入一项。
Private Sub Command3_Click()
For i = 1 To 10
x = InputBox("输入插入的第" & i & "项内容")
List1.AddItem x, 2 * i
Next i
End Sub
40.设在窗体上有一个列表框list1,单击窗体用输入框输入数据。如果在输入框输入了一定内容并按了确定按钮后,则按如下情况处理:
(1) 如果输入的内容在字母“a”到“z”之间,且列表框中没有该字母,则添加之;
(2) 如果输入的内容在字母“a”到“z”之间,且列表框中有该字母,则显示消息“字母已经存在”
(3) 如果输入的内容不在字母“a”到“z”之间,则显示消息:输入的内容不在范围内
(4) 如果在输入框中按了“取消”按钮,则停止输入。
Private Sub Form_Click()
Do While True
exist = 0
x = Trim(InputBox("请输入a到z之间的一个字母", ""))
If x >= "a" And x <= "z" Then
For i = 0 To List1.ListCount - 1
If List1.List(i) = x Then
MsgBox "此字母已经存在"
exist = 1
Exit For
End If
Next i
If exist = 0 Then List1.AddItem x
Else
If x = "" Then
Exit Sub
End
Else
MsgBox "输入的数据不在指定数据范围内"
End If
End If
Loop
End Sub
41.设在窗体放置两个定时器Timer1和Timer2,下面程序每隔2分钟向窗体上输出系统时间,并打印(0,1)之间的随机数。
Private Sub Form_Load()
Show
Timer1.Interval = 60000
Timer2.Interval = 60000
'1秒=1000毫秒,于是60秒=60000毫秒
Timer1.Enabled = True
Timer2.Enabled = False
End Sub
Private Sub Timer1_Timer()
Print Time(), Rnd
Timer2.Enabled = True
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
Print Time(), Rnd
Timer1.Enabled = True
Timer2.Enabled = False
End Sub
42.窗体上放置了一个滚动条Hscroll1和一个标签label1,要求标签内容反映滚动条的值。
Private Sub HScroll1_Change()
Label1.Caption = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Label1.Caption = HScroll1.Value
End Sub
43.若要加载一个新窗体,可以使用load语句实现;若要卸载一个窗体,可以unload语句实现。
44.若要显示一个窗体,可以使用show方法;若要隐藏一个窗体,可以使用hide方法清除一个窗体上的内容,使用cls方法实现。
45.能够在整个工程文件中使用的全局变量应该在标准模块中定义。工程文件的扩展名是VBP;标准模块文件的扩展名是bas;窗体文件的扩展名是frm;若干工程构成一个工程组文件为 vbg.
46.VB应用程序主要由窗体、标准、类模块等三种模块组成。
47.启动窗体在工程属性对话框中指定;为了打开此对话框,应该执行工程菜单中的工程N属性命令。
48.全局变量必须在标准模块中定义,所使用的语句为Public。
49.Do events语句的作用是在程序执行时,把控制权交回给环境。
50.在VB中,其对话框主要分为三类,它们分别是预定义、自定义、通用对话框。
51.设有通用对话框控件Commandialoig1,则语句Commandialoig1.Action=1的功能是打开文件,与语句功能完全等价的另外一个语句是Commandialoig1.showOpen
51.能得到颜色对话框中用户所选择的颜色的属性是Color。
52.要得到字体对话框中用户所选择的字体名字、大小、颜色的属性分别是Fontname、FontSize、FontColor。
53.要建立打开文件对话框、保存文件对话框、颜色对话框和字体对话框,应该分别使用对话框控件的showopen、showsave、showColor、showFont方法。54.菜单分为下拉、弹出菜单,菜单总与窗体相关联,设计菜单需要在菜单编辑器中进行。
55.菜单控件只包含一个单击事件。
56.要在菜单中建立分隔符应该在菜单编辑器的标题选项中输入一个“_”符号。57.执行Keypress事件过程时,KeyAscii表示键的ASCII值。
58.把窗体的keypreview设置为true,编写如下程序。
Private Sub Form_KeyPress(KeyAscii As Integer)
Print KeyAscii
End Sub
运行时按下“a”键,输出为97。
59.在窗体上画一文本框,运行如下事件过程:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim cha As String
cha = Chr(KeyAscii)
KeyAscii = Asc(UCase(cha))
Text1.Text = String(6, KeyAscii)
End Sub
输入“a”,则文本框中显示的内容为AAAAAA
60.以下程序运行后,在text2文本框中输入“efghi,则text1中的内容为efghE.
Private Sub Form_Load()
Show
Text1.Text = ""
Text2.Text = "'"
Text1.SetFocus
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Text2.Text = Text1.Text + Chr(KeyCode - 4)
End Sub
61.把窗体的keypreview设置为true,编写如下程序。当按下“a ”时,输出为:Ee,补充下列程序。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode + 4)
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode + 32 + 4)
End Sub
62.编写程序,单击鼠标左键时开始画线,右击停止。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static btndrawnow As Boolean
If Button = 1 and btndraw=true Then
Form1.Line -(X, Y)
End If
If Button = 2 Then
btndrawnow = False
ElseIf Button = 1 and btndraw=false Then
Form1.CurrentX = X
Form1.CurrentY = Y
btndrawnow = True
End If
End Sub
63.编写程序,单击鼠标左键时开始画线,松开停止。
Private draw As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
CurrentX = X
CurrentY = Y
draw = True
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Line -(X, Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
draw = False
End Sub
64.编写程序,当鼠标移动至按钮上时,变为十字线,否则为默认形状。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MousePointer = Default
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MousePointer = 2
End Sub
65.编写程序,当拖动图片到frame时,label显示“please release if!”,放开鼠标时,图片消失,label显示“Icon received”.
Private Sub Form_Load()
Picture1.DragIcon = LoadPicture("d:\tray1.ico")
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
Picture1.DragMode = 1
Label1.Caption = "接收了图片"
End Sub
Private Sub Frame1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
If TypeOf Source Is Picture Then
Label1.Caption = "请松开它!"
End If
End Sub
66.对文件进行操作时,应该首先打开文件,在VB中,打开文件所使用的语句为Open,在该语句中,可以设置的输入、输出方式包括Input、Output、Append、和Binary。如果省略,则为随机方式。对文件的存取类型可以分为顺序、随机和二进制3种。
67.顺序文件可以通过print语句或write语句把缓冲区的内容写入磁盘,而读操作可以通过input、line Input或input()语句实现。对于随机文件的读写可分别通过get和put语句实现。
68.获得文件长度可以用FileLength函数,要获得文件的当前读写位置可以用Loc()函数,用于判断当前文件位置是否到达文件结尾时,应该使用EOF()函数。
69.在C盘当前文件还将有下建立一个名为Data.txt的顺序文件。要求用文本输入框架输入单词。每次按下回车时写入一条记录。并清除文本框中的内容,直到输入end时为止。
Private Sub Form_Click()
Open "d:\data.txt" For Output As #3
Text1.Text = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Text1.Text = "END" Then
Close #3
End
Else
Print #3, Text1.Text
Text1.Text = ""
End If
End If
70.设
Picture1.scaleleft=200,
Picture1.scaleltop=250,
Picture1.scalewidth=500, Picture1.scaleheight=-400,则Picture1的右下角坐标为(300,-150)
71.窗体Form1在左上角的坐标为(-200,250),右下角坐标为(300,-150),则X轴正方向向右,Y轴正方向向上。
72.当Scale方法不带参数时,则采用缇坐标系,相当于ScaleMode=1。
三.程序设计题
1.建立窗体及控件,在文本框text1中输入若干字符,其它文本框用于输出各类字符的个数。
Private Sub Command1_Click()
Text2.Text = Len(Text1.Text)
For i = 1 To Len(Text1.Text)
ch = Mid(Text1.Text, i, 1)
If ch >= "A" And ch <= "Z" Or ch >= "a" And ch <= "z" Then
alpha = alpha + 1
ElseIf ch >= "0" And ch <= "9" Then Number = Number + 1
Else
other = other + 1
End If
Next i
Text2.Text = Number
Text3.Text = alpha
Text4.Text = other
End Sub
2.形成数列1,2,3,5,16,231,…,该数列的规律是从第3项始每一项是两相邻两项的平方差。
Private Sub Command1_Click()
Dim x, y As Double
x = 1
y = 2
For i = 1 To 10
Print x, y
x = (y + x) * (y - x)
y = (x + y) * (x - y)
Next i
End Sub
3.为比赛打分,在去掉一个最高分和一个最低分后N-2个分数的平均分。
Private Sub Command1_Click()
Dim n As Integer, x As Integer
n = InputBox("请输入N", "输入提示")
x = InputBox("请输入", "输入提示")
Max = x: Min = x:Sum = x
For i = 1 To n - 1
x = InputBox("请输入", "输入提示")
If x > Max Then Max = x
If x < Min Then Min = x
Sum = Sum + x
Next i
Sum = Sum - Max - Min
aver = Sum / (n - 2)
Print "平均分=", aver, Sum
End Sub
4.将一个具有10个元素的数组的前5个元素与后5个元素对换。
Option Base 1
Private Sub Form_Click()
Dim a(10) As Integer
For i = 1 To 10
a(i) = InputBox("请输入", "输入提示")
Next i
For i = 1 To 10
Print a(i);
Next i
print
Print "交换顺序后的数组为:"
For i = 1 To 5
t = a(i)
a(i) = a(11 - i)
a(11 - i) = t
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
5.输出杨辉三角形。
Private Sub Form_Click()
Dim a(10, 10) As Integer
For i = 1 To 10
a(i, 1) = 1: a(i, i) = 1
Next i
For i = 2 To 10
For j = 2 To i - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next j, i
For i = 1 To 10
For j = 1 To i
Print Tab(5 * j); a(i, j);
Next j
Print
Next i
End Sub
6.产生1-100之间的随机整数。
Private Sub Form_Click()
rndf (100)
End Sub
Public Function rndf(n As Integer)
For i = 1 To n
x = Int(100 * Rnd)
If i Mod 10 = 0 Then Print Else Print x;
Next i
End Function
7.八进制数与十进制数的相互转换。
Option Base 1
Private Sub Command1_Click()
Dim x, y As Integer
Dim a(1 To 10)
x = Val(Text1.Text)
i = 1
Do While x >= 8
y = x / 8
a(i) = x Mod 8
i = i + 1
x = y
Loop
a(i) = x
For k = i To 1 Step -1
Text2.Text = Text2.Text + Str(a(k))
Next k
End Sub
8.在文本框text1中输入多个英文单词,单击转换按钮,将text1中的内容作如下转换:遇到“.”时,将每句的开头大写,在文本框text2中重新显示。
Private Sub Command1_Click()
converse (Text1.Text)
End Sub
Public Sub converse(str As String)
Dim u As Boolean
u = True
l = Len(str)
For i = 1 To l
If u Then
Text2.Text = Text2.Text + UCase(Mid(str, i, 1))
Else
Text2.Text = Text2.Text + Mid(str, i, 1)
End If
If Mid(str, i, 1) <> "." Or Mid(str, i, 1) <> Chr$(10) Then
u = False
End If
If Mid(str, i, 1) = "." Or Mid(str, i, 1) = Chr$(10) Then
u = True
End If
Next i
End Sub
9.输出Fibonacci数列。
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 20
a = fibo(i)
Print a,
If i Mod 2 = 0 Then Print
Next i
End Sub
Public Function fibo(n As Integer) As Integer
If n = 1 Or n = 2 Then
fibo = 1
Else
If n > 2 Then
fibo = fibo(n - 1) + fibo(n - 2)
End If
End If
End Function
10.设计一个包含form1和form2的两个窗体的应用程序,form1为启动窗体,单击form1隐藏之,显示form2;单击form2时,隐藏之,显示form1。双击任何一个窗体时,程序结束。
Private Sub Form_Click()
Form2.Hide
Form1.Show
End Sub
Private Sub Form_Click()
Form1.Hide
Form2.Show
End Sub
11.窗体上有一个名为CD1的通用对话框控件,一个名为text1的文本框,两个命令按钮,标题分别为“打开文件”、“保存文件”;当单击打开文件文件按钮时,把选中的文件读入text1文本框中,单击保存文件按时,把text1中的内容写入选定的文件名。
Private Sub C1_Click()
CD1.Filter = "*.txt|*.txt"
CD1.InitDir = "c:\my documents\"
CD1.CancelError = False
CD1.FilterIndex = 1
CD1.ShowOpen
Open CD1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, s
Text1.Text = Text1.Text + s
Loop
Close #1
End Sub
Private Sub C2_Click()
CD1.InitDir = "c:\my documents\"
CD1.Filter = "*.txt|*.txt"
CD1.CancelError = False
CD1.FilterIndex = 1
CD1.ShowSave
Open CD1.FileName For Output As #1
Print #1, Text1.Text
Close #1
End Sub
12.建立一下下拉式菜单,顶级为“文本框颜色”,名称为colors,两个子菜单项分别为“文本颜色”和背景颜色“”,名称分别为textcolor和backcolor。编写事件过程完成相应的功能。
Private Sub backcolor_Click()
Cd1.ShowColor
Text1.backcolor = Cd1.Color
End Sub
Private Sub textcolor_Click()
Cd1.ShowColor
Text1.ForeColor = Cd1.Color
End Sub
13.建立一个弹出式菜单,菜单项目为“复制”和“粘贴”,编写事件过程完成相应功能。
Private Sub copy_Click()
Clipboard.SetText (Text1.SelText)
End Sub
Private Sub paste_Click()
Text1.SelText = Clipboard.GetText
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu copypaste
End If
End Sub
14.在窗体建立两个文本框,程序运行后,如果在第一个文本框输入A、B、C、D或者是a、b、c、d,则在第二个文本框显示EFDH。
Private Sub Form_Load()
Show
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Text2.Text = Text2.Text + Chr(KeyCode+4)
End Sub
15.将调用随机函数rnd得到的若干个数据存入到rnd,dat中,然后找开此文件,将数据从小到大排序,存入到seq.dat文件中。
Sub main()
Randomize (100)
Form1.Show
End Sub
Private Sub Command1_Click()
Open "d:\rnd.dat" For Output As #1
For i = 1 To 100
a = Int(Rnd(100) * 100)
Print #1, a
Next i
Close #1
End Sub
Private Sub Command2_Click()
Dim a(1 To 100) As Integer
Open "d:\rnd.dat" For Input As #1
For i = 1 To 100
Input #1, a(i)
Next i
Close #1
Open "d:\seq.dat" For Output As #2
For i = 1 To 99
For j = i + 1 To 100
If a(i) > a(j) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Next i
For i = 1 To 100
Print #2, a(i)
Next i
Close #2
End Sub
Private Sub Form_Load()
End Sub
16.在窗体上的文本框输入内容,单击保存按钮时,首先检查是否为空,如果不空,则将文本框中的所有字母转为大写保存到Filestring.txt文件中。
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox ("文本框中必须有内容")
Text1.SetFocus
Else
Open "d:\filesstring.txt" For Output As #1
Text1.Text = UCase(Text1.Text)
Print #1, Text1.Text
End If
End Sub
17.在窗体上添加文件系统控件,包括驱动器列表框、目录列表框和文件列表框,以及“保存”、“显示”和“退出”命令按钮,当单击保存按钮时,将文件列表框当前目录下的所有文件名保存到一个磁盘文件Filename.txt中,;当单击显示按钮时,将所保存的文件内容显示到窗体的列表框控件中。
Private Sub Command1_Click()
Open "d:\filename.txt" For Append As #1
For i = 1 To File1.ListCount - 1
Text1.Text = Text1.Text & File1.List(i) & vbCrLf
Next i
Print #1, Text1.Text
Close #1
End Sub
Private Sub Command2_Click()
Dim str As String
Open "d:\filename.txt" For Input As #1
Do While Not EOF(1)
Input #1, str
List1.AddItem str
Loop
Close #1
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
File1.Pattern = "*.*"
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
18.穷举法举例(求由1角、2角、5角组成1元组合数及组合情况)。
Private Sub Form_Click()
Dim n As Integer
For x = 0 To 10
For y = 0 To 10
For z = 0 To 10
If x + 2 * y + 5 * z = 10 Then
Print x; y; z
n = n + 1
End If
Next z
Next y
Next x
Print "n="; n
End Sub
19.猴子吃桃问题。
Private Sub Form_Click()
x = 1
For i = 9 To 1 Step -1
x = 2 * x + 2
Next i
Print x
End Sub
20.求水仙花数。
Private Sub Command1_Click()
Dim p As Integer
List1.Clear
For n = 100 To 999
a = Int(n / 100)
b = Int((n - a * 100) / 10)
c = n - a * 100 - b * 10
p = a * a * a + b * b * b + c * c * c
If p = n Then List1.AddItem p
Next n
End Sub
21.求Fibonacci数列的前40项。
Private Sub Form_Click()
Dim f1 As Long
Dim f2 As Long
n = 1
f1 = 1
f2 = 1
Do While n <= 20
Print f1, f2,
f1 = f1 + f2
f2 = f2 + f1
If n Mod 2 = 0 Then Print
n = n + 1
Loop
End Sub
22.求素数。
Private Sub Form_Click()
Dim n, i, k, j, flag As Integer
j = 0
For n = 3 To 200 Step 2
k = Int(Sqr(n))
flag = 1
For i = 2 To k
If n Mod i = 0 Then flag = 0
Next i
If flag = 1 Then Print n;: j = j + 1
If j Mod 10 = 0 Then Print
Next n
End Sub