VB程序设计练习题
第1题:每当一个窗体成为活动窗口时将触发Show事件。
参考答案:错
第2题:Integer、Long、Single、Double是数值类型数据,但Byte不是。
参考答案:错
第3题:在打开某窗体时,初始化窗体中的各控件,应选用Load事件。
参考答案:对
第4题:若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行。
参考答案:对
第5题:函数过程与Sub过程必须用关键字Private或Public声明。
参考答案:错
第6题:标签控件可以响应Click事件。
参考答案:对
第7题:屏幕(Screen)对象可作为窗体的容器,但它只能提供缺省的坐标系统,即坐标刻度不能改变。
参考答案:对
第8题:用通用对话框控件显示“字体”对话框前,必须先设置Flags属性,否则将发生“不存在字体”的错误。
参考答案:对
第9题:运行时目录列表框的List属性可以用AddItem和RemoveItem两种方法来改变。
参考答案:错
第10题:将组合框的Style属性设置为0时,组合框称为“下拉式组合框”,其选项可以从下拉列表框的列表项中选择,也可以由用户输入。
参考答案:对
第1题:在工程资源管理器中“移除”一个文件后,该文件______。
参考答案:A
A、从当前工程中删除掉
第2题:在设计模式双击窗体中的对象后,Visual Basic将显示的窗口是______。
参考答案:B
B、代码窗口
第3题:Integer类型的变量可存的最大整数为______。
参考答案:D
D、32767<BR>
第4题:下列哪个函数返回值为Ascii码值?
参考答案:D
C、Asc(x)<BR>
第5题:下列关于Select Case之测试表达式的叙述中,错误的是______。
参考答案:A
A、只能是变量名
第6题:执行___语句后,执行语句“Text1.SelStart = 0 : Text1.SelLength = Len(Text1)”,可以使文本框控件Text1中的文本突出显示。
参考答案:B
B、Text1.SetFocus
第7题:设置命令按钮cm1的背景色为红色,可以执行语句______。
参考答案:B
C、cm1.BackColor = vbred: cm1.style=1
第8题:______可以改变容器坐标系的度量单位。
参考答案:C
C、ScaleMode属性
第9题:通常用______方法来显示“自定义”对话框。
参考答案:D
D、Show
第10题:设定文件列表框中所显示的文件类型,应修改该控件的______ 属性。
参考答案:A
A、Pattern
下列程序显示所有3个数码各不相同的3位数,要求按紧凑格式每行显示15个数,并统计有多少个这样的三位数。
Private Sub Form_Click()
Dim n As Integer, a As Integer, b As Integer, c As Integer
Dim x As Integer
For a =0 to 9 '个位数数码
For b = 0 To 9 '十位数数码
For c = ----1----
If a<>b And b<>c And a<>c Then
x =a+10*(b+10*c)
n = ----2----
----3----
If n mod 15 = 0 Then Print
End If
Next c,b,a
Print "总共有这样的三位数"; n; "个"
End Sub
参考答案:1 to 9 参考答案:n+1 参考答案:print x;
窗体是密码检验程序。程序运行时,用户在文本框输入密码,单击确定按钮对密码进行检验。密码正确后,标签label2显示“密码正确”;若密码不正确,标签显示“密码错误”,若密码输入错误达3次,将自动退出程序。
Private Sub Command1_Click() '确定按钮
Static n As Integer
----1----mypwd As String = "123456" '预设密码为自定义常量
n = n + 1
Label2.Visible = True
If ----2---- Then
Label2.Caption = "密码正确"
Else
If n < 3 Then
Label2.Caption = "密码错误!"
Text1.Text = ""
Else
----3----
End If
End If
End Sub
参考答案:CONST参考答案:Text1.text=mypwd或mypwd=text1.text参考答案:End
在组合框中选择形状后,窗体中控件Shape1的形状和边框线作相应变化。程序运行时如下图
Private Sub Combo1_Click()
Shape1.Shape = = Combo1.List(----1----)
----2---- = Int(Rnd * 7)
End Sub
Private Sub Form_Load()
Dim I As Integer
For I = 0 To 5:----3----: Next I
End Sub
参考答案:Combo1.ListIndex参考答案:Shape1.BorderStyle
参考答案:Combo1.AddItemStr(I)或Combo1.list(I)=I
右击窗体则打开Windows自带的计算器“C:\windows\calc.exe”;单击“退出”按钮时将右击窗体的次数写入磁盘文件,并结束程序运行。
----1----
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If Button = 2 Then n = n + 1: Shell “C:\windows\calc.exe”
End Sub
Private Sub Command1_Click()
Open "C:\a1.dat" For----2----
Print #1,n: Close #1
----3----
End Sub
参考答案:dim n as integer参考答案:output as #1参考答案:end
第1题:编程,输入x,求下列分段函数的值,计算结果输出到Text控件中。:
参考答案
Private Sub Command1_Click()
Dim x As Single
x = InputBox("输入x", "计算分段函数")
If x <= 3 Then
Text1 = Str(1 + x)
Else
Text1 = Str(x + 3) ^ 0.25
End If
End Sub
如下图,编程,点击按钮可以移动列表框中所选中表项的位置。说明:通过load 事件添加列表项,运行时,先选择列表框中的选项,才可以使用“上移”或“下移”按钮。当选项是第一项时不能再上移,当选项是最后一项时不能再下移。
参考答案:
Private Sub Command1_Click() '上移
Dim i As Integer
i = List1.ListIndex
List1.AddItem List1.Text, i - 1 '先将选中的内容添加到上一项前
List1.RemoveItem i + 1 '将原来选中的那项删除
List1.ListIndex = i - 1 '将光标重新指向已经上移后的选项
End Sub
Private Sub Command2_Click() '下移
Dim i As Integer
i = List1.ListIndex
List1.AddItem List1.Text, i + 2 '先将选中的内容添加到下一项后
List1.RemoveItem i '将原来选中的那项删除
List1.ListIndex = i + 1 '将光标重新指向已经下移后的选项
End Sub
Private Sub List1_Click()
Command1.Enabled = True: Command2.Enabled = True
If List1.ListIndex = 0 Then
Command1.Enabled = False '第一项不能上移
End If
If List1.ListIndex = List1.ListCount - 1 Then
Command2.Enabled = False '最后一项不能下移
End If
End Sub
编写程序,将磁盘文件d:\student.dat中若干个学生的姓名、出生年月、外语成绩和计算机成绩显示在列表框中,并且能实现以下功能:若文本框内容不为空,单击命令按钮“追加记录”则将文本框中的文本追加至列表框中;单击命令按钮“删除记录”则可删除列表框的选中项;首次运行时文件可以为空,单击“保存文件”命令按钮则保存文件。界面设计如图所示。
参考答案:
Private Sub Form_Load()
Dim ss As String
Open "d:\student.dat" For Input As #1
While Not EOF(1)
Line Input #1, ss: List1.AddItem ss
Wend
Close #1
End Sub
Private Sub Command1_Click()
If Trim(Text1.Text) <> "" Then List1.AddItem Text1.Text
Text1.Text = ""
End Sub
Private Sub Command2_Click()
List1.RemoveItem List1.ListIndex
End Sub
Private Sub Command3_Click()
Dim I As Integer
Open "d:\student.dat" For Output As #1
For I = 0 To List1.ListCount - 1: Print #1, List1.List(I): Next I Close #1
End Sub
Private Sub Command4_Click()
End
End Sub
、
1、在逻辑运算符Not、Or、And中,运算优先级由高到低依次为Not、Or、And。×
2、关系表达式是用来比较两个数据的大小关系的,结果为逻辑值。√
3、一个表达式中若有多种运算,在同一层括号内,计算机按函数运算→逻辑运算→关
系运算→算术运算的顺序对表达式求值。×
4、赋值语句的功能是计算表达式值并转换为相同类型数据后为变量或控件属性赋值√
5、用DIM定义数值变量时,该数值变量自动赋初值为0。√
6、若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行。√
7、在行If语句中,关键字End If是必不可少的。×
8、For/Next语句中,“Step1”可以缺省。√
9、块If结构中的Else子句可以缺省。√
10、For/Next循环正常(未执行Exit For)结束后,控制变量的当前值等于终值。×
11、用关键字Public声明的变量可以被其他模块调用。×
12、缺省声明变量等同于dim定义的变量。×
13、用Public声明的数组是全局量。√
14、过程中的静态变量是局部变量,当过程再次被执行时,它的值是上一次过程调用后
的值。√
15、如果命令按钮Default属性为True,那么任何时候按Enter键都相当于单击该命令按
钮。√
16、标签控件和文本框控件都能用来输入和输出文本。×
17、虽然标签控件显示的文本在运行时不能编辑,但是可以通过程序代码进行改变。√
18、单选钮控件和复选框控件都具有Value属性,它们的作用完全一样。×
19、使用单选钮控件数组时,它们响应同一个Click事件,由Index参数值来区分不同
的按钮。√
20、设置框架时,可先在窗体上画好框架,再往框架内添置控件;也可以先设计控件,
再建立框架,然后将已有控件拖动到框架中。×
21、当列表框中表项太多、超出了设计时的长度时,Visual Basic会自动给列表框加上垂
直滚动条。√
22、将组合框的Style属性设置为0时,组合框称为“下拉式组合框”,其选项可以从下
拉列表框的列表项中选择,也可以由用户输入。√
23、用户可拖动滚动条的滚动滑块来改变滚动条的Value值,在移动滚动滑块时,发生
Change事件。×
24、由于定时器控件在运行时是不可见的,因此在设置时可将其放在窗体的任何位置。
√
1.货币类型数据小数点后面的有效位数最多只有 D 。
A、1位
B、6位
C、16位
D、4位
2.运算符“\”两边的操作数若类型不同,则先 C 再运算。
A、取整为Byte类型
B、取整为Integer类型
C、四舍五入为整型
D、四舍五入为Byte类型
3.Int( Rnd * 100 ) 表示的是 C 范围内的整数。
A、[0,100]
B、[1,99]
C、[0,99]
D、[1,100]
4.返回删除字符串前导和尾随空格符后的字符串,用函数 A 。
A、Trim
B、Ltrim
C、Rtrim
D、mid
5. 语句Print "5*5" 的显示结果是 C 。
A、25
B、"5*5"
C、5*5
D、出现错误提示
6.下列关于Select Case的叙述中,错误的是 D 。
A、Case 10 To 100 表示判断Is是否介于10与100之间
B、Case "abc","ABC" 表示判断Is是否和"abc"、"ABC"两个字符串中的一个相同
C、Case "X" 表示判断Is是否为大写字母X
D、Case -7,0,100 表示判断Is是否等于字符串"-7,0,100"
7.由“For i=1 To 16 Step 3”决定的循环结构被执行___C___次。
A、4
B、5
C、6
D、7
8.由“For i=1 To 9 Step -3”决定的循环结构被执行 D 次。
A、4
B、5
C、6
D、0
9.将命令按钮Command1设置为窗体的取消按钮,可修改该控件的 D 属性。
A、Enabled
B、Value
C、Default
D、Cancel
10.下列 B 属性用来表示标签或窗体的标题。
A、Text
B、Caption
C、Left
D、Name
11.将焦点主动设置到指定的控件或窗体上,应采用 B 方法。
A、SetDate
B、SetFocus
C、SetText
D、GetGata
12.当文本框的 B 属性设置为True时,在运行时文本框不能编辑。
A、Enabled
B、Locked
C、Visible
D、MultiLine
13.文本框中选定的内容,由下列 B 属性来反映。
A、SelText
B、SelLength
C、Text
D、Caption
四、写出表达式
1. 用随机函数产生一个两位整数的Visual Basic表达式是 10+int(rnd*90) 。
2. 求a与b之积除以c的余数,用Visual Basic表达式可表示为 a*b mod c 。
3. Y能被4整除,但不能被100整除;或者Y能被400整除的表达式 y mod 4=0 and y mod 100<>0or y mod 400=0
4. X是能被5整除的偶数的表达式 x mod 5=0 and x mod 2=0
五、程序填空题
1.【程序说明】下面是一段计算数学表达
式的程序。
Private Sub Form_Click()
Dim n As Integer, p As Integer, s As Sigle, q As Integer, i As Inte ger
n = InputBox("请输入N的值:")
s = 0:p = -1:q = 1
For i = 1 To n
p = -p: q = Q*I
s = S=S+P*(I/Q)
next I
Print s
End Sub
2.输入有效性的判断(必须输入数字)
Private Sub Text1_Change()
a = right(text1.text,1)‘返回刚输入的一位字符
If a = "" Then a = 0
If a < 0 Or a > 9 Then ‘判断如不是数字则选中这一位
MsgBox ("错误")
Text1.SelStart = len(text1.text)-1
Text1.SelLength = 1
End If
End Sub
Private Sub Text1_GotFocus() ‘选中所有内容
text1.selstart=0
text1.sellength=len(text1.text)
End Sub
Private Sub Text1_LostFocus()
a = Len(Text1.Text)
For i = 1 To a
b = mid(text1.text,i,1) '查找第一个非数字,报错,锁焦点
If b < 0 Or b > 9 Then
MsgBox ("错误")
text1.setfocus(锁焦点)
exit for ‘跳出循环
End If
Next
End Sub
3、判断从文本框text 1中输入的数据,如果数据满足条件:除以3余2,除以5余3,则输出;否则,将焦点定位在文本框text 1中,选中其中的文本。Private Sub Command1_Click()
X=Val(text 1.text)
If x mod 3=2 and x mod 5=3 Then
Print x
Else
text1.setfocue
text1.selstar=0
text1.sellength=len(text1.text)
End if
End sub
4、界面上有两个按钮command 1、command 2和文本框text 1。完成功能:单击command 1时,显示文本框,设置command 2可用但自身不可用。单击command 2时,隐藏文本框,设置command 1可用但自身不可用。
Private sub command 1_click()
Command2. enabled=T
Command 1.enabled=false
Text1.visible=T
End sub
Private sub command 2_click()
Text1.visible=F
Command 1.enabled=true
Command2.enabled=F
End sub
5.【程序说明】本题是利用计时器控件来实现文字的水平移动,要求:
(1)运行时标签框内的文字从窗体左边向右边移动,当标签框的左边界超出窗体的右边界时,从窗体的左边进入窗体(尾部先进入)。
(2)文字移动时颜色不断产生随机变化。
Private Sub Timer1_Timer()
Label1.ForeColor = rgb(255*rnd(),255*rnd(),255*rnd())
Label1.Left = Label1.Left + 150
If Label1.Left >= Form1.Width Then __ Label1.Left= 0- Label1. Width __
End Sub
2、P190【练习9-3】
1)
Private Sub 添加_Click()
a = InputBox("输入书名:")
If Trim(a) = "" Then
Exit Sub
Else
List1.additem a
End If
End Sub
2)
Private Sub 删除_Click()
If list1.listindex>=0 Then
List1.removeitem list1.listindex
Else
a = MsgBox("请选择书目!", , "提示")
End If
End Sub
3)
Private Sub 上移一个_Click()
If List1.ListIndex = -1 Then '没有选择或到第一项之前选择最后一项 List1.ListIndex= List1. ListCount-1
ElseIf List1.ListIndex=0 Then
a = MsgBox("已经是第一项")
Else
List1.ListIndex=List1.ListIndex-1
End If
End Sub
4)略
5)略
6)
Private Sub 最后一个_Click()
If list1.listindex=-1 Then
a = MsgBox("请选择项目!")
ElseIf List1.ListIndex= List1. ListCount-1 Then a = MsgBox("已经是最后一项!")
Else
List1.ListIndex= List1. ListCount-1
End If
End sub
6.【程序说明】下列程序用来在窗体上输出如图10-3所示的数据。Private Sub Form_Click()
Dim a(5, 5) As Byte, i As Byte, j As Byte
For i = 1 To 5
For j = 1 To 6 - i
a(i, j) = i+j-1
Next j, i
For i = 2 To 5
For j = 7-i To 5
a(i,j) = j + i - 6
Next j, i
For i = 1 To 5
For j = 1 To 5
Print a(i,j);
Next j
?
Next i
End Sub
7.【程序说明】P137页练习7-10
Option base 1
Private Sub Form_Click()
Form1.Cls
a = InputBox("请输入行数:")
If a = "" Then Exit Sub
Dim t()
redim t(a,a)
For i = 1 To a
For j = 1 to i
If J=1 or i=J Then
t(i, j) = 1
Else
t(i,J)=t(i-1,J)+t(i-1,J-1)
End If
Print t(i, j); Tab(5 * j);
Next
Next
End Sub
8.【程序说明】用数组在窗体上输出如图九九乘法表。每空只填写一条语句Private Sub Command2_Click()
Form1.Cls
Print Spc(30); "九——九表"
Dim a(9, 9)
Print " ";
For i = 0 To 9
For j = 0 To 9
If i <> 0 And j > i Then Exit For
(I,j)=i*j
(I,0)=i
(o,j)=j
(0,0)=”*”
Print a(i, j),
Next
Next
End Sub