(2)已知如下两程序段,执行程序段后,M的值分别是DimMDimMM=val(“24and57”)M=val(“2457”)a)572457b)242457c)24572457d)24572457说明:两个程序段,都是将变量M中的值转为数字。字符串都是从前往后转换,第1个程序段在转换到and时,无法识别,则停止,所以M的值为24。第2个程序段则是将字符串中的空格忽略,数字字符串转为数字,所以M的值是2457。(1)若变量i的初值为8,则下列循环语句中循环体的执行次数为DoWhilei=17i=i+2Loopa)3次b)4次c)5次d)6次说明:i=8,i=10,i=12,i=14,i=16的时候循环体中的语句执行,当i变为18的时候,条件i=17不满足,循环体结束。模块与VBA(3)已知程序段:s=0Fori=1to10step2s=s+1i=i*2NextI当循环结束后,变量i的值为_____,变量s的值为_____a)104b)113c)223d)164说明:这是一个循环语句,i的值从1逐步递增至10,每次递增的步长为2当i是1时,s=1,i=2,i=4当i是4时,s=2,i=8,i=10当i是10时,s=3,i=20,i=22当i=22时,循环体结束(4)VBA程序的多条语句可以写在一行中,其分隔符必须使用符号:a):b)‘c);d),模块与VBA(5)在窗体中添加一个名称为command1的命令按钮,然后编写如下事件代码:PrivateSubCommand1_Click()Dima(10,10)Form=2to4Forn=2to5a(m,n)=m*nNextnNextmMsgBoxa(2,5)+a(3,4)+a(4,5)EndSub窗体打开运行后,单击命令按钮,则消息框的输出结果是:a)22b)32c)42d)52说明:当m=2,n=2时,a(2,2)=4;当m=2,n=3时,a(2,3)=6;当m=2,n=4时,a(2,4)=8……当m=3,n=2时,a(3,2)=6;当m=3,n=3时,a(3,3)=9;当m=3,n=4时,a(3,4)=12……当m=4,n=2时,a(4,2)=8;当m=4,n=3时,a(4,3)=12;当m=4,n=4时,a(4,4)=16……依次类推,每一个二维数组的元素值,就是这个二维数组的下标值相乘,所以显示值是:2*5+3*4+4*5=42模块与VBA(6)VBA中去除前后空格的函数是____a)Ltrimb)Rtrimc)trimd)Ucase说明:Ltrim函数是去除字符串开始空格Rtrim函数是去除字符串尾部空格Ucase函数是将字符串中小写字母转换成大写字母(7)以下可以得到“2*5=10”结果的VBA表达为:a)“2*5”&“=”&2*5b)“2*5”+“=”+2*5c)2*5&“=”&2*5d)2*5+“=”+2*5说明:等式中2*5=是做为字符串显示,用意题目,而10则是数值,表示结果“&”连接运算符是强制两个字符串连接“+”连接运算符是两个字符串连接,但连接的必须是字符串b)和d)中后面那个+号连接的并不是字符串c)中的前面那个2*5是数值,并不能做为字符串,结果显示为:10=10模块与VBA模块与VBA(8)在窗体中添加一个名称为Command1的命令按钮,编写事件代码:PrivateSubCommand1_Click()s=“ABBACDDCAB”Fori=6to2Step-2x=Mid(s,i,i):y=left(s,i):z=right(s,i)z=x&y&zNextIMsgBoxzEndSub窗体打开运行后,单击命令按钮,则消息框的输出结果是:a)AABAABb)ABBABAc)BABBAAd)BBABAB说明:Mid中间取字符串函数,Left左取字符串函数,Right右取字符串函数当i=6时,x=“DDCAB”,y=“ABBACD”,z=“CDDCAB”,z=“DDCABABBACDCDDCAB”当i=4时,x=“ACDD”,y=“ABBA”,z=“DCAB”,z=“ACDDABBADCAB”当i=2时,x=“BB”,y=“AB”,z=“AB”,z=“BBABAB”当i=0时,循环体退出,显示z的值“BBABAB”(9)以下关于运算优先级比较,叙述正确的是:a)算术运算符逻辑运算符关系运算符b)逻辑运算符关系运算符算术运算符c)算术运算符关系运算符逻辑运算符d)以上均不正确模块与VBA(10)在窗体中添加一个名称为command1的命令按钮,然后编写如下程序:PublicxAsintegerPrivateSubCommand1_Click()x=10Calls1Calls2MsgBoxxEndSubPrivateSubs1x=x+20EndSubPrivateSubs2x=x+20EndSub窗体打开运行后,单击命令按钮,则消息框的输出结果:a)10b)30c)40d)50(11)定义了二维数组A(2to5,5),则该数组的元素个数为:a)25b)36c)20d)24说明:首先x=10接着调用s1过程中的x,x=10+20=30再接着调用s2过程中的x,x=30+20=50说明:第一维数组的下标是2-5第二维数组的下标下界缺省,默认为0,所以是0-5A(2,0),A(2,1),A(2,2),A(2,3),A(2,4),A(2,5)依次类推:4*6=24模块与VBA(12)VBA中定义符号常量可以用关键字:a)Constb)Dimc)Publicd)Static说明:Dim定义变量及数组;Public指定程序应用范围;Static定义变量,退出程序后变量值不保留。(13)窗体中添加了一个文本框和一个命令按钮(名称分别为tText和bCommand),并编写了相应的事件过程。运行此窗体后,在文本框中输入一个字符,则命令按钮上的标题变为“计算机等级考试”。以下实现上述操作的事件过程是:a)PrivateSubbCommand_Click()b)PrivateSubtText_Click()Caption=“计算机等级考试”bCommand.Caption=“计算机等级考试”EndSubEndSubc)PrivateSubbCommand_Change()d)PrivateSubtText_Change()Caption=“计算机等级考试”bCommand.Caption=“计算机等级考试”EndSubEndSub说明:a和c是设置命令按钮的单击事件过程,而题目则是对文本框控件编写过程b是设置文本框的单击事件过程,题目则是对文本框中值改变时编写事件过程模块与VBA(14)以下逻辑表达式中,能正确表示条件“x和y都是奇数”的是a)xMod2=1OryMod2=1b)xMod2=0OryMod2=0c)xMod2=1AndyMod2=1d)xMod2=0AndyMod2=0说明:MOD是求余数a和b中Or表示两都中满足一个,d是对x和y求偶数,所以都不符(15)现有一个已经建好的窗体,窗体中有一个命令按钮,单击此按钮,将打开“tEmployee”表,如果采用VBA代码完成,下面语句正确的是:a)Docmd.openForm“tEmployee”b)Docmd.openView“tEmployee”c)Docmd.openTable“tEmployee”d)Docmd.openReport“tEmployee”说明:a为打开窗体,b为打开视图,d为打开报表(16)在VBA中,如果没有显示声明变量的数据类型,变量的默认数据类型:a)Booleanb)Intc)Stringd)Variant说明:a为布尔型,b为整形,c为字符型,d为变体型(17)有以下程序段,I的返回值是:DimIAsIntegerI=Int(-3.25)a)-3b)3c)-4d)3.25说明:Int是求整数函数,对负数是求出不大于此数的最大整数模块与VBA(18)以下程序运行结束后,变量x的值为:x=2y=4Dox=x*yy=y+1Loopwhiley4a)2b)4c)8d)20(19)在窗体中添加一个命令按钮(名为Command1),然后编写如下代码:PrivateSubCommand1_Click()A=75IfA60ThenI=1IfA70ThenI=2IfA80ThenI=3IfA90ThenI=4MsgBoxIEndSub窗体打开运行后,单击命令按钮,则消息框的输出结果是:a)1b)2c)3d)4说明:循环体先执行后判断先执行x=2*4=8,y=4+1=5,后判断y4条件不成立,退出循环说明:第1次判断,A60,执行I=1第2次判断,A70,执行I=2第3次判断,A80,不成立,不执行第4次判断,A90,不成立,不执行模块与VBA(20)在窗体添加一个命令按钮(名为Command1),然后编写如下事件过程:PrivateSubCommand1_Click()Fori=1to4X=4Forj=1to3X=3Fork=1to2X=X+6NextkNextjNextiMsgBoxXEndSub打开窗体后,单击命令按钮,消息框的输出结果是:a)7b)15c)157d)538说明:当执行i和j循环体时,X的值都要重新定义,且第一次循环定义都一致,X并没有发生改变。而执行k循环体时,X的值发生改变,所以只需要执行k循环体则可得出X的值。K=1时,X=3+6=9K=2时,X=9+6=15模块与VBA(21)假定有以下程序段n=0fori=1to3forj=-4to-1n=n+1enxtjenxtI运行完毕后,n的值是:a)0b)3c)4d)12(22)Sub过程和Function过程最根本的区别是:a)Sub过程的过程名不能返回值,而Function过程能通过过程名返回值b)Sub过程可以使用Call语句或直接使用过程名调用,而Function过程不可以c)两种过程参数的传递方式不同d)Fuction过程可以有参数,Sub过程不可以(23)表达式4+5\6*7/8mod9的值是:a)4b)5c)6d)7说明:根据算术运算连接运算关系运算逻辑运算的优先级,此表达式应试理解为:(4+(5\((6*7)/8)))mod9说明:这是个双循环,n的值是每执行一次循环就加1,,每当i循环1次时,j就要循环4次,而i要循环3次,所以n=3*4=12模块与VBA(24)假定有如下的sub过程Subsfun(xassingle,yassingle)t=x:x=t/y:y=tmodyEndSub在窗体上添加一个命令按钮(名为Command1),然后编写如下事件过程:PrivateSubCommand1_Click()DimaassingleDimbassinglea=5:b=4sfuna,bMsgBoxa,bEndSub打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为:a)1和1b)1.25和1c)1.25和4d)5和4说明:在命令按钮事件过程中调用其它子过程首先将a和b的值按顺序赋予x和y,求得sfun中的值:t=x=5,x=t/y=5/4=1.25,y=tmody=5mod4=1然后再将子过程中的x和y的值按顺序再返回给命令按钮中a和b,所以a=x=1.25,b=y=1模块与VBA(25)有以下程序段,P的返回值是:DimMAsSingleDimNAsSingleDimPAsSingleM=Abs(-7):N=Int(-2.4)P=M+Na)9b)-9c)5d)4说明:程序段中首先对M求绝对值M=7,对N求整数(负数的求整是返回不大于该数的最大整数)N=-3,然后再将M和N的值赋给P,所以P=M+N=7+(-3)=41、某个窗体已编写以下事件过程。打开窗体运行后,单击窗体,消息框的输出结果为:PrivateSubForm_Click()DimkasInteger,nasInteger,masIntegern=10;m=1;k=1DoWhilek=nm=m*2