VB第八章自测题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该过程。
3.若在窗体模块或标准模块中以关键字private定义函数过程,则该函数过程只能在
()中使用。
4.在函数过程定义中一般至少有一个赋值语句把所得函数值赋给()。
三.写出下列事件过程的执行结果。(共30分,每小题15分)
1.
Private Sub Command1_Click()
Dim a As Integer, b As Integer
1.每一个过程都有一个使用范围,过程的使用范围称为( )。
2.在某一模块内定义的过程,若在关键字sub或Function前加Public,则该过程称为
( )。
3.模块级过程的作用域为( )。
4.( )称为变量的作用域。
5.全局级变量的作用域为( )。
二.单项选择题。(共20分,每小题10分)
1.关于过程作用域,错误的描述是()。
1.8
2.480
四.程序填空题
1.(1)f = Sin(a) / (Sin(b) * Sin(c))
(2)f(x, x - y, x - z) + f(y, y - z, y - x) + f(z, z - x, z - y)
2.(3)p (i)
(4)p (i)
8.2过程与变量的作用域
自测题
一.填空题(共20分,每小题4分)
Dim a As Integer, b As Integer
a = 10: b = 20
Print "a="; a, "b="; b
(1)
Print "a="; a, "b="; b
End Sub
Private Sub swap(ByRef a As Integer, ByRef b As Integer)
a) p b) call p 0.5,a,100
c) call p (0.5,cos(0.1),a+10) d) p (0.5,1.2,100)
4.设已定义函数过程f,它有三个整型数值参数,再设a,b和c为实型变量,则调用该函数过程使用的语句为()。
a)f b) f( a+b, b+c )
c)f ( a+b, b+c ,c+a ) c) f a+b, b+c, c+a
If x > y Then max = x Else max = y
If z > max Then max = z
End Function
四.程序填空题(共30分,每空10分)
1.设
,下面窗体模块的功能是从键盘上输入x,y和z的值,求f (x,y,z)的值,在横线上填上适当内容。
Private Function f(ByVal a As Single, ByVal b As Single, ByVal c As Single)
5.要在子过程的过程体中退出子过程应使用()语句。
a) Exit Do b) Exit For
c) Exit Sub d) Exit Function
二.填空题(共20分,每小题5分)
1.一个VB应用程序可以包括三种模块:()、()和()。
2.若在标准模块中以关键字public定义子过程,则在()中都可以调用
c) KeyDown和KeyUp
d) KeyPress和KeyMove
5.当同时按下shift、ctrl和Alt键时,会发生KeyDown事件,系统转去执行KeyDown事件过程,此时,该事件过程中的Shift参数的值为()。
a)1
b)2
c)4
d)7
参考答案
单项选择题
1. c 2. c 3. a 4. a 5. d
Private Sub Command1_Click()
Dim m%
m = max(35, -21, 480)
m = max(max(m, 75, 100), 380, 28)
Print "max="; m
End Sub
Private Function max(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer)
c)KeyDown
d)DragDown
3.当用户()时,会引发焦点所在对象的KeyPress事件。
a)在键盘上按下有ASC码的键
b)释放键盘上有ASC码的键
c)单击鼠标左键
d)单击鼠标右键
4.当用户在键盘上按下一个有ASC码的键时会发生()事件。
a) KeyPress和KeyDown
b) KeyPress和KeyUp
(1)
End Function
Private Sub Command1_Click()
Dim x!, y!, z!, s!
x = InputBox("x=")
y = InputBox("y=")
z = InputBox("z=")
s =(2)
Print "s="; s
End Sub
2.下面窗体模块的功能是在窗体上显示如下图形,在横线上填上适当内容。
Print "a="; a, "b="; b, "c="; c
End Sub
Private Sub s(x As Integer, y As Integer, z As Integer)
z = y - x
End Sub
二.下面程序的功能是对两个整型变量的值进行交换,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Call s1
Print x
Call s2
Print x
End Sub
Private Sub s1()
x = x + 20
Print x
End Sub
Private Sub s2()
Dim x As Integer
x = x + 20
Print x
End Sub
2.
Private Sub Command1_Click()
c)在某一模块中所有过程外用Dim定义的变量为全局变量
d)不同模块中定义的全局变量可以相同
三.给定下列窗体模块,写出单击命令按钮Comman1后的执行结果。(共60分,每小题20分)
1.
Public x As Integer
Private Sub Command1_Click()
x = 10
Print x
Dim t As Integer
(2)
End Sub
参考答案
一.写出下列窗体模块中事件过程的执行结果。
a= -5 b= -12 c= -7
二.下面程序的功能是对两个整型变量的值进行交换,在横线上填上适当内容。
(1)swap a, b或Call swap(a, b)
(2)t = a: a = b: b = t
a)全局级过程的作用域为整个工程
b)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称
c)在不同模块中定义的模块级过程可以同名
d)在不同模块中定义的工程级过程不能同名
2.关于变量的作用域,正确的描述是()。
a)模块级变量的作用域为它所在的模块
b)同一模块中不同级的变量不能同名
8.7递归
自测题
一.写出下列事件过程的执行结果。(50分)
5.整个应用程序
二.单项选择题
1.d
2.b
三.给定下列窗体模块,写出单击命令按钮Comman1后的执行结果。
1.10
30
30
20
30
2.x=1 y=1
x=1 y=2
x=1 y=3
3.u=1 v=1
u=2 v=2
u=3 v=3
8.3数组和记录作为过程的参数
自测题
一.下面窗体模块的功能是:用随机函数产生10个不大于100的整数存入一维数组a中,
8.6键盘事件过程和复杂鼠标事件过程
自测题
单项选择题(共100分,每小题20分)
1.当鼠标在窗体上移动时,会发生()事件。
a)Mouse Down
b)Mouse Up
c)Mouse Move
d)Drag Down
2.当焦点位于某个对象上,在键盘上按下某一键时就会发生()事件。
a)KeyPress
b)KeyUp
Dim i%
For i = 1 To 3
Call s4
Next i
End Sub
Static Sub s4()
u = u + 1: v = v + 1
Print "u="; u, "v="; v
End Sub
参考答案
一.填空题
1.过程的作用域
2.全局级过程或工程级过程
3.它所在模块
4.变量的使用范围
a = 24: b = 16
Call s(a, b)
End Sub
Private Sub s(ByVal u As Integer, ByVal v As Integer)
Dim m As Integer
While v
m = u Mod v
u = v
v = m
Wend
Print u
End Sub
2.
Dim a As comp, b As comp
a.re = InputBox("输入a的实部")
a.im = InputBox("输入a的虚部")
b.re = InputBox("输入b的实部")
b.im = InputBox("输入b的虚部")
(1)
Print "c="; c.re; "+"; c.im; "i"
k = k + 1
End If
Next i
End Sub
二.下面标准模块和窗体模块的功能是计算和打印两个复数之和,在横线上填上适当内容。(50分)
标准模块:
Type comp
re As Single
im As Single
End Type
Public c As comp
窗体模块:
Private Sub Command1_Click()
并找出这组数中能被3整除余2的数,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Dim i%
Const n = 10
Dim a(1 To n) As Integer
Randomize
For i = 1 To n
a(i) = Int(Rnd * 100 + 1)
第8章自测题及其参考答案
8.1过程的定义与调用
自测题
一.单项选择题(共20分,每小题4分)
1.标准模块中的内容存放在以()为扩展名的文件中。
a).frm b).bas c).cls d).txt
2.下列过程不能包含在标准模块中定义的是()。
a)事件过程b)子过程c)函数过程d)公共过程
3.设已定义子过程p,它有三个数值型数值参数,再设a为实型变量,则调用该子过程使用的语句为()。
**
****
******
****
**
Private Sub p(ByVal i As Integer)
Dim j%, k%
For j = 0 To 7 - i
Print " ";
Next j
For k = 0 To 2 * i - 1
Print "*";
Next k
Print
End Sub
Private Sub Command1_Click()
s3 (1): s3 (1): s3 (1)
End Sub
Private Sub s3(ByVal a As Integer)
Dim x As Integer
Static y As Integer
x = x + a: y = y + a
Print "x="; x, "y="; y
End Sub
3.
Private Sub Command1_Click()
End Sub
Private Sub s((2))
c.re = r1.re + r2.re
c.im = r1.im + r2.im
End Sub
参考答案
一.(1)Call s(a(), n)
(2)a() As Integer, ByVal n As Integer
二.(1)Call s(a, b)
(2)r1 As comp, r2 As comp
8.5过程的参数传递
自测题
一.写出下列窗体模块中事件过程的执行结果。(50分)
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Call s(10, 5, a)
Call s(7, a, b)
Call s(a, b, c)
Print a(i),
If i Mod 4 = 0 Then Print
Next i
Pຫໍສະໝຸດ Baiduint
(1)
End Sub
Private Sub s((2))
Dim i%, k%
For i = 1 To n
If a(i) Mod 3 = 2 Then
If k Mod 4 = 0 Then Print
Print a(i),
Dim i%
For i = 1 To 2
(3)
Next i
For i = 3 To 1 Step -1
(4)
Next i
End Sub
参考答案
一.单项选择题
1.b 2. a 3. c 4. c
二.填空题
1.窗体模块、标准模块、类模块
2.整个应用程序
3.该窗体模块或标准模块
4.函数过程名
三.写出下列事件过程的执行结果。
3.若在窗体模块或标准模块中以关键字private定义函数过程,则该函数过程只能在
()中使用。
4.在函数过程定义中一般至少有一个赋值语句把所得函数值赋给()。
三.写出下列事件过程的执行结果。(共30分,每小题15分)
1.
Private Sub Command1_Click()
Dim a As Integer, b As Integer
1.每一个过程都有一个使用范围,过程的使用范围称为( )。
2.在某一模块内定义的过程,若在关键字sub或Function前加Public,则该过程称为
( )。
3.模块级过程的作用域为( )。
4.( )称为变量的作用域。
5.全局级变量的作用域为( )。
二.单项选择题。(共20分,每小题10分)
1.关于过程作用域,错误的描述是()。
1.8
2.480
四.程序填空题
1.(1)f = Sin(a) / (Sin(b) * Sin(c))
(2)f(x, x - y, x - z) + f(y, y - z, y - x) + f(z, z - x, z - y)
2.(3)p (i)
(4)p (i)
8.2过程与变量的作用域
自测题
一.填空题(共20分,每小题4分)
Dim a As Integer, b As Integer
a = 10: b = 20
Print "a="; a, "b="; b
(1)
Print "a="; a, "b="; b
End Sub
Private Sub swap(ByRef a As Integer, ByRef b As Integer)
a) p b) call p 0.5,a,100
c) call p (0.5,cos(0.1),a+10) d) p (0.5,1.2,100)
4.设已定义函数过程f,它有三个整型数值参数,再设a,b和c为实型变量,则调用该函数过程使用的语句为()。
a)f b) f( a+b, b+c )
c)f ( a+b, b+c ,c+a ) c) f a+b, b+c, c+a
If x > y Then max = x Else max = y
If z > max Then max = z
End Function
四.程序填空题(共30分,每空10分)
1.设
,下面窗体模块的功能是从键盘上输入x,y和z的值,求f (x,y,z)的值,在横线上填上适当内容。
Private Function f(ByVal a As Single, ByVal b As Single, ByVal c As Single)
5.要在子过程的过程体中退出子过程应使用()语句。
a) Exit Do b) Exit For
c) Exit Sub d) Exit Function
二.填空题(共20分,每小题5分)
1.一个VB应用程序可以包括三种模块:()、()和()。
2.若在标准模块中以关键字public定义子过程,则在()中都可以调用
c) KeyDown和KeyUp
d) KeyPress和KeyMove
5.当同时按下shift、ctrl和Alt键时,会发生KeyDown事件,系统转去执行KeyDown事件过程,此时,该事件过程中的Shift参数的值为()。
a)1
b)2
c)4
d)7
参考答案
单项选择题
1. c 2. c 3. a 4. a 5. d
Private Sub Command1_Click()
Dim m%
m = max(35, -21, 480)
m = max(max(m, 75, 100), 380, 28)
Print "max="; m
End Sub
Private Function max(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer)
c)KeyDown
d)DragDown
3.当用户()时,会引发焦点所在对象的KeyPress事件。
a)在键盘上按下有ASC码的键
b)释放键盘上有ASC码的键
c)单击鼠标左键
d)单击鼠标右键
4.当用户在键盘上按下一个有ASC码的键时会发生()事件。
a) KeyPress和KeyDown
b) KeyPress和KeyUp
(1)
End Function
Private Sub Command1_Click()
Dim x!, y!, z!, s!
x = InputBox("x=")
y = InputBox("y=")
z = InputBox("z=")
s =(2)
Print "s="; s
End Sub
2.下面窗体模块的功能是在窗体上显示如下图形,在横线上填上适当内容。
Print "a="; a, "b="; b, "c="; c
End Sub
Private Sub s(x As Integer, y As Integer, z As Integer)
z = y - x
End Sub
二.下面程序的功能是对两个整型变量的值进行交换,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Call s1
Print x
Call s2
Print x
End Sub
Private Sub s1()
x = x + 20
Print x
End Sub
Private Sub s2()
Dim x As Integer
x = x + 20
Print x
End Sub
2.
Private Sub Command1_Click()
c)在某一模块中所有过程外用Dim定义的变量为全局变量
d)不同模块中定义的全局变量可以相同
三.给定下列窗体模块,写出单击命令按钮Comman1后的执行结果。(共60分,每小题20分)
1.
Public x As Integer
Private Sub Command1_Click()
x = 10
Print x
Dim t As Integer
(2)
End Sub
参考答案
一.写出下列窗体模块中事件过程的执行结果。
a= -5 b= -12 c= -7
二.下面程序的功能是对两个整型变量的值进行交换,在横线上填上适当内容。
(1)swap a, b或Call swap(a, b)
(2)t = a: a = b: b = t
a)全局级过程的作用域为整个工程
b)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称
c)在不同模块中定义的模块级过程可以同名
d)在不同模块中定义的工程级过程不能同名
2.关于变量的作用域,正确的描述是()。
a)模块级变量的作用域为它所在的模块
b)同一模块中不同级的变量不能同名
8.7递归
自测题
一.写出下列事件过程的执行结果。(50分)
5.整个应用程序
二.单项选择题
1.d
2.b
三.给定下列窗体模块,写出单击命令按钮Comman1后的执行结果。
1.10
30
30
20
30
2.x=1 y=1
x=1 y=2
x=1 y=3
3.u=1 v=1
u=2 v=2
u=3 v=3
8.3数组和记录作为过程的参数
自测题
一.下面窗体模块的功能是:用随机函数产生10个不大于100的整数存入一维数组a中,
8.6键盘事件过程和复杂鼠标事件过程
自测题
单项选择题(共100分,每小题20分)
1.当鼠标在窗体上移动时,会发生()事件。
a)Mouse Down
b)Mouse Up
c)Mouse Move
d)Drag Down
2.当焦点位于某个对象上,在键盘上按下某一键时就会发生()事件。
a)KeyPress
b)KeyUp
Dim i%
For i = 1 To 3
Call s4
Next i
End Sub
Static Sub s4()
u = u + 1: v = v + 1
Print "u="; u, "v="; v
End Sub
参考答案
一.填空题
1.过程的作用域
2.全局级过程或工程级过程
3.它所在模块
4.变量的使用范围
a = 24: b = 16
Call s(a, b)
End Sub
Private Sub s(ByVal u As Integer, ByVal v As Integer)
Dim m As Integer
While v
m = u Mod v
u = v
v = m
Wend
Print u
End Sub
2.
Dim a As comp, b As comp
a.re = InputBox("输入a的实部")
a.im = InputBox("输入a的虚部")
b.re = InputBox("输入b的实部")
b.im = InputBox("输入b的虚部")
(1)
Print "c="; c.re; "+"; c.im; "i"
k = k + 1
End If
Next i
End Sub
二.下面标准模块和窗体模块的功能是计算和打印两个复数之和,在横线上填上适当内容。(50分)
标准模块:
Type comp
re As Single
im As Single
End Type
Public c As comp
窗体模块:
Private Sub Command1_Click()
并找出这组数中能被3整除余2的数,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Dim i%
Const n = 10
Dim a(1 To n) As Integer
Randomize
For i = 1 To n
a(i) = Int(Rnd * 100 + 1)
第8章自测题及其参考答案
8.1过程的定义与调用
自测题
一.单项选择题(共20分,每小题4分)
1.标准模块中的内容存放在以()为扩展名的文件中。
a).frm b).bas c).cls d).txt
2.下列过程不能包含在标准模块中定义的是()。
a)事件过程b)子过程c)函数过程d)公共过程
3.设已定义子过程p,它有三个数值型数值参数,再设a为实型变量,则调用该子过程使用的语句为()。
**
****
******
****
**
Private Sub p(ByVal i As Integer)
Dim j%, k%
For j = 0 To 7 - i
Print " ";
Next j
For k = 0 To 2 * i - 1
Print "*";
Next k
End Sub
Private Sub Command1_Click()
s3 (1): s3 (1): s3 (1)
End Sub
Private Sub s3(ByVal a As Integer)
Dim x As Integer
Static y As Integer
x = x + a: y = y + a
Print "x="; x, "y="; y
End Sub
3.
Private Sub Command1_Click()
End Sub
Private Sub s((2))
c.re = r1.re + r2.re
c.im = r1.im + r2.im
End Sub
参考答案
一.(1)Call s(a(), n)
(2)a() As Integer, ByVal n As Integer
二.(1)Call s(a, b)
(2)r1 As comp, r2 As comp
8.5过程的参数传递
自测题
一.写出下列窗体模块中事件过程的执行结果。(50分)
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Call s(10, 5, a)
Call s(7, a, b)
Call s(a, b, c)
Print a(i),
If i Mod 4 = 0 Then Print
Next i
Pຫໍສະໝຸດ Baiduint
(1)
End Sub
Private Sub s((2))
Dim i%, k%
For i = 1 To n
If a(i) Mod 3 = 2 Then
If k Mod 4 = 0 Then Print
Print a(i),
Dim i%
For i = 1 To 2
(3)
Next i
For i = 3 To 1 Step -1
(4)
Next i
End Sub
参考答案
一.单项选择题
1.b 2. a 3. c 4. c
二.填空题
1.窗体模块、标准模块、类模块
2.整个应用程序
3.该窗体模块或标准模块
4.函数过程名
三.写出下列事件过程的执行结果。