模块与VBA选择题详解综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 模块与VBA编程基础选择题详解
能被“对象所识别的动作”和“对象可执行的活动”分别称为对象的()
(A)方法和事件(B)事件和方法(C)事件和属性(D)过程和方法
答案(B)事件大部分是鼠标或键盘的动作,如单击、双击等等。
2. 在下列关于宏和模块的叙述中,正确的是()
(A)模块是能够被程序调用的函数
(B)通过定义宏可以选择或更新数据
(C)宏或模块都不能是窗体或报表上的事件代码
(D)宏可以是独立的数据库对象,可以提供独立的操作动作
答案(D)A不对,函数是模块中代码的一种形式,B不对,宏不能直接选择更新数据C 不对
3. 在Access数据库中,如果要处理具有复杂条件或循环结构的操作,则应该使用的对象()(A)窗体(B)模块(C)宏(D)报表
答案(B)只有模块能实现复杂的功能。
4. 下列不属于类模块对象基本特征的是()
(A)事件(B)属性(C)方法(D)函数
答案(D)查看对应的定义
5. 下列关于VBA事件的叙述中,正确的是()
(A)触发相同的事件可以执行不同的事件过程
(B)每个对象的事件都是不相同的
(C)事件都是由用户操作触发的
(D)事件可以由程序员定义
答案(A)显然相同的事件中可以执行不同的代码,打开模块编辑代码的一种方式就是在事件中添加代码,这里的代码是由编程者自己编写的,可以修改。
6. 发生在控件接收焦点之前的事件是()
(A)Enter (B)Exit (C)GotFocus (D)LostFocus
答案(A)以文本框为例,当光标“I”在一个文本框中(假设名字为text1)闪烁时,说明焦点在此控件中,鼠标点击到另一个文本框(假设名字为text2)中时,首先触发text1的Exit事件,然后触发text2的Enter事件。
7. 在VBA中,如果没有显示声明或用符号来定义变量的数据类型,变量的默认数据类型为()
(A)Boolean (B)Int (C)String (D)Variant
答案(D)。
查看课本208页最上方。
8. 下列数据类型中,不属于VBA的是()
(A)长整型(B)布尔型(C)变体型(D)指针型
答案(D)。
指针型是C语言中使用的,选项C中的变体型指的是Variant类型
9. 如下程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩(百分制)组成。
Type Stud
no As Integer
name As String
score(1 to 3)As Single
End Type
若对某个学生的各个数据项进行赋值,下列程序段中正确的是( )
(A)Dim S As Stud
Stud.no=1001
="舒宜"
Stud.score=78,88,6
(B)Dim S As Stud
S.no=1001
="舒宜"
S.score=78,88,96
(C)Dim S As Stud
Stud.no=1001
="舒宜"
Stud.score(1)=78
Stud.score(2)=88
Stud.score(3)=96
(D)Dim S As Stud
S.no=1001
="舒宜"
S.score(1)=78
S.score(2)==88
S.score(3)=96
答案(D)。
解释如下图,需要用到数组如何赋值的知识
10、下列变量名中,合法的是()
(A)4A (B)A-1 (C)ABC_1(D)private
答案(C)。
选项A以字母开头,选项B是一个运算表达式,选项D中private是VBA的关键字,参考课本中207页变量的命名规则
12、下列给出的选项中,非法的变量名是()
(A)Sum (B)Integer_2 (C)Rem (D)Form1
答案(C)。
Rem是关键字,代表注释
13、VBA中定义符号常量可以用关键字______。
(A)Const(B)Dim (C)Public (D)Static
答案(A)。
记忆,课本208页。
14、以下可以得到“2*5=10”结果的VBA表达式为_________。
(A)“2*5”&“=”&2*5(B)“2*5”+“=”+2*5
(C)2*5 &“=”&2*5 (D)2*5+“=”+2*5
答案(A)。
15、下列逻辑表达式中,能正确表示条件“x和y都是奇数”的是( )。
(A)x Mod 2=1 Or y Mod 2=1
(B)x Mod 2=0 Or y Mod 2=0
(C)x Mod 2=1 And y Mod 2=1
(D)x Mod 2=0 And y Mod 2=0
答案(C)。
为奇数等同于除以2余数是1
16、下列逻辑表达式中,能正确表示条件“x和y都是偶数”的是( )。
(A)x Mod 2=1 Or y Mod 2=1
(B)x Mod 2=0 Or y Mod 2=0
(C)x Mod 2=1 And y Mod 2=1
(D)x Mod 2=0 And y Mod 2=0
答案(D)。
为奇数等同于除以2余数是0
17、在使用Dim语句定义数组时,在默认情况下数组下标的下限为()
(A)0 (B)1 (C)2 (D)3
答案(A)。
参见课本上209页下方关于数组下标的说明。
18、语句Dim NewArray(10) As Integer的含义是______。
(A)定义了一个整型变量且初值为10
(B)定义了10个整数构成的数组
(C)定义了11个整数构成的数组
(D)将数组的第10元素设置为整型
答案(C)。
理解数组定义时小括号里的数值代表编号的上限,而不是数组中数据的个数,数组从0开始编号,所以有编号分别为0,1,2,3,4,5,6,7,8,9,10的11个整数
19、定义了二维数组A(2 to 5,5),该数组的元素个数为( )。
A.20
B.24
C.25
D.36
答案(B)。
同上题,行编号为2,3,4,5有4个,列编号为0,1,2,3,4,5有6个,组合起来有4*6=24 20、在模块的申请部分使用“Option Base 1”语句,然后定义二维数组A(2 to 5,5),则该数组元素个数为()
A.20
B.24
C.25
D.36
答案(A)通过定义题中的语句,编号下线改为1,所以行编号2,3,4,5有4个,列编号1,2,3,4,5有5个,共4*5=20个。
21、VBA程序的多条语句可以写在一行中,其分隔符必须使用符号()
(A):(B)’(C);(D),
答案(A)记忆
22、VBA程序中,可以实现代码注释功能的是()
(A)方括号[] (A)冒号: (A)双引号”(D)单引号’
答案(D)记忆
23、VBA程序流程控制的方式有()
A)顺序控制和分支控制B)顺序控制和循环控制
C)循环控制和分支控制D)顺序、分支和循环控制
答案(D)查看课本上流程控制的方式
24、假定窗体的名称为fmTest,则把窗体的标题设置为“Access Test”的语句是()
(A)Me = “Access Test”(B)Me.Caption = “Access Test”
(C)Me.text = “Access Test”(D) = “Access Test”
答案(B)记忆设置标题的语句,应该设置Caption属性,Caption翻译为中文就是标题25、下列能够交换变量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
答案(C)交换之前需要先把只保存到另一个变量中
26、Access的控件对象可以设置某个属性来控制对象是否可用(不可用时显示为灰色状态)。
需要设置的属性是
A)Default B)Cancel C)Enabled D)Visible
答案(C)。
记忆。
Enable的英文意思就是“使可用”
27、窗体上添加有3个命令按钮,分别命名为Command1、Command2和Command3。
编写Command1的单击事件过程,完成的功能为:当单击按钮Commandl时,按钮Command2可用,按钮Command3不可见。
以下正确的是
A)Private Sub Command1_Click() C)Private Sub Command1_Click()
Command2.Visible=True Command2.Enabled=True
Command3.Visible=False Command3.Visible=False
End Sub End Sub
B)Private Sub Command1_Click() D)Private Sub Command1_Click()
Command2.Enabled=True Command2.Visible=True
Command3.Enabled=False Command3.Enabled=False
End Sub End Sub
答案(C)。
需要理解Enable属性和Visible属性,和上体相同
28、22.
a=sqr(3)
b=sqr(2) c=a>b MsgBox
c+2
A)-1 B)1C)2 D)出错
答案:(B)参见黄色文本框中的说明
29、13. 在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )
a=0 : b=5 : c=6
MsgBox a=b+c
End Sub
窗体打开运行后,如果单击命令按钮,则消息框的输出结果为
A)l1 B)a=11 C)0 D)False
答案:(D)需要记忆,此时a=b+c中的=被当做了判断是否相等
30、在窗体中有一个标签Label0,标题为"测试进行中";有一个命令按钮Command1,事件代码如下:
Private Sub Command1_Click()
Label0.Caption="
标签"
End Sub
Private Sub Form_Load()
Form.Caption="举例"
Command1.Caption="移动"
End Sub 打开窗体后单击命令按钮,屏幕显示
答案(D )如图所示,每条语句所做设置在图中做了标注
31、在窗体中有一个标签Lb1和一个命令按钮Command1,事件代码如下: Option Compare Database
Dim a As String*10 ‘定义字符变量a ,其长度为10。
Private Sub Command1_Click()
a="1234"
b=Len(a) ‘注意a 的值是 “□□□□□□1234”
Me.Lb1.Caption=b
End Sub
打开窗体后单击命令按钮,窗体中显示的内容是
A)4 B)5 C)10 D)40
答案(C )
32、在窗体上添加一个命令按钮(名为Command1)和一个文本框(名为Text1),并在命令按钮中编写如下事件代码:
Private Sub Command1_Click( )
m=2.17
n=Len(Str(m)+Space(5))
Me!Text1 =n
End Sub
打开窗体运行后,单击命令按钮,在文本框中显示
A )5
B )8
C )9
D )10
答案(D )需要注意Str(m)的长度是5不是4
33、在窗口中有1个标签Label10和1个命令按钮Command1,Command1的事件代码如下: Private Sub Command1_Click()
D B C A
Label0.Left = Label0.Left+100
End Sub
打开窗口,单击命令按钮,结果是()
(A)标签向左加宽(B)标签向右加宽
(C)标签向左移动(D)标签向右移动
答案(D),需要理解该语句改变了标签控件的左边距,因此标签控件向右移动
34、在窗体上有1个命令按钮Command1,编写事件代码如下:
Private Sub Command_Click()
Dim d1 As Date
Dim d2 As Date
d1 = #12/25/2009#
d2 = #1/5/2010#
MsgBox DateDiff(“ww”, d1, d2)
End Sub
打开窗体运行后,单击命令按钮,消息框中输出的结果是()
(A) 1 (B)2(C)10 (D)11
答案(B)。
需要理解DateDiff函数的使用,ww参数代表比较两日期之间的周数,且以星期日的个数计数,因此是2,如果参数是w,也是统计周的个数,但是以实际发生的周数统计,本题中两日期间隔12天,所以如果参数是w,结果是1。
35、下列不是分支结构的语句是
A)If…Then…EndIf B)While…Wend
C)If…Then…Else…EndIf D)Select…Case…EndSelect
答案(B)。
不是分支是循环结构
36、下列不属于VBA函数的是()
(A)Choose (B)If(C)IIf (D)Switch
答案(B)If是关键字,用在分支结构中,但不是函数
37、在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:
Private Sub Command1_Click( )
A=75
If A>60 Then I=1
If A>70 Then I=2
If A>80 Then I=3
If A>90 Then I=4
MsgBox I
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果是
A)1 B)2C)3 D)4
答案(B)因为每条判断语句都要执行,执行完第一条判断句是I=1,第二句后I=2,第三句、第四局由于条件不满足,所以I值不变。
38、在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:
Private Sub Command1_Click( )
a=75
If a>60 Then
k=1
Else If a>70 Then
k=2
Else If a>80 Then
k=3
Else If a>90 Then
k=4
End If
MsgBox I
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果是
A)1B)2 C)3 D)4
答案(A)因为在该分支结构中从上至下,只要一个条件满足,就执行该条件下语句,其它分支不执行,所以只判断一次a>60成立,执行完k=1后直接到结尾。
39、窗体中有一个命令按钮run35,对应的事件代码如下:
Private Sub run35_Enter()
Dim num As Integer
Dim a As Integer
Dim b As Integer
Dim i As Integer
For i=1 To 10
num=InputBox("请输入数据:","输入",1)
If Int(num/2)=num/2 Then
a=a+1 ‘偶数个数累加;
Else
b=b+1 ‘奇数个数累加;
End If
Next i
MsgBox("运行结果:a=" & Str(a) & ",b=" &Str(b))
End Sub
A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
C)对输入的10个数据分别统计有几个整数,有几个非整数
D)对输入的10个数据分别统计有几个奇数,有几个偶数
答案(D)参见图中,对代码的解释。
40、窗体中有命令按钮Command32,其Click事件代码如下。
该事件的完整功能是:接收从键盘输入的10个大于0的整数,找出其中的最大值和对应的输入位置
Private Sub Command32_Click()
max_n=0
For i=1 To 10
Num = Val(InputBox(“请输入第” & i & “个大于0的整数:”))
If____ Then
max = num
max_n=i
End If
Next i
MsgBox(“最大值为第” & max_n & “个输入的” & max)
End Sub
程序空白处应该填入的表达式是()
(A)num>i (B)i<max (C)num>max(D)num<max
答案(C)需要理解max里储存的是当前的最大值,当它闭某个输入数字num小的时候需要把num里的值赋给max,所以比较条件是C。
41、有“For I=1 To 16 Step 3”决定的循环结构被执行()
(A)4次(B)5次(C)6次(D)7次
答案(C)当I分别等于1,4,7,10,13,16时被执行,共6次
42、运行下列程序段,结果是()
For m=10 To 1 Step 0
k=k+3
Next m
(A)形成死循环(B)循环体不执行
(C)出现语法错误(D)循环体执行一次后结束循环
答案(B)参见课本216页中部对决定循环是否执行和步长Step之间关系的说明
43、由“For i=1 To 9 Step -3”决定的循环结构,其循环体江北执行()
(A)0次(B)1次(C)4次(D)5次
答案(A)同上题,参见课本
44、在窗体中有一个命令按钮(名称为run34),对应的事件代码如下:
Private Sub run34_Click()
sum =0
For i=10 to 1 Step -2
sum = sum+i
Next i
Msgbox sum
End Sub
运行以上事件,程序的输出结果是
A)10 B)30 C)55 D)其他结果
答案(B)i的取值分别为10,8,6,4,2,所以sum的值10+8+6+4+2=30
45、若有以下窗体单击事件过程:
Private Sub Form_Click()
result = i
For i=1 To 6 Step 3
result = result*i
Msgbox result
End Sub
打开窗体运行后,单击窗体,则消息框的输出内容是()
(A )1 (B )4 (C)15 (D) 120
答案:(B )。
i 的取值为1,4,因此result 的取值为1*4=4。
46、设有如下程序: Private Sub Command1_Click() Dim sum As Double, x As Double sum=0 n=0
For i=1 To 5 x=n/i n=n+1 sum=sum+x Next i End Sub
该程序通过For 循环来计算一个表达式的值,这个表达式是
A )1+1/2+2/3+3/4+4/5
B )1+1/2+1/3+1/4+1/5
C )1/2+2/3+3/4+4/5
D )1/2+1/3+1/4+1/5:
答案(C )如图所示,为程序执行过程的说明。
47、在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码: Private Sub Command1_Click( )
s="ABBACDDCBA"
For I=6 To 2 Step -2
x=Mid(s,I,I) ‘BB
y=Left(s,I) ‘AB
z=Right(s,I) ‘BA
z=x & y & z ‘BBABBA
Next I MsgBox z
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果是
A )AABAA
B B )ABBABA
C )BABBA
D )BBABBA
答案(D )如图所示
48、42. 设有如下窗体单击事件过程
Private Sub Form_Click()
a = 1
For i=1 To 3 ‘i=1,2,3
Select Case i
Case 1,3 ‘i=1 i=3
a=a+1 a=2 a=5
Case 2,4 ‘i=2
a=a+2 a=4
End Select
Next i
MsgBox a
End Sub
打开窗体运行后,单击窗体,则消息框的输出的结果是
A )3
B )4
C )5
D )6
答案(C )
49、在窗体中有1个Command1的命令按钮,编写事件代码如下:
Private Sub Command1_Click()
Dim m(10)
For k=1 To 10
m(k) = 11-k
Next k x =6
Msgbox m(2+m(x))
m(x)=5, m(2+5)=4
End Sub
打开窗体,单击命令按钮,消息框的输出结果是()
(A )2 (B )3 (C )4 (D )5
答案(C )
50、在窗体中有1个run34的命令按钮,编写事件代码如下:
Private Sub run34_Click ()
f1=1
f2=1
For n=3 To 7 f = f1+f2 f1=f2 f2=f Next n
Msgbox f
End Sub
打开窗体,单击命令按钮,消息框的输出结果是()
(A )8 (B )13 (C )21 (D )其它结果
答案(B )具体过程如图所示该程序生成的数列 1,1,2,3,5,8,13实际上是斐波那契数列
51、假设有以下程序段
n=0
For i=1 To 3 i=1,2,3
For j=-4 To -1 j=-4,-3,-2,-1
n=n+1 循环结束后m 取值如下
Next j
Next i
运行完毕后,n的值是()
(A)0 (B)3(C)4(D)12
答案(D)i和j分别取3个和4个值,n=n+1共运行3*4=12次所以结果为12
52、在窗体中有一个命令按钮Command1和一个文本框Text1,编写事件代码如下:Private Sub Command1_Click()
For i = 1 To 4
x = 3 注意:i=1,2,3,4 都执行x=3 因此只有x=4有意义。
For j = 1 To 3 ‘j=1,2,3 3次
For k = 1 To 2 ‘k=1,2 2次
x = x + 3 ‘x=x+3 执行次数为3*2=6 x=21
Next k
Next j
Next i
Text1.Value = Str(x)
End Sub
打开窗体运行后,单击命令按钮,文本框Text1输出的结果是
A)6 B)12 C)18 D)21
答案(D)
53、在窗体中有一个命令按钮Command1和一个文本框Text1,编写事件代码如下:Private Sub Command1_Click()
x =4
For i = 1 To 4 ‘i=1,2,3,4 4次
For j = 1 To 3 ‘j=1,2,3 3次
For k = 1 To 2 ‘k=1,2 2次
x = x + 3 ‘x=x+3 执行次数为4*3*2=24次,结果为24*3+4=76 Next k
Next j
Next i
Text1.Value = Str(x)
End Sub
打开窗体运行后,单击命令按钮,文本框Text1输出的结果是
A)6 B)12 C)21 D)76
答案(D)
54、在窗体上添加一个命令按钮(名为Command1),然后编写如下事件过程
Private Sub Command1_Click ()
For i=1 To 4
x = 4
For j=1 To 3
x = 3 For k=1 To 2 x = x+6 Next k Next j Next i
MsgBox x
End Sub
打开窗体后,单击命令按钮,消息框的输出结果是
A )7
B )15
C )157
D )538
答案(B )最后只在i=4,j=3时执行两次 x=x+6,由于x=4和x=3两条语句放在了循环体汇总,前面执行的对x 值的修改都是无意义的。
55、在窗体上有一个命令按钮Command1和1个文本框Text1,编写事件代码如下: Private Sub Command1_Click()
Dim i,j,x
For i=1 To 20 step 2
x=0
For j=i To 20 step 3
x=x+1
Next j
Next i
Text1.Value = Str(x)
End Sub
打开窗体后,单击命令按钮,文本框的显示结果是
(A )1 (B )7 (C )17 (D )400
答案(A )同上题,有效的是i=19时的循环,此时j=19,因此x=x+1只执行一次
56、在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:
Private Sub Command1_Click( )
Dim a(10,10)
For m=2 To 4
For n=4 To 5
a(m,n)=m*n
Next n
Next m
MsgBox a(2,5)+a(3,4)+a(4,5)
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果是
A)22 B)32 C)42D)52
答案(C)
57、在窗体中,有1个文本框(名为n)接受输入的值,有一个命令按钮run,事件代码如下:
Private Sub run_Click()
result=""
For i=1 To Me!n i=1, 2, 3, 4 4次
For j=1 To Me!n j=1, 2, 3, 4 4次
result=result+"*" 内层:* * * *
Next j
* * * * □
Next i 将ASCII转换成字符MsgBox result
End Sub
打开窗体后,如果通过文本框输入的值为4,单击命令按钮后输出的图型是A)**** B) *
**** ***
**** *****
**** *******
C) **** D) ****
****** ****
******** ****
********** ****
答案(A)
58、在VBA中,错误的循环结构是
A) Do While 条件式B) Do Until 条件式
循环体循环体
Loop Loop
C) Do Until D) Do
循环体循环体
Loop 条件式Loop While 条件式
答案(C)。
Until关键字后面必须跟条件
59、假定有以下循环结构
Do Until 条件‘条件为假时执行循环体。
循环体
Loop
则正确的叙述是
A)如果"条件"值为0,则一次循环体也不执行
B)如果"条件"值为0,则至少执行一次循环体
C)如果"条件"值不为0,则至少执行一次循环体
D )不论"条件"是否为"真",至少要执行一次循环体
答案(B ),参照课本217页内容理解until 循环结构的使用。
60、若变量i 的初值为8,则下列循环语句中循环体的执行次数为()
Do While i<=17
i=i+2
Loop
(A )3次 (B )4次 (C )5次 (D )6次
答案(C )。
i=8,10,12,14,16时执行共5次
61、设有如下过程:
x=1
Do
x=x+2
Loop until________________
运行程序,要求循环执行3次后结束循环,空白处应该填入的语句是()
(A )x<=7 (B )x<7 (C )x>=7 (D )x>7
答案(C )。
对于until 语句,条件满足时结束循环,执行3次后x=7,所以条件为C ,如果设置为A ,第一次就会结束循环
62、以下程序段运行结束后,变量x 的值为()
x=2
y=4
Do
x=x*y
y=y+1
Loop While y<4
(A )2 (B )4 (C )8 (D )20
答案(C ),循环体中语句仅执行一次,x=2*4=8
63、下列四种形式的循环设计中,循环次数最少的是
A) a=5:b=8
B) a=5:b=8 DO
DO a=a+1 a=a+1 Loop While a<b Loop Until a<b
C) a=5: b=8 D) a=5:b=8 DO Until a<b DO Until a>b a=a+1 a=a+1 Loop Loop 答案(C )
64、在窗体中有一个名称为run35的命令按钮,单击该按钮从键盘接收学生成绩,如果输入的成绩不在0到100分之间,则要求重新输入;如果输入的成绩正确,则进入后续程序处理。
run35命令按钮的Click的事件代码如下:
Private Sub run35_Click()
Dim flag As Boolean
result = 0
flag=True
Do while flag
result = Val(InputBox("请输入学生成绩:","输入"))
If result >=0 And result <=100 Then
________
Else
MsgBox "成绩输入错误,请重新输入"
End If
Loop
Rem 成绩输入正确后的程序代码略
End Sub
程序中有一空白处,需要填入一条语句使程序完成其功能,下列选项中错误的语句是
A)flag= False B)flag=Not flag C)flag = True D)Exit Do
答案(C)用flag=True标记输入的数值是否正确,如果正确就可以跳过输入步骤,继续执行后续程序。
65、在窗体上有1个命令按钮Command1,编写事件代码如下:
Private Sub Command1_Click()
Dim y As Integer
y=0
Do
y=InputBox(“y=”)
If (y Mod 10)+Int(y/10) = 10 Then Debug.Print y;
Loop Until y=0
End Sub
打开窗体运行后,单击命令按钮,依次输入10、37、50、55、64、20、28、19、-19、0,立即窗口上输出的结果是()
(A)37 55 64 28 19 19 (B)10 50 20(C)10 50 20 0(D)37 55 64 28 19
答案(D)。
在这些语句中y Mod 10获得了y个位数,Int(y/10)获得了y十位上的数,所以If条件实际上就是判断输入的数个位+十位是不是等于10,选项D中的数都满足,需要验证的-19,它的余数是1,因为-19-(-2)*10=1,而它除以10取整是-1,所以不满足条件。
66、运行下列程序,输入数据8、9、3、0后,窗体中显示结果是()
Private Sub Form_Click()
Dim sum As Integer, m As Integer
sum =0
m=InputBox(“输入m”)
sum=sum+m
Loop Until m=0
MsgBox sum
End Sub
(A)0(B)17(C)20(D)21
答案(C)该程序段实现的其实就是将输入的数求和,如果输入的数为0则停止计算,所以结果是8+9+3=20
67、运行下列程序,结果是()
Private Sub Command32_Click()
f0=1:f1=1:k=1
Do While k<=5
f=f0+f1
f0=f1
f1=f
k=k+1
Loop
Msgbox “f=” & f
End Sub
(A)f=5(B)f=7(C)f=8(D)f=13
答案(D)。
与第50题有相似之处,都是求了斐波那契数列
68、有如下事件程序,运行该程序后输出结果是()
Private Sub Command33_Click()
Dim x As Integer, yAs Integer
x=1: y=0
Do Until y<=25
y=y+x*x
x=x+1
Loop
Msgbox “x=” & x & “,y=” & y
End Sub
(A)x=1,y=0(B)x=4,y=25(C)x=5,y=30(D)输出其它结果
答案(A)由于一开始y就满足条件y<=25,所以循环不执行。
69、运行下列程序,显示的结果是()
Private Sub Command34_Click()
i=0
Do
i=i+1
Loop While i<10
MsgBox i
(A)0 (B)1 (C)10 (D)11
答案(C)。
70. 下列程序的功能是计算N=2+(2+4)+(2+4+6)+…+(2+4+6+…+40)的值。
Private Sub Command34_Click()
t=0
m=0
sum = 0
Do
t =t+m
sum=sum+t
m=________
Loop While m<41
Msgbox “Sum=” & sum
End Sub
空白处应该填写的语句是()
(A)t+2 (B)t+1 (C)m+2 (D)m+1
答案(C)。
71、下列Case语句中错误的是
A)Case 0 To 10 B)Case Is>10
C)Case Is>10 And Is<50 D)Case 3,5,Is>10
注意Case语句参数说明:
Case 1,3,5,9 单个值或多个值,中间用逗号隔开;
Case 1 To 10 用To指定范围;
Case Is>=10 用Is指定条件;
72、在Access中,如果变量定义在模块的过程内部,当程序代码执行时才可见,则这种变
量的作用域为Array A)程序范围B)全局范围
C)模块范围D)局部范围
答案(D),如图所示X1,X2变量作用域为局
73、Sub 过程与Function 过程最根本的区别是
A)Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
B)Sub 过程可以使用Call语句或直接使用过程名调用,而Function过程不可以
C)两种过程参数的传递方式不同
D)Function过程可以有参数,Sub过程不可以
答案(A)参见课本10.7.2与10.7.3对过程和函数的定义
74、下列叙述中,正确的是()
(A)Sub过程无返回值,不能定义返回值类型
(B)Sub过程有返回值,返回值类型只能是符号常量
(C)Sub过程有返回值,返回值类型可在调用过程时动态决定
(D)Sub过程有返回值,返回值类型可由定义时As字句声明
答案(A)Function才有返回值,Sub过程没有,所以选A
75、使用Function语句定义一个函数过程,其返回值的类型
A)只能是符号常量B)是除数组之外的简单数据类型
C)可在调用时由运行过程决定D)由函数定义时As子句声明
例:Public Function f(m As Integer , n As Integer ) As Integer
76、在VBA中,下列关于过程的描述中正确的是
A)过程的定义可以嵌套,但过程的调用不能嵌套
B)过程的定义不可以嵌套,但过程的调用能嵌套
C)过程的定义和过程的调用均可以嵌套
D)过程的定义和过程的调用均不可以嵌套
答案(B)例子如图所示
77、在过程定义中由语句:
Private Sub GetData(ByRef f As Integer)其中ByRef的含义是()
(A)传值调用(B)传址调用(C)形式参数(D)实际参数
答案(B)参见课本上223页关于传值调用和传址调用的说明
78、在过程定义中由语句:
Private Sub GetData(ByVal data As Integer)其中ByVal的含义是()
(A)传值调用(B)传址调用(C)形式参数(D)实际参数
答案(A)参见课本上223页关于传值调用和传址调用的说明
79、若要在子过程Proc1调用后返回两个变量的结果,下列过程定义语句中有效的是
A)Sub Proc1(n,m)B)Sub Proc1(ByVal n,m)
C)Sub Proc1(n,ByVal m) D)Sub Proc1(ByVal n,ByVal m)
答案(A)不使用任何关键字默认为传址调用,可以返回变量的结果
80、要想在过程Proc调用后返回形参x和y的变化结果,下列定义语句中正确的是
A)Sub Proc(x as Integer,y as Integer)
B)Sub Proc(ByVal x as Integer,y as Integer)
C)Sub Proc(x as Integer,ByVal y as Integer)
D)Sub Proc(ByVal x as Integer,ByVal y as Integer)
答案(A)同上题。
81、如果在被调用的过程中改变了形参变量的值,但又不影响实参变量本身,这宗参数传递方式称为()
(A)按值传递(B)按地址传递(C)ByRef传递(D)按形参传递
答案(A)按值传递的性质,不改变实参的值,参见课本224页例子10.31.
82、在代码中定义了一个子过程
Sub P(a,b)
……
End Sub
下列调用该过程的形式中,正确的是()
(A)P(10,20)(B)Call P(C)Call P 10,20(D)Call P(10,20)
答案(D)需要代入实参,需要用Call声明调用
83、在窗体上有1个命令按钮Command1,编写事件代码如下
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x=12:y=32
Call Proc(x, y)
Debug.Print x;y
End Sub
Public Sub Proc(n As Integer, ByVal m As Integer)
n=n Mod 10
m=m Mod 10
End Sub
打开窗体运行后,单击命令按钮,窗体上输出的结果是()
(A)2 32(B)12 3 (C)2 2(D)12 32
答案(A),第一个参数是传址调用,因此代入后x的值被改变,是12除以10的余数2,第二个参数是传值调用,不改变y的值,因此结果为2 32
84、假定有如下的Sub过程:
Sub sfun( x As Single, y As Single ) ‘x=5 y=4
t = x ‘t=5
x = t/y ‘x=5/4=1.25
y = t Mod y ‘y=5 mod 4=1
End Sub ‘x=1.25 y=1
在窗体上添加一个命令按钮(名为Command1),然后编写如下事件过程:
Private Sub Command1_Click()
Dim a as single
Dim b as single
a = 5
b = 4
sfun a,b ‘x=a=5 y=b=4
MsgBox a & chr(10)+chr(13) & b
End Sub
打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为
A)1和1 B)1.25和1C)1.25和4 D)5和4
答案(B)分析如上
85、在窗体中有一个命令按钮Command1,编写事件代码如下:
Private Sub Command1_Click()
Dim s As Integer
S = p(1)+p(2)+p(3)+p(4)
Debug.Print s
End Sub
Public Function p(N As Integer)
Dim Sum As Integer
Sum = 0
For i=1 To N
Sum = Sum+i
Next i
p = Sum
End Function
打开窗体后,单击命令按钮,输出结果是()
(A)15 B)20 (C)25 (D)35
答案(B)函数p完成的功能是求累加和,例如N=3,则p求1+2+3的结果,所以结果是1+(1+2)+(1+2+3)+(1+2+3+4) = 20
86、在窗体中有一个名称为command1的命令按钮,然后编写如下事件代码:
Private Sub Command1_Click()
End Sub
Do
Do
Loop
Do
Loop
Loop
f=m
End Function
窗体打开运行后,单击命令按钮,则消息框的输出结果是
A)2 B)4 C)6 D)8
答案(C)分析如图所示。
其中绿色的数字标明执行第几次循环
模块与VBA选择题详解第21页/共21页
87、在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:
Public x As Integer ‘x为全局变量
Private Sub Command1_Click( )
x = 10 ‘x为全局变量
Call s1 ‘x=10+20=30 x为全局变量
Call s2 ‘x=0+20=20 x为局部变量
MsgBox x ’30
End Sub
Private Sub s1( )
x = x + 20 ‘x为全局变量
End Sub
Private Sub s2( )
Dim x As Integer ‘x为局部变量
x = x + 20 ‘x=0+20=20
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果为
A)10 B)30 C)40 D)50
答案(B)
88、在VBA中,能自动检查出来的错误时()
A)语法错误B)逻辑错误C)运行错误D)注释错误
答案(A)参见课本211页对语句的书写规则的介绍,键入代码按下回车后,代码可能一红色文本显示,并显示一个出错信息,因此语法错误可以被VBA检查出来。
89、要显示当前过程中的所有变量及对象的取值,可以利用的调试窗口是
A)监视窗口B)调用堆栈C)立即窗口D)本地窗口
答案(D)参见课本205页对本地窗口的介绍
90、不属于VBA提供的程序运行错误处理的语句结构
A)On Error Then 标号B)On Error Goto 标号
C)On Error Resume Next D)On Error Goto 0
答案(A)查看课本227页设置错误陷阱的三种方式。