第六章测试1.
定义过程的格式中,Static关键字的作用是指定过程中的局部变量在内存中的存储方式。若使用了Static关键字,则__________。
A:每次调用此过程,该过程中的局部变量都会被重新初始化 B:在本过程中使用到的,在其他过程中定义的变量也为Static型 C:每次调用此过程时,该过程中的局部变量的值保持在上一次调用后的值
D:定义了该过程中定义的局部变量为“自动”变量
答案:C
2.
在过程中定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用__________关键字在过程中定义局部变量。
A:Static B:Dim C:Public
D:Private 3.
根据变量的作用域,可以将变量分为3类,分别为__________。
A:局部变量、模块变量和全局变量
B:局部变量、标准变量和全局变量
C:局部变量、模块变量和窗体变量
D:局部变量、模块变量和标准变量 4.
下列关于过程叙述不正确的是__________。
A:过程的传值调用是将实参的具体值传递给形参 B:过程的传值调用参数是单向传递的,过程的传址调用参数是双向传递的 C:无论过程传值调用还是过程传址调用,参数传递都是双向的 D:过程的传址调用是将实参在内存的地址传递给形参 5.
要想从子过程调用后返回两个结果,下面子过程语句说明合法的是__________。
A:Sub f1(ByVal n%,m%) B:Sub f2(ByVal n%,ByVal m%) C:Sub f1( n%,ByVal m%) D:Sub f1(n%,m%) 6.下列定义为abc的过程定义语句中正确的是__________。
A:Dim Sub abc(x,y) B:Private Sub abc(x,y) As Integer
C:Public abc(x,y) D:Sub abc(x,y)
7.
有如下函数过程:
Function gys(ByVal X As Integer, ByVal Y As Integer) As Integer
Do While Y <> 0
reminder = X Mod Y
X = Y
Y = reminder
Loop
gys = X
End Function
以下调用函数的事件过程,该程序的运行结果是__________。
Private Sub Command7_Click()
Dim a As Integer
Dim b As Integer
a = 100
b = 25
X = gys(a, b)
Print X
End Sub
A:100
B:25
C:50
D:0 8.
已知过程定义的首行为Sub sum(a As Integer, b As Integer),则下面过程调用语句中正确的是________。
A:Call sum(x ; y) B:sum(x , y) C:sum x; y D:sum x, y 9.
设有如下程序代码:
Dim a%
Public b%, c%
Private Sub Form_Click()
Dim b%
Print a; b; c
End Sub
Private Sub Form_Load()
Dim a%
a = 5
b = 8
c = 10
End Sub
运行程序时单击窗体,则在窗体上显示的是________。
A:5 0 10 B:5 8 10 C:0 0 10 D:0 8 10 10.
设有以下程序片段:
Public x%
Private y$
Private Sub Command1_Click()
Dim a
……
End Sub
Private Sub Command2_Click()
Static b
……
End Sub
在Command1_Click过程中无法访问的变量是________。
A:x B:a C:b D:y 11.
编写如下程序代码:
Private Sub Command1_Click()
Const n = 5
Dim arrx(n) As Integer
For i = 1 To 5
arrx(i) = i * i
Next i
Call swap(arrx(), n)
For i = 1 To n
Print arrx(i);
Next
End Sub
Public Sub swap(a() As Integer, k As Integer)
For i = 1 To k / 2
t = a(i)
a(i) = a(k - i + 1)
a(k - i + 1) = t
Next
End Sub
程序运行后,单击命令按钮Command1,输出结果为________。
A:4 1 9 25 16
B:25 16 9 4 1
C:1 4 9 16 25
D:1 4 9 4 1 12.
如果在过程A中用语句:Call proc(a, b) 调用下面的过程
Private Sub proc(b As Integer, ByVal a As Integer)
a = a + 1
b = b * 2
End Sub
则调用结束后的结果是________。
A:过程A中变量b的值变为原有值的2倍,a的值等于原有值加1 B:过程A中变量a的值变为原有值的2倍,b的值等于原有值加1 C:过程A中变量b的值变为原有值的2倍 D:过程A中变量a的值变为原有值的2倍 13.
在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写以下程序代码:
Private Sub sub1(ByRef d(), ByRef m1 As Integer)
Dim i As Integer
m1 = d(LBound(d))
For i = LBound(d) + 1 To UBound(d)
If m1 < d(i) Then m1 = d(i)
Next i
End Sub
Private Sub Command1_Click()
Dim n1 As Integer
n1=-1
Dim data()
data = Array(10, 20, -20, 50, 15, -5)
Call sub1(data(), n1)
Text1.Text = n1
End Sub
程序运行过程中,当单击命令按钮Command1时,则在文本框Text1中显示的结果为________。
A:0 B:-1 C:50 D:-5 14.
有以下程序代码:
Private Sub Command1_Click ()
Print fun(10), fun(5)
End Sub
Private Function fun(n As Integer) As Integer
Static t
For k = 1 To n
t = t + k
Next k
fun = t
End Function
执行Command1_Click过程产生的输出是________。
A:15 70 B:55 15 C:55 70 D:15 55 15.
以下叙述中错误的是________。
A:保存程序时,应分别保存窗体文件和工程文件 B:一个工程中可以包含一个或多个窗体,但不能包含其他模块 C:打开一个工程文件时,系统自动装入与该工程有关的窗体文件 D:标准模块文件的扩展名是 .bas ,工程文件的扩展名是 .vbp 16.
以下叙述中错误的是________。
A:一个Visual Basic应用程序可以包含一个或多个工程 B:一个Sub过程内不能嵌套定义另一个Sub过程 C:MsgBox函数的返回值与在对话框中所单击的按钮有关,为一整数 D:Visual Basic应用程序只能以解释方式执行 17.
要求函数的功能是:从参数str字符串中删除所有参数ch所指定的字符,返回实际删除字符的个数,删除后的字符串仍在str中,为此某人编写了函数DelChar如下:
Function DelChar(str As String, ch As String) As Integer
Dim n%, st$, c$
st = ""
n = 0
For k = 1 To Len(str)
c = Mid(str, k, 1)
If c = ch Then
st = st & c
Else
n = n + 1
End If
Next k
str = st
DelChar = n
End Function
并用下面的Command1_Click()过程观察函数调用结果
Private Sub Command1_Click()
ch$ = Text1.Text
Print DelChar(ch, "x"), ch
End Sub
发现结果有错误,程序代码需要修改,以下正确的修改方案是________。
A:把语句If c = ch Then 改为If c <> ch Then B:把语句Print DelChar(ch, 'x'), ch改为Print DelChar(ch, 'x') :Print ch C:把语句DelChar = n 改为 DelChar = st D:删掉语句str = st 18.
如果窗体模块A中有一个过程:
Private Sub Proc( )
……
End Sub
则下面叙述中错误的是________。
A:在窗体模块B中可以有与此相同名称的过程 B:在窗体模块B中可以调用此过程 C:在标准模块中不能调用此过程 D:窗体模块A中任何其他过程都可以调用此过程 19.
以下关于VB文件的叙述中,正确的是________。
A:标准模块文件的扩展名是.frm B:类模块文件的扩展名为.bas C:一个.vbp文件只能含有一个标准模块文件 D:一个.vbg文件中可以包括多个.vbp文件 20.
下面叙述中正确的是________。
A:窗体模块中包含本窗体的所有事件过程,标准模块中包含本标准模块的所有事件过程 B:一个工程中只能有一个标准模块 C:一个窗体是一个窗体模块 D:一个工程由一个窗体模块和一个标准模块组成 21.
以下叙述中错误的是________。
A:标准模块文件的扩展名是 .bas ,工程文件的扩展名是 .vbp B:打开一个工程文件时,系统自动装入与该工程有关的窗体文件 C:一个工程中可以包含一个或多个窗体,但不能包含其他模块 D:保存程序时,应分别保存窗体文件和工程文件 22.
以下叙述中错误的是________。
A:在标准模块中声明的全局变量可以在整个工程中使用
B:标准模块文件的扩展名是.bas C:在标准模块中不能定义过程 D:标准模块文件是纯代码文件 23.
下面有关标准模块的叙述中,错误的是________。
A:标准模块不完全由代码组成,还可以有窗体 B:标准模块的文件扩展名为.bas C:标准模块中的全局变量可以被工程中的任何模块引用 D:标准模块中的Private过程不能被工程中的其他模块调用 24.
下面关于标准模块的叙述中错误的是________。
A:标准模块中可以包含一个Sub Main过程,但此过程不能被设置为启动过程 B:标准模块中可以声明全局变量 C:标准模块中可以包含一些Public过程
D:一个工程中可以含有多个标准模块
25.
在标准模块中用Public关键字定义的变量,其作用域为________。
A:本模块所有过程 B:所有窗体 C:整个工程 D:所有标准模块 26.
以下叙述中错误的是________。
A:全局变量可以在标准模块中定义 B:窗体和标准模块需要分别保存为不同类型的磁盘文件 C:一个工程中可以包含多个窗体文件 D:在一个窗体文件中用Private定义的通用过程可以被其他窗体调用 27.
下列关于标准模块的叙述中,错误的是________。
A:标准模块中的Public过程可以被不同窗体的程序调用 B:标准模块可以在某个窗体中建立 C:标准模块文件的扩展名为.bac D:标准模块是一个纯代码文件 28.
以下关于VB文件的叙述中,错误的是________。
A:工程文件的扩展名为.frm B:一个工程可以有多个窗体文件 C:标准模块文件不属于任何一个窗体 D:一个工程只有一个工程文件 29.
以下关于VB文件的叙述中,正确的是________。
A:VB应用程序可以被编译为.exe文件 B:一个工程文件只能含有一个标准模块文件 C:类模块文件的扩展名为.bas
D:标准模块文件的扩展名是.frm 30.
如果在窗体模块中所有程序代码的前面有语句:Dim x ,则x是________。
A:窗体级变量 B:局部变量
C:全局变量 D:静态变量
31.
如果将数组名作为函数调用的实参,则传递给形参的是________。
A:数组第一个元素的值 B:数组全部元素的值 C:数组第一个元素的地址 D:数组最后一个元素的值