VBA期末考试范围.docx
- 文档编号:30720148
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:44
- 大小:54.27KB
VBA期末考试范围.docx
《VBA期末考试范围.docx》由会员分享,可在线阅读,更多相关《VBA期末考试范围.docx(44页珍藏版)》请在冰豆网上搜索。
VBA期末考试范围
1、选择题:
1.VBA中定义符号常量可以用关键字
A)ConstB)DimC)PublicD)Static
2.Sub过程和Function过程最根本的区别是
A)Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
B)Sub过程可以使用Call语句或直接使用过程名,而Function过程不能
C)两种过程参数的传递方式不同
D)Function过程可以有参数,Sub过程不能有参数
3.定义了二维数组A(2to5,5),则该数组的元素个数为
A)25B)36C)20D)24
4.已知程序段:
s=0
Fori=1To10step2
s=s+1
i=i*2
Nexti
当循环结束后,变量i的值为a,变量s的值为b。
a.A)10B)11C)22D)16
b.A)3B)4C)5D)6
5.以下内容中不属VBA提供的数据验证函数是
A)IsTextB)IsDateC)IsNumericD)IsNull
6.已定义好有参函数f(m),其中形参m是整型量。
下面调用该函数,传递实参为5将返回的函数值赋给变量t.以下正确的是
A)t=f(m)B)t=Call(m)C)t=f(5)D)t=Callf(5)
7.在有参函数设计时,要想实现某个参数的“双向”传递,就应当说明该形参为“传址”调用形式。
其设置选项是
A)ByValB)ByRefC)OptionalD)ParamArray
8.在VBA代码调试过程中,能够显示出所有在当前过程中变量声明及变量值信息的是
A)快速监视窗口B)监视窗口C)立即窗口D)本地窗口
9.VBA的逻辑值进行算术运算时,True值被当作
A)0B)-1C)1D)任意值
10.VBA中不能进行错误处理的语句结构是
A)OnErrorThen标号B)OnErrorGoto标号
C)OnErrorResumeNextD)OnErrorGo100
11.VBA中用实际参数a和b调用有参过程Area(m,n)的正确形式是
A)Aream,nB)Areaa,bC)CallArea(m,n)D)CallAreaa,b
12.给定日期DD,可以计算该日期当月最大天数的正确表达式是
A)Day(DD)
B)Day(DateSerial(Year(DD),Month(DD),Day(DD)))
C)Day(DateSerial(Year(DD),Month(DD),0))
D)Day(DateSerial(Year(DD),Month(DD)+1,0)
13.下列关于宏和模块的叙述中,正确的是
A)模块是能够被程序调用的函数
B)通过定义宏可以选择或更新数据
C)宏或模块都不能是窗体或报表上的事件代码
D)宏可以是独立的数据库对象,可以提供独立的操作动作
14.有如下VBA代码,运行结束后,变量n的值是
n=0
Fori=1TO3
Forj=-4To-1
n=n+1
Nextj
Nexti
A)0B)3C)4D)12
15.假设有如下Sub过程:
Subsfun(xAsSingle,YAsSingle)
t=x
x=t/y
y=tmody‘mod求余计算例7mod4=3
EndSub
在窗体中添加一个命令按钮(名为Comnndl),编写如下事件过程
PrivateSubCommandl_Click()
DimaAsSinSle
DimbAsSinSle
a=5:
b=4
sfun(a,b)‘原书有错,改为:
sfuna,b或callsfun(a,b)
MsgBoxa&chr(10)+chr(13)&b‘chr(数值)的功能返回数值对应的字母
EndSub‘chr(10)=’返回1个换行符
?
?
?
?
?
‘chr(13)=’返回一个空格符号
注意:
a→x;b→y是按地址传递的,因此不能写成sfun5,4
chr与Asc互逆例asc(a)=97;chr(97)=aasc(chr(97))=97
打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为
A)1和1B)1.25和lC)1.25和4D)5和4
16.有如下VBA程序段:
sum=0
n=0
Fori=1TO5
x=n/i
n=n+1
slim=sum
Nexti
以上For循环计算sum,完成的表达式是
A)1+1/1+2/3+3/4+4/5B)1+1/2+1/3+1/4+1/5
C)1/2+2/3+3/4+4/5D)1/2+1/3+1/4+1/5
17.在窗体中有一个命令按钮runl6,对应的事件代码如下:
PrivateSubrunl6_Enter()
DimnumAsInteger
DimaAsInteger
DimbAsInteger.
DimiAsInteger
Fori=1To10
num=InputBox("请输入数据:
","输入",1)
ifInt(num/2)=num/2Then‘Int取整函数例int(3.5)=3
a=a+1
Else
b=b+1
Endlf
NextI
MsgBox("运行结果:
a="&Str(a)&",b="&Str(b))
EndSub‘str(123)=”123”将123转换成字符串
与val互逆。
例:
Val(str(123))=123
运行以上事件所完成的功能是
A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
c)对输入的10个数据求分别统计有几个是整数,有几个是非整数
D)对输人的10个数据求分别统计有几个是奇数,有几个是偶数
18.以下内容中不属VBA提供的数据验证函数是
A)IsNullB)IsDateC)lsNumericD)IsText
19.VBA"定时”操作中,需要设置窗体的“计时器间隔(TimerInterval)”属性值。
其计量单位是
A)微秒B)毫秒C)秒D)分钟
20.InputBox函数返回值的类型为
A)数值B)字符串(错误)注意:
正确答案为D)
C)变体D)数值或字符串(视输入的数据而定)InputBox$返回字符串
InputBox返回数值或字符串
21.在MsgBox(prompt,buttons,title,hetpfite,context)函数调用形式中必须提供的参数是
A)promptB)buttonsC)titleD)context
22.假定有以下循环结构(2005年9月)
DoUntil条件
循环体
Loop
则正确的叙述是。
A)如果“条件”值为0,则一次循环体也不执行
B)如果“条件”值为0,则至少执行一次循环体
C)如果“条件”值不为0,则至少执行一次循环体
D)不论“条件”是否为“真”,至少要执行一次循环体
解析:
Do…Until。
..Loop循环结构中,当条件值为假时,重复执行循环体,直至条件值为真,结束循环。
因此,如果条件值为0,则至少执行一次循环体。
23.窗体上添加有3个命令按钮,分别命名为Commandl、Command2和Command3。
编写Commandl的单击事件过程,完成的功能为:
当单击按钮Commandl时,按钮Command2可用,按钮Command3不可见。
以下正确的是。
(2005年9月)
A)PrivateSubCommandl_Click()
Command2.Visible=True
Command3.Visible=False
EndSub
B)PrivateSubCommandl_Click()
Command2.Enabled=true
Command3.Enabled=False
EndSub
C)PrivateSubCommandl_Click()
Command2.Enabled=True
Command3.Visible=False
EndSub
D)PrivateSubCommandl_Click()
Command2.Visible=True
Command3.Enabled=False
EndSub
解析:
Enabled属性用于判断控件是否可用,而Visible属性用于判断控件是否可见。
题目中要求Command2可用,而Command3不可见,则必须设置Command2的Enabled为True,并且设置Command3的Visible为False
24.假定有以下程序段:
(2005年9月)
n=0
fori=1to3
forj=-4to-1
n=n+1
nextj
nexti
运行完毕后,n的值是
A)0B)3C)4D)12
解析:
本题中,外层循环从1到3,要执行3次,而内层循环从-4到-1,执行4次,所以一共执行了4*3=12次循环。
而每执行一次循环n就加1,所以最后n的值为12。
25.下列逻辑表达式中,能正确表示条件“x和Y都是奇数”的是。
(2005年9月)
A)xMod2=1OryMod2=1B)xMod2=0OryMod2=0
C)xMod2=1AndyMod2=1D)xMod2=0AndyMod2=0
解析:
要使x和y都是奇数,则x和y除以2的余数都必须是1。
26.VBA程序的多条语句可以写在一行中,其分隔符必须使用符号。
(2006年4月)
A):
B)’C);D),
解析:
VBA程序在一行上写多个语句时用冒号“:
”作分隔符.
27.VBA表达式3*3\3/3的输出结果是。
(2006年4月)
A)0B)1C)3D)9
解析:
VBA的表达式运算符优先级顺序“*”和“/”高于“\”。
此表达式先计算3*3=9和3/3=1,最后计算9\1=9。
28.如果加载一个窗体,先被触发的事件是。
(2006年4月)
A)Load事件B)Open事件C)Click事件D)Dalick事件
29.以下程序段运行结束后,变量x的值为_____。
(2006年4月)
x=2
y=4
DO
x=x*y
y=y+1
LoopWhiley<4
A)2B)4C)8D)20
解析:
定义两个变量x=2、y=4,执行Do后的循环体语句:
x=x*y=2*4=8;y=y+1=4+l=5;此时y:
5,while语句为假退出循环。
由于执行了一次循环,所以x=8。
30.在窗体上添加一个命令按钮(名为Commandl),然后编写如下事件过程:
(2006年4月)
PrivateSubCommandl_Click()
Fori=1To4
x=4
Forj=1To3
x=3
Fork=1T02
x=x+6
Nextk
Nextj
Nexti
MsgBoxx
EndSub
打开窗体后,单击命令按钮,消息框的输出结果是。
A)7B)15C)157D)538
解析:
此题中应用三重嵌套循环,循环嵌套的执行,当外层循环执行一次,内层就要执行所有的循环:
第一个for语句对变量x赋值,x=4;
第二个for语句对变量x赋值,x=3;
第三个for语句对变最x赋值,x=x+6。
当i=1时,j=1,k执行其内部的两次循环,此时x赋值为3,当k=1时,x=x+6=3+6=9:
k=2时,x=x+6=96=15。
退出内循环到第二个for语句执行其剩余的循环,i=1、j=2时,k依旧执行其内部的两次循环,此后x还是等于15。
i=1、j=3时,因为第三个for语句始终对x的赋值为15,所以运算结果x始终等于15。
第二层循环完成后退回到第一层,执行其剩余的循环,步骤同上,因此x=15。
31.假定有如下的Sub过程:
(2006年4月)
Subsfun(xAsSingle,yAsSingle)
t=x
x=t/y
y=tMody
EndSub
在窗体上添加一个命令按钮(名为Commandl),然后编写如下事件过程:
PrivateSubCommandl_Click()
Dimaassingle
Dimbassingle
a=5
b=4
sfuna,b
MsgBoxa&chr(10)+chr(13)&b
EndSub
打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为。
A)1和1B)1.25和1C)1.25和4D)5和4
解析:
此题中设置了一个sfun()函数,进行除法运算和求模运算,为命令按钮(名为Commandl)编写事件,定义两变量a=5、b=4;调用此函数传递a、b的值给x、Y进行运算,t=x=5、y=4;x:
t/y;x=5/4=1.25(除法运算);Y=tMody=5mod4=1(求模运算)。
32.Sub过程与Function过程最根本的区别是。
(2006年9月)
A)Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
B)Sub过程可以使用Call语句或直接使用过程名调用,而Function过程不可以
C)两种过程参数的传递方式不同
D)Function过程可以有参数,Sub过程不可以
解析:
过程是模块的单元组成,分为两种类型:
Sub过程和Function函数过程。
VBA提供的关键字CALL,可显示调用一个子过程(Sub过程),但却不能调用执行函数过程(Function过程),此外Sub过程和Function过程都可以直接引用过程名来调用,因此选项B错误。
Sub过程可以使用参数(由调用过程传递的常数、变量或表达式),所以选项D错误。
选项C要视具体情况才能确定。
Sub过程执行操作但不返回值,Function过程可以返回值,这也是过程最根本的区别,所以选项A是正确的。
33.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:
(2006年9月)
PrivateSubCommandl_Click()
A=0:
b=5:
c=6
MsgBoxa=b+c
EndSub
打开窗体运行后,如果单击命令按钮,则消息框的输出结果是。
A)11B)a=11C)0D)False
解析:
程序中“MsgBoxa=b+c”表示在消息框中显示a与b+c的值比较的结果,由“a=0:
b=5:
c=6”可知,0!
=11,所以消息框的输出结果为False。
34.在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:
(2006年9月)
PrivateSubCommandl_Click()
Dima(10,10)
Form=2TO4
Forn=4TO5
a(m,n)=m*n
Nextn
Nextm
MsgBoxa(2,5)+a(3,4)+a(4,5)
EndSub
打开窗体运行后,单击命令按钮,则消息框的输出结果是。
A)22B)32C)42D)52
解析:
根据程序,a(2,5)+a(3,4)+a(4,5)=2*5+3*4+4*5=42
35.在窗体中添加一个命令按钮(名为Commandl)和一个文本框(名为Textl),并在命令按钮中编写如下事例代码:
(2006年9月)
PrivateSubCommandl_Click()
m=2.17‘Len(“abc”)=3
n=Len(Str$(m)+Space(5))‘Str$(2.17)=”□2.17”
Me.Textl=n‘Space(5)=”□□□□□”
EndSub
打开窗体运行后,单击命令按钮,在文本框中显示。
A)5B)8C)9D)10
解析:
程序中“n=Len(Str$(m)+Space(5))”的含义是算出字符串总长度,当把正数转换成字符串时,Str$函数在字符串前面留有一个空格,Space(数值表达式)返回由数值表达式确定的空格个数组成的空字符串。
Str$(m)表5个字符串,Space(5)表示5个字符串,所以n等于10。
36.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:
(2006年9月)
PrivateSubCommandl_Click()
A=75
IfA>60ThenI=1
IfA>70ThenI=2
IfA>80ThenI=3
1fA>90ThenI=4
MsgBoxI
EndSub
打开窗体运行后,单击命令按钮,则消息框的输出结果是。
A)1B)2C)3D)4
解析:
if条件表达式1Then条件表达式1为真时要执的语句序列。
在程序中,A=75,即A)70,执行IfA)70ThenI=2,所以I=2。
37.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:
(2006年9月)
PrivateSubCommandl_Click()
s="ABBACDDCBA"
ForI=6To2Step-2
x=Mid(s,I,I)
y=Left(s,I)
z=Right(s,I)
z=x&y&z
NextI
MsgBoxz
EndSub
窗体打开运行后,单击命令按钮,则消息框的输出结果是。
A)AABAABB)ABBABAC)BABBAD)BBABBA
解析:
Mid(字符表达式,数值表达式1,数值表达式2):
返回一个值,该值是从字符表达式最左端某个字符开始,截取到某个字符为止的若干个字符。
其中,数值表达式1的值是开始的字符位置,数值表达式2是终止的字符个数。
Left(字符表达式,数值表达式):
返回一个值,该值是从字符表达式左侧第1个字符开始截取的若干字符。
其中,字符字数是数值达式的值。
Right(字符表达式,数值表达式):
返回一个值,该值是从字符表达式右侧第1个字符开始截取的若干字符。
其中,字符字数是数值表达式的值。
For循环运行三次,最后一次循环结束,x="BB",y="AB",z="BBABBA"。
38.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:
(2006年9月)
PublicxAsInteger‘x为全局变量(位置:
通用声明段)
‘DimyAsInteger‘y为模块变量(位置:
通用声明段)
PrivateSubCommandl_Click()
x=10‘x为全局变量
Calls1
Calls2
MsgBoxx‘x为全局变量
EndSub
PrivateSub_s1()
x=x+20‘x为全局变量
EndSub
PrivateSub_s2()
DimxAsinteger‘x为局部变量
x=x+20‘x为局部变量
EndSub
打开窗体运行后,单击命令按钮,则消息框的输出结果是。
A)10B)30C)40D)50
解析:
本题使用Call调用子过程s1、s2。
x=10在调用子过程s1后,x=30,但由于在s1中直接使用变量,所以该值的作用范围是局部的,即只限于s1子过程中,没有传回。
在调用s2时,由于使用Dim…As关键字定义x,所以其值是模块范围的。
在消息框中输出的值,是从子过程s2传回的值(注意:
解释有错,返回应是调用S1时的x值。
)。
39.有如下语句:
(2007年4月)
s=Int(100*Rnd)
执行完毕后,s的值是——。
A)[0,99]的随机整数B)[0,100]的随机整数
C)11,99]的随机整数D)[1,100]的随机整数
解析:
随机数函数Rnd(<数值表达式>)用于产生一个小于1但大于。
的值,该数值为单精度类型。
Int(数值表达式)是对表达式进行取整操作,它并不做“四舍五人”运算,只是取出“数值表达式’’的整数部分。
40.InputBox函数的返回值类型是。
(2007年4月)
A)数值B)字符串
C)变体D)数值或字符串(视输入的数据而定)
解析:
InputBox的返回值是一个数值或字符串。
当省略尾部的“$”时,InputBox函数返回一个数值,此时不能输入字符串。
如果不省略“$”,则既可输入数值也可输人字符串,但其返回值是一个字符串。
因此,如果需要输入数值,并且返回的也是数值,则应省略“$”;而如果需要输入字符串,并且返回的也是字符串,则不能省略“$”。
如果不省略“$”,且输人的是数值,则返回字符串。
当需要该数值参加运算时,必须用Val函数将其转换为数值。
41.在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:
(2007年4月)
PrivateSubCommandl_Click()
a=75
Ifa>60Then
k=l
ElseIfa>70Then
k=2
ElseIfa>80Then
k=3
ElseIfa>90Then
k=4
EndIf
MsgBoxk
EndSub
打开窗体运行后,单击命令按钮,则消息框的输出结果是。
A)1B)2C)3D)4
解析:
a=75满足条件“a>60'’,执行THEN后的语句,将1赋值给变量k,然后结束条件判断,将k的值1输出到消息框,所以消息框的结果是1。
42.设有如下窗体单击事件过程:
(2007年4月)
PrivateSubForm_Click()
a=1
Fori=1To3
SelectCasei
Case1,3
a=a+1
Case2,4
a=a+2
EndSelect
Nexti
MsgBoxa
EndSub
打开窗体运行后,单击窗体,则消息框的输出结果是。
A)3B)4C)5D)6
解析:
SelectCase结构运行时,首先计算“表达式’’的值,它可以是字符串或者数值变量或表达式。
然,会依次计算测试每个Cas,表达式的值,直到值匹配成功,程序会转入相应的Case结构内执行语句。
本题,当i=1和3时,执行a=a+1,当i=2时,a=a+2,所以a=1+1+2+1=5。
43.设有如下程序:
(2007年4月)
PrivateSubCommandl_Click()
DimsumAsDouble,xAsDouble
Sum=0
n=0
Fori=1To5
x=n/i
n=n+1
sum=sum+x
Nexti
EndSub
该程序通过For循环来计算一个表达式的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 期末考试 范围