VB第八章自测题及答案
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分)
a = 24: b = Hale Waihona Puke 6Call 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.
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
8.7递归
自测题
一.写出下列事件过程的执行结果。(50分)
该过程。
3.若在窗体模块或标准模块中以关键字private定义函数过程,则该函数过程只能在
()中使用。
4.在函数过程定义中一般至少有一个赋值语句把所得函数值赋给()。
三.写出下列事件过程的执行结果。(共30分,每小题15分)
1.
Private Sub Command1_Click()
Dim a As Integer, b As Integer
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()
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"
Print a(i),
If i Mod 4 = 0 Then Print
Next i
Print
(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),
c)KeyDown
d)DragDown
3.当用户()时,会引发焦点所在对象的KeyPress事件。
a)在键盘上按下有ASC码的键
b)释放键盘上有ASC码的键
c)单击鼠标左键
d)单击鼠标右键
4.当用户在键盘上按下一个有ASC码的键时会发生()事件。
a) KeyPress和KeyDown
b) KeyPress和KeyUp
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
第8章自测题及其参考答案
8.1过程的定义与调用
自测题
一.单项选择题(共20分,每小题4分)
1.标准模块中的内容存放在以()为扩展名的文件中。
a).frm b).bas c).cls d).txt
2.下列过程不能包含在标准模块中定义的是()。
a)事件过程b)子过程c)函数过程d)公共过程
3.设已定义子过程p,它有三个数值型数值参数,再设a为实型变量,则调用该子过程使用的语句为()。
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)
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中,
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()
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)
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)
并找出这组数中能被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)
(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.下面窗体模块的功能是在窗体上显示如下图形,在横线上填上适当内容。
a)全局级过程的作用域为整个工程
b)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称
c)在不同模块中定义的模块级过程可以同名
d)在不同模块中定义的工程级过程不能同名
2.关于变量的作用域,正确的描述是()。
a)模块级变量的作用域为它所在的模块
b)同一模块中不同级的变量不能同名
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.变量的使用范围
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