您好,欢迎访问三七文档
1、选择题:1.VBA中定义符号常量可以用关键字A)ConstB)DimC)PublicD)Static2.Sub过程和Function过程最根本的区别是A)Sub过程的过程名不能返回值,而Function过程能通过过程名返回值B)Sub过程可以使用Call语句或直接使用过程名,而Function过程不能C)两种过程参数的传递方式不同D)Function过程可以有参数,Sub过程不能有参数3.定义了二维数组A(2to5,5),则该数组的元素个数为A)25B)36C)20D)244.已知程序段:s=0Fori=1To10step2s=s+1i=i*2Nexti当循环结束后,变量i的值为a,变量s的值为b。a.A)10B)11C)22D)16b.A)3B)4C)5D)65.以下内容中不属VBA提供的数据验证函数是A)IsTextB)IsDateC)IsNumericD)IsNull6.已定义好有参函数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)ParamArray8.在VBA代码调试过程中,能够显示出所有在当前过程中变量声明及变量值信息的是A)快速监视窗口B)监视窗口C)立即窗口D)本地窗口9.VBA的逻辑值进行算术运算时,True值被当作A)0B)-1C)1D)任意值10.VBA中不能进行错误处理的语句结构是A)OnErrorThen标号B)OnErrorGoto标号C)OnErrorResumeNextD)OnErrorGo10011.VBA中用实际参数a和b调用有参过程Area(m,n)的正确形式是A)Aream,nB)Areaa,bC)CallArea(m,n)D)CallAreaa,b12.给定日期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=0Fori=1TO3Forj=-4To-1n=n+1NextjNextiA)0B)3C)4D)1215.假设有如下Sub过程:Subsfun(xAsSingle,YAsSingle)t=xx=t/yy=tmody‘mod求余计算例7mod4=3EndSub在窗体中添加一个命令按钮(名为Comnndl),编写如下事件过程PrivateSubCommandl_Click()DimaAsSinSleDimbAsSinSlea=5:b=4sfun(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,4chr与Asc互逆例asc(a)=97;chr(97)=aasc(chr(97))=97打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为A)1和1B)1.25和lC)1.25和4D)5和416.有如下VBA程序段:sum=0n=0Fori=1TO5x=n/in=n+1slim=sumNexti以上For循环计算sum,完成的表达式是A)1+1/1+2/3+3/4+4/5B)1+1/2+1/3+1/4+1/5C)1/2+2/3+3/4+4/5D)1/2+1/3+1/4+1/517.在窗体中有一个命令按钮runl6,对应的事件代码如下:PrivateSubrunl6_Enter()DimnumAsIntegerDimaAsIntegerDimbAsInteger.DimiAsIntegerFori=1To10num=InputBox(请输入数据:,输入,1)ifInt(num/2)=num/2Then‘Int取整函数例int(3.5)=3a=a+1Elseb=b+1EndlfNextIMsgBox(运行结果: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)IsText19.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)context22.假定有以下循环结构(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=TrueCommand3.Visible=FalseEndSubB)PrivateSubCommandl_Click()Command2.Enabled=trueCommand3.Enabled=FalseEndSubC)PrivateSubCommandl_Click()Command2.Enabled=TrueCommand3.Visible=FalseEndSubD)PrivateSubCommandl_Click()Command2.Visible=TrueCommand3.Enabled=FalseEndSub解析:Enabled属性用于判断控件是否可用,而Visible属性用于判断控件是否可见。题目中要求Command2可用,而Command3不可见,则必须设置Command2的Enabled为True,并且设置Command3的Visible为False24.假定有以下程序段:(2005年9月)n=0fori=1to3forj=-4to-1n=n+1nextjnexti运行完毕后,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=0C)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=2y=4DOx=x*yy=y+1LoopWhiley4A)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=1To4x=4Forj=1To3x=3Fork=1T02x=x+6NextkNextjNextiMsgBoxxEndSub打开窗体后,单击命令按钮,消息框的输出结果是。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=xx=t/yy=tModyEndSub在窗体上添加一个命令按钮(名为Commandl),然后编写如下事件过程:PrivateSubCommandl_Click()DimaassingleDimbassinglea=5b=4sfuna,bMsgBoxa&chr(10)+chr(13)&bEndSub打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为。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)两种过程参数的传递方式
本文标题:VBA试题
链接地址:https://www.777doc.com/doc-4138533 .html