首页 VBA理论练习题

VBA理论练习题

举报
开通vip

VBA理论练习题精品文档第一部分(模块与VBA编程基础)一、选择题(1~17):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...

VBA理论练习题
精品文档第一部分(模块与VBA编程基础)一、选择题(1~17):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.在有参函数 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时,要想实现某个参数的“双向”传递,就应当说明该形参为“传址”调用形式。其设置选项是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,可以计算该日期当月最大天数的正确 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式是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个数据求分别统计有几个是奇数,有几个是偶数二、填空题(1~25)1.VBA的全称是VisualBasicforApplication。2.模块包含了一个声明区域和一个或多个子过程(以Sub开头)或函数过程(以Function开头)。3.说明变量最常用的方法,是使用Dim…As…结构.4.VBA中变量作用域分为3个层次,这3个层次是局部变量、模块变量和全局变量。5.在模块的说明区域中,用private关键字说明的变量是模块范围的变量;而用public或Global键字说明的变量是属于全局范围的变量。6.要在程序或函数的实例间保留局部变量的值,可以用Static关键字代替Dim。7.用户定义的数据类型可以用Type…TypeEnd关键字间说明。8.VBA的3种流程控制结构是顺序结构、选择结构和循环结构。9.VBA中使用的3种选择函数是IIf、Switch和Choose。10.VBA提供了多个用于数据验证的函数。其中IsDate函数用于合法日期验证;IsNumeric函数用于判定输入数据是否为数值。11.VBA的有参过程定义,形参用ByVal说明,表明该形参为传值调用;形参用ByRef说明,表明该形参为传址调用.12.VBA的错误处理主要使用OnError语句结构。13.OnErrorGoto0语句的含义是取消错误处理。14.OnErrorResumeNext语句的含义是忽略错误并执行下一条语句。15.VBA语言中,函数lnputBox的功能是输入数据对话框;Msgbos函数的功能是显示消息信息。16.在VBA中双精度的类型标识是Double。17.在VBA中,分支结构根据条件(或条件表达式)选择执行不同的程序语句。18.VBA的逻辑值在表达式当中进行算术运算时,True值被当作-1、False值被当作0来处理。19.VBA编程中,要得到[15,75]上的随机整数可以用表达式Int(15+61*Rnd).20.设有如下代码:X=1Dox=x+2LoopUntilx=7(或x>=7或x>6)运行程序, 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 循环体执行3次后结束循环,请在空白处填入适当的语句21.设有以下窗体单击事件过程:PrivateSubForm_Click()a=1fori=1to3SelectCaseiCase1,3a=a+1Case2,4a=a+2endSelectNextiMsgBoxaEndSub打开窗体运行后,单击窗体,则消息框的输出内容是5。22.在窗体中添加一个命令按钮(名为Commandl)和一个文本框(名为Textl),编写事件代码如下PrivateSubCommandlClick()DimaAsInteger,yAsIntegerx=5:y=7:z=0Me!Textl=""CallPl(x,x,z)Me!Textl=zEndSubPrivatep1(aAsInteger,bAsInteger,cAsInteger)c=a+bEndSub打开窗体后,单击命令按钮,文本框中显示的内容是1223.在下面的VBA程序段运行时,内层循环的循环次数是9Form=0To7Step3Forn=m-1Tom+1NextnNextm24.在窗体中使用一个文本框(名为numl)接受输入值,有一个命令按钮run,单击事件代码如下PrivateSubrun_Click()IfMe!num1>=60Then  Result="及格"ElseIfMe!numl>70Then   Result="通过"ElseIfMe!numl>85ThenResult="合格"EndSub打开窗体后,若通过文本框输入的值为85,单击命令按钮,输出结果是及格。25.在窗体中有一个名为Command25的命令按钮,Click事件代码如下。该事件的完整功能是:接受从键盘输入的10个大于0的整数,找出其中的最大值和对应的输入位置。请依据上述功能要求将程序补充完整。PrivateSubCommand25_Click()Max=0max_n=0Fori=lTo10num=Val(InputBox("请输入第"& i &"个大于0的整数:"))Ifnum>maxThenmax=nummax_n=iEndIfNextiMsgBox("最大值为第"&max_n&"个输入的"&max)EndSub第二部分(数据库编程)一、选择题(1~9)1.以下内容中不属VBA提供的数据验证函数是A)IsNullB)IsDateC)lsNumericD)IsText2.VBA"定时”操作中,需要设置窗体的“计时器间隔(TimerInterval)”属性值。其计量单位是A)微秒B)毫秒C)秒D)分钟3.能够实现从指定 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 集里检索特定字段值的函数是A)NzB)DSumC)RndD)DLookup4.DAO模型层次中处在最顶层的对象是A)DBEngineB)Workspace C)Database D)RecordSet5.ADO对象模型中可以打开RecordSet对象的是A)只能是Connection对象       B)只能是Command对象C)可以是Connection对象和Command对象D)不存在6.InputBox函数返回值的类型为A)数值B)字符串(错误)注意:正确 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 为D)C)变体D)数值或字符串(视输入的数据而定)InputBox$返回字符串InputBox返回数值或字符串7.ADO的含义是A)开放数据库互连应用编程接12  B)数据库访问对象C)动态链接库  D)Active数据对象8.执行下面的语句后,所弹出的信息框外观样式为MsgBox"AAAA",vbOKCancel+vbQuestion,"BBBB"注:vbQuestion等价于329.在MsgBox(prompt,buttons,title,hetpfite,context)函数调用形式中必须提供的参数是  A)promptB)buttonsC)titleD)context二、填空题(1~18)(p8---p13):1.VBA提供了多个用于数据验证的函数。其中IsDate函数用于合法日期验证;IsNumeric函数用于判定输入数据是否为数值。2.VBA语言中,函数InputBox的功能是输入数据对话框;Msgbox函数的功能是显示消息信息。3.VBA的“定时”操作功能是通过窗体的定时(Timer)事件过程完成。4.VBA中打开窗体的命令语句是DoCmd.OpenForm。5.Access的窗体或报表事件可以有两种方法来响应:宏对象和事件过程。6.窗体的计时器触发事件激发的时间间隔是通过计时器间隔(或interval)属性来设置。7.窗体中有两个命令按钮:“显示”(控件名为cmdDisplay)和“测试”(控件名为cmdTest)。当单击“测试”按钮时,执行的事件功能是:首先弹出消息框,若点击其中的“确定”按钮,则隐藏窗体上的“显示”按钮;否则直接返回到窗体中。PrivateSubcmdtest_Click()Answer=MsgBox("隐藏按钮?",vbOKCancel十vbQuestion,"Msg")IfAnswer=vbOKThenMe!cmddisplay.Visible=FalseEndIfEndSub   注意:vbOKCancel等价于1  vbQuestion等价于328.设计一个计时的Access应用程序。该程序界面如图所示,由一个文本框(名为Textl)、一个标签及两个命令按钮(一个标题为Start,命名为Commandl;另一个标题为Stop,命名为Command2)组成。程序功能为:打开窗体运行后,单击“Start'’按钮,则开始计时,文本框中显示秒数;单击“Stop”按钮,则计时停止;双击“Stop”按钮,则退出。请填空补充完整。DimiasintegerPrivateSubCommandlClick()i=0Me.TimerInterval=1000EndSubPrivateSubCommand2_Click()Me.TimerInterval=0EndSubPrivateSubCommand2_DblClick(CancelAsInteger)DoCmd.CloseEndSubPrivateSubForm_Load()Me.TimerInterval=0Me!Text1=0EndSubPrivateSubForm_Timer()i=i+1Me!Textl=iEndSub9.要实现以下图示效果的消息框显示,VBA代码语句为MsgBox"数据处理结束!",vbinformation,"消息"10.VBA中主要提供了三种数据库访问接口:ODBCAPI、DAO、ADO。11.DAO对象模型采用分层结构,其中位于最顶层的对象是DBEngine。12.Access的VBA编程操作本地数据库时,提供一种DAO数据库打开的快捷方式是CurrentDB().也提供一种ADO的默认连接对象是CurrentProject.Connection13.DAO模型中,主要的控制对象有DBEngine、Workspace、Database、RecordSetField和Error。14.ADO对象模型主要有Connection、Command、RecordSet、Field,而相应QueryDef和Error 5个对象。15.已知一个为“学生”的Access数据库,库中的表“stud"存储学生的基本情况信息,包括学号、姓名、性别和籍贯。下面程序的功能是:通过窗体向stud表中添加学生记录。对应“学号”、“姓名”、“性别”和“籍贯”的4个文本框的名称分别为:tNo、tName、tSex和tRes。当点击窗体上的“增加”命令按钮(名称为Commandl)时,首先判断学号是否重复,如果不重复则向“stud"表中添加学生记录;如果学号重复,则给出提示信息。当点击窗体上的“退出”命令按钮(名称为Command2)时,关闭当前窗体。依据要求功能,请将以下程序补充完整。PrivateSubForm_Load()‘打开窗口时,连接Access数据库SetADOcn=CurrentProject.ConnentionEndSubDimADOcnAsNewADODB.ConnectionPrivateSubCommandlClick()‘增加学生记录DimstrSQLAsStringDimADOrsAsNewADO.RecordsetSetADOrs.ActiveConnection=ADOcnADOrs.Open"Select学号FromStudWhere学号='"+tNo+"'"IfNotADOrs.EOFThenMsgBox"你输入的学号已存在,不能新增加!”Else StrSQL="InsertIntostud(学号,姓名,性别,籍贯)" StrSQL=strSQL+"Values('",+tNo+"','"+tName+"','"+tSex+tRes+"')"ADOrs.ExecuteStrSQL   MsgBox"添加成功,请继续!"EndIfADOrs.CloseSetADOrs=NothingEndSubPrivateSubCommand2_Click()Docmd.CloseEndSub16.已经设计出一个表格式表单窗体,可以输出教师表的相关字段信息。请按照以下功能要求补充设计:改变当前记录,消息框弹出提示“是否删除该记录?”,单击“是”,则直接删除该当前记录;单击“否”,则什么都不做。其效果图如下:’单击“退出”按钮,关闭窗体。PrivateSubbtnCaneel_Ctick()DoCmd.CloseEndSub’表格式表单窗体当前记录变化时触发PrivateSubForm​_Current()IfMsgBox("是否删除该记录?",vbQuestion+vbYesNo,"确认")=6(或vbYes)ThenMe.Recordset.DeleteEndlfEndSub17.已经完成一个窗体的部分设计。请按照以下功能要求补充设计:(1)原始文本处的文本框只接受英文大小写字符和汉字,其他字符输入一律忽略;(2)单击“复制”按钮,可将原始文本框的选择内容追加到目标文本框内;(3)目标文本框内字符数超过50,则清空。其效果图如下:代码如下:DimstrTempAsString’存放原始文本框选择文本’单击“复制”按钮,实施复制操作PrivateSubtCopy_Click()Me!tDestText:Nz(Me!tDestText)十strTempstrTemp=””IfLen(Me!tDestText)>50ThenMe!tDestText=NullEndSub’原始文本框接受英文大小字母和汉字输入PrivateSubtSourceText_KeyPress(KeyAsciiAsInteger)If(KeyAscii>=Ase("A")AndKeyAscii<=Ase("Z"))Or(KeyAscii>=Asc("a")AndKeyAscii<=Asc("2")) ThenElse’输入其他字符,忽略KeyAscii=0EndIfEndSub’返回原始文本框选择文本PrivateSubtSourceTextLostFocus()IfMe!tSourceText.SelLength>0ThenstrTemp=Me!tSourceText.SelText(或Mid(Me!tSourceText,Me!tSourceText.SelStart+1,Me!tSourceText.SelLength))ElsestrTemp=""EndIfEndSub18.Nz函数主要用于处理Null值时的情况;Dlookup函数的功用是从指定记录集里检索特定字段的值。第三部分(经典题解)一、选择题(1~33)1.假定有以下循环结构(2005年9月)DoUntil条件循环体Loop则正确的叙述是。A)如果“条件”值为0,则一次循环体也不执行B)如果“条件”值为0,则至少执行一次循环体C)如果“条件”值不为0,则至少执行一次循环体D)不论“条件”是否为“真”,至少要执行一次循环体解析:Do…Until。..Loop循环结构中,当条件值为假时,重复执行循环体,直至条件值为真,结束循环。因此,如果条件值为0,则至少执行一次循环体。2.窗体上添加有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为False3.假定有以下程序段:(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。4.下列逻辑表达式中,能正确表示条件“x和Y都是奇数”的是。(2005年9月)A)xMod2=1OryMod2=1B)xMod2=0OryMod2=0C)xMod2=1AndyMod2=1D)xMod2=0AndyMod2=0解析:要使x和y都是奇数,则x和y除以2的余数都必须是1。5.VBA程序的多条语句可以写在一行中,其分隔符必须使用符号。(2006年4月)A):B)’C);D),解析:VBA程序在一行上写多个语句时用冒号“:”作分隔符.6.VBA表达式3*3\3/3的输出结果是。(2006年4月)A)0B)1C)3D)9解析:VBA的表达式运算符优先级顺序“*”和“/”高于“\”。此表达式先计算3*3=9和3/3=1,最后计算9\1=9。7.现有一个已经建好的窗体,窗体中有一个命令按钮,单击此按钮,将打开tEmployee表,如果采用VBA代码完成,下面语句正确的是。(2006年4月)A)docmd.openform"tEmployee" B)docmd.openview"tEmployee"C)docmd.Opentable"tEmployee"D)docmd.Openreport"tEmployee"解析:docmd.openform使用openForm操作,可以从“窗体”视图、窗体“设计”视图、“打印预览”或“数据表”视图中打开一个窗体,可以选择窗体的数据输入与窗体数据输出方式并限制窗体所显示的记录。Docmd.openview可以使用openview操作在“数据表”视图、视图“设计”视图或打印预览中打开视图。当在“数据表”视图中打开视图时,该操作运行此命名的视图。可以选择该视图的数据项,并可限制视图显示的记录数。Docmd.openrepot使用OpenReport操作,可以在“设计”视图或“打印预览”中打开报表或立即打印报表,也可以限制需要在报表中打印的记录。Docmd.opentable使用OPentable操作,可以在“数据表”视图、“设计”视图或打印预览中打开表,也可以选择表的数据输入方式。8.Access的控件对象可以设置某个属性来控制对象是否可用(不可用时显示为灰色状态),需要设置的属性是一。(2006年4月)A)DefaultB)CancelC)EnabledD)Visible解析:Default为命令按钮确定属性,只有命令按钮支持此属性。Cancel为取消功能属性。Enabled决定控件是否允许操作。Visible决定控件是否可见。9.如果加载一个窗体,先被触发的事件是。(2006年4月)A)Load事件B)Open事件C)Click事件D)Dalick事件解析:Access加载窗体是运行指定的宏或用户定义的事件过程,然后显示窗体的记录。可以使用Load事件过程设置窗体或控件中的值,也可以设置窗体或控件的属性。Load事件发生在Open事件后及Resize事件前,不能被取消。Click事件发生在窗体单击时,没有Ddelick事件。10.以下程序段运行结束后,变量x的值为_____。(2006年4月)x=2y=4DOx=x*yy=y+1LoopWhiley<4A)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。11.在窗体上添加一个命令按钮(名为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。12.假定有如下的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(求模运算)。13.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是正确的。14.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:(2006年9月)PrivateSubCommandl_Click()A=0:b=5:c=6MsgBoxa=b+cEndSub打开窗体运行后,如果单击命令按钮,则消息框的输出结果是。A)11B)a=11C)0D)False解析:程序中“MsgBoxa=b+c”表示在消息框中显示a与b+c的值比较的结果,由“a=0:b=5:c=6”可知,0!=11,所以消息框的输出结果为False。15.在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:(2006年9月)PrivateSubCommandl_Click()Dima(10,10)Form=2TO4Forn=4TO5a(m,n)=m*nNextnNextmMsgBoxa(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=4216.在窗体中添加一个命令按钮(名为Commandl)和一个文本框(名为Textl),并在命令按钮中编写如下事例代码:(2006年9月)PrivateSubCommandl_Click()m=2.17‘Len(“abc”)=3n=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。17.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:(2006年9月)PrivateSubCommandl_Click()A=75IfA>60ThenI=1IfA>70ThenI=2IfA>80ThenI=31fA>90ThenI=4MsgBoxIEndSub打开窗体运行后,单击命令按钮,则消息框的输出结果是。A)1B)2C)3D)4解析:if条件表达式1Then条件表达式1为真时要执的语句序列。在程序中,A=75,即A)70,执行IfA)70ThenI=2,所以I=2。18.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:(2006年9月)PrivateSubCommandl_Click()s="ABBACDDCBA"ForI=6To2Step-2x=Mid(s,I,I)y=Left(s,I)z=Right(s,I)z=x&y&zNextIMsgBoxzEndSub窗体打开运行后,单击命令按钮,则消息框的输出结果是。A)AABAABB)ABBABAC)BABBAD)BBABBA解析:Mid(字符表达式,数值表达式1,数值表达式2):返回一个值,该值是从字符表达式最左端某个字符开始,截取到某个字符为止的若干个字符。其中,数值表达式1的值是开始的字符位置,数值表达式2是终止的字符个数。Left(字符表达式,数值表达式):返回一个值,该值是从字符表达式左侧第1个字符开始截取的若干字符。其中,字符字数是数值达式的值。Right(字符表达式,数值表达式):返回一个值,该值是从字符表达式右侧第1个字符开始截取的若干字符。其中,字符字数是数值表达式的值。For循环运行三次,最后一次循环结束,x="BB",y="AB",z="BBABBA"。19.在窗体中添加一个命令按钮(名称为Commandl),然后编写如下代码:(2006年9月)PublicxAsInteger‘x为全局变量(位置:通用声明段)‘DimyAsInteger‘y为模块变量(位置:通用声明段)PrivateSubCommandl_Click()x=10‘x为全局变量Calls1Calls2MsgBoxx‘x为全局变量EndSubPrivateSub_s1()x=x+20‘x为全局变量EndSubPrivateSub_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值。)。20.有如下语句:(2007年4月)s=Int(100*Rnd)执行完毕后,s的值是——。A)[0,99]的随机整数B)[0,100]的随机整数C)11,99]的随机整数D)[1,100]的随机整数解析:随机数函数Rnd(<数值表达式>)用于产生一个小于1但大于。的值,该数值为单精度类型。Int(数值表达式)是对表达式进行取整操作,它并不做“四舍五人”运算,只是取出“数值表达式’’的整数部分。21.InputBox函数的返回值类型是。(2007年4月)A)数值B)字符串C)变体D)数值或字符串(视输入的数据而定)解析:InputBox的返回值是一个数值或字符串。当省略尾部的“$”时,InputBox函数返回一个数值,此时不能输入字符串。如果不省略“$”,则既可输入数值也可输人字符串,但其返回值是一个字符串。因此,如果需要输入数值,并且返回的也是数值,则应省略“$”;而如果需要输入字符串,并且返回的也是字符串,则不能省略“$”。如果不省略“$”,且输人的是数值,则返回字符串。当需要该数值参加运算时,必须用Val函数将其转换为数值。22.在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:(2007年4月)PrivateSubCommandl_Click()a=75Ifa>60Thenk=lElseIfa>70Thenk=2ElseIfa>80Thenk=3ElseIfa>90Thenk=4EndIfMsgBoxkEndSub打开窗体运行后,单击命令按钮,则消息框的输出结果是。A)1B)2C)3D)4解析:a=75满足条件“a>60'’,执行THEN后的语句,将1赋值给变量k,然后结束条件判断,将k的值1输出到消息框,所以消息框的结果是1。23.设有如下窗体单击事件过程:(2007年4月)PrivateSubForm_Click()a=1Fori=1To3SelectCaseiCase1,3a=a+1Case2,4a=a+2EndSelectNextiMsgBoxaEndSub打开窗体运行后,单击窗体,则消息框的输出结果是。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。24.设有如下程序:(2007年4月)PrivateSubCommandl_Click()DimsumAsDouble,xAsDoubleSum=0n=0Fori=1To5x=n/in=n+1sum=sum+xNextiEndSub该程序通过For循环来计算一个表达式的值,这个表达式是。A)1+1/2+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/5解析:当i=1时,sum=0+0/1;当i=2时,sum:0+0/1+1/2;当i=3时,sum:0+0/1+1/2+2/3;i=4时,sum=0+0/1+1/2+2/3+3/4;当i=5时,sum:0+0/1+1/2+2/3+3/4+4/5,即For循环是用计算表达式“1/2+2/3十3/4+4/5”的。25.下列Case语句中错误的是。(2007年4月)A)Case0To10B)CaseIs>10C)CaseIs>10AndIs<50D)Case3,5,Is>10解析:Case表达式可以是下列4种格式之一:单一数值或一行并列的数值,用来与“表达式”的值相比较。成员间以逗号隔开;由关键字To分割开两个数值或表达式之间的范围;关键字Is接关系运算符;关键字CaseElse后的表达式,是在前面的Case条件[不满足时执行的。本题选项C中用的是逻辑运算符And连接两个表达式,所以不对,应该以逗号隔开。26.如下程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩(百分制)组成。TypeStudNoAsIntegernameAsStringscore(1to3)AsSingleEndType若对某个学生的各个数据项进行赋值,下列程序段中正确的是。(2007年4月)A)DimSAsStudB)DimSAsStudStud.no=1001S.no=1001Stud.name=”舒宜”S.name=”舒宜”Stud.score=78,88,96S.score=78,88,96C)DimSAsStudD)DimSAsStudStud.no=1001S.no=1001Stud.name=”舒宜”S.name=”舒宜”Stud.score(1)=78S.score(1)=78Siud.score(2)=88S.score(2)=88Stud.score(3)=96S.score(3)=96解析:用户定义数据类型是使用Type语句定义的数据类型。用户定义的数据类型可以包含一个或多个任意数据类型的元素。由Dim语句可创建用户定义的数组和其他数据类型。用户定义类型变量的取值,可以指明变量名及分量名,两者之间用句点分隔。本题中选项A、C中变量名均用的是类型名,所以错误。score(1to3)AsSingle定义了3个单精度数构成的数组,数组元素为score(1)-score(3)。27.使用Function语句定义一个函数过程,其返回值的类型——。(2007年9月)A)只能是符号常量B)是除数组之外的简单数据类型C)可在调用时由运算过程决定D)由函数定义时As子句声明解析:函数的参数和返回值都有特定的值与之相对应,函数的返回值由函数定义时As子句声明。28.在过程定义中有语句:(2007年9月)PrivateSubGetData(ByReffAsInteger)其中ByRef的含义是。A)传值调用B)传址调用C)形式参数D)实际参数解析:ByRey在过程定义中为可选项,表示该参数按地址传递。ByRey是VBA的默认选项。ByVal表示参数按值传递。29.在Access中,DAO的含义是。(2007年9月)A)开放数据库互相应用编辑窗IClB)数据库访问对象C)Active数据对象D)数据库动态连接库解析:数据库访问对象(DAO)是VBA提供的一种数据访问接口,包括数据库创建、表和查询的定义等工具,借助VBA代码可以灵活地控制数据访问的各种操作。30.下列不是分支结构语句的是。(2007年9月)A)If…Then…EndIfB)While…WendC)If…Then…Else…EndlfD)Select…Case…EndSelect解析:While…Wend为循环语句,其语句结构中没有分支语句。31.在窗体中使用一个文本框(名为n)接收输入的值,有一个命令按钮run,事件代码如下:PrivateSubrun_Click()Result=""Fori=1ToMe!nForj=1ToMe!nresult=result+"*"NextjResult=result+Chr(13)+Chr(10)NextiMsgBoxresultEndSub打开窗体后,如果通过文本框输入的值是4,单击命令按钮后输出的图形是。(2007年9月)A)****B)***************************C)****D)***************************************解析:典型的循环结构,For…Next语句的执行步骤见考点9,按其步骤执行最后结果是A。32.在窗体中有一个标签Lbl和一个命令按钮Commandl,事件代码如下:OptionCompareDatabaseDimaAsString*10‘a为字符型变量,其长度为10,作用域为模块PrivateSubCommandl_Click()a="1234"‘a=“■■■■■■1234”b=Len(a)Me.Lhl.Caption=bEndSub打开窗体后单击命令按钮,‘窗体中显示的内容是——。(2007年9月)A)4B)5C)10D)40解析:DimaAsString*10定义a为定长为10的字符串,Len(a)的值就是10,所以b的值也是10,最后窗体中显示的内容为10。33.在窗体中有一个标签Label0,标题为“测试进行中”;有一个命令按钮Commandl,事件代码如下:PrivateSubCommandl_Click()‘后执行LabelO.Caption="标签"EndSubPrivateSubForm_Load()‘先执行Form.Caption="举例"Commandl.Caption="移动"EndSub注意:窗体事件:格式举例:form_openOpen打开:Close关闭:Load加载:当窗体打开时,并且显示了它的记录时发生,显然此事件发生在Open之后。Unload卸载:当窗体关闭时,且记录被卸载,从屏幕上消失之前发生,此事件在Close之前发生。Resize调整大小:窗体第一次显示时发生。解析:本题所给命令按钮的事件为,单击命令按钮时标签信息显示“标签”,运行窗体显示“举例”,命令按钮显示“移动”,因此D正确。二、填空题1.数据结构分为逻辑结构和存储结构,循环队列属于逻辑结构。(2005年9月)解析:所谓数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构,它在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。而所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。因此,循环队列不需要存放元素之间的前后件关系,所以它属于逻辑结构。2.建立了一个窗体,窗体中有一个命令按钮,单击此按钮,将打开一个查询,查询名为“qT',,如果采用VBA代码完成,应使用的语句是Docmd.OpenQuery"qT"。(2005年9月)Docmd对象: 1.打开窗体操作:Docmd.OpenFormformname例:Docmd.OpenForm"VB1"2.打开报表操作:Docmd.OpenReportreportname例:Docmd.OpenReport"1报表的结构"3.关闭操作:Docmd.Close[objecttype][,objectname]例1:Docmd.CloseacForm"VB1"      ‘关闭窗体:VB1例2:Docmd.CloseacReport"报表1" ‘关闭报表:报表1例3:Docmd.Close           ‘关闭当前窗体例4:Docmd.Quit           ‘退出Access系统解析:在Access中,可以使用Docmd对象的RunMacro方法从VBA代码过程中运行宏。由于打开查询的宏操作为OpenQuery,所以从VBA中打开查询qT的代码为Docmd.OpenQuery"qT"。3.设有以下窗体单击事件过程:PrivateSubForm_Click()a=1Fori=1To3 SelectCasei  Case1,3   a=a+1  Case2,4   a=a+2 EndSelectNextiMsgBoxaEndSub打开窗体运行后,单击窗体,则消息框的输出内容是5.(2005年9月)解析:SelectCase结构运行时,首先计算“表达式’,的值。它可以是字符串或者数值变量或表达式。然后,会依次计算测试每个Case表达式的值,直到值匹配成功,程序会转入相应的Case结构内执行语句。本题中,当i=1和3时,执行a=a+1,当i=2时,执行a=a+2,所以a:1十l十2十1=5。4.在窗体中添加一个命令按钮(名为Commandl)和一个文本框(名为text1),然后编写如下事件过程:PrivateSubCommandl_Click()DimxAsInteger,yAsInteger,zAsIntegerx=5:y=7:z=0Me!Text1=""CallP1(x,y,z)Me!Textl=zEndSubSubpl(aAsInteger,bAsInteger,cAsInteger)c=a+bEndSub打开窗体运行后,单击命令按钮,文本框中显示的内容是12。(2005年9月)解析:由于VBA中,默认情况下,参数是按地址传递(ByRef),结果会返回。本题中z的值等于x/y,所以文本框中显示的内容为12。5.有一个VBA计算程序的功能如下,该程序用户界面由4个文本框和3个按钮组成。4个文本框的名称分别为Textl、Text2、Text3和Text4,3个按钮分别为清除(名为Commandl)、计算(名为Command2)和退出(名为Command3)。窗体打开运行后,单击“清除”按钮,则清除所有文本框中显示的内容;单击“计算”按钮,则计算在Textl、Text2和Text3三个文本框中输入的3科成绩的平均成绩并将结果存放在Text4女本框中;单击“退出”按钮则退出。试将下列程序填空补充完整。(2005年9月)PrivateSubCommandl_Click()Me!Textl=""Me!Text2=""Me!Text3=""Me!Text4=""EndSubPrivateSubCommand2_Click()IfMe!Textl=""OrMe!Text2=""OrMe!Text3=""ThenMsgBox"成绩输入不全"ElseMe!Text4=Val(Me!Text1)+Val(Me!Text2)+Val(Me!Text3))/3IfEndEndSubPrivateSubCommand3_Click()Docmd.QuitEndSub解析:由题目可知,Text4中存放的是3科成绩的平均成绩,所以要把3个科目的成绩加起来除以3,因此第1个空应该填Val(Me!Textl),获得输入科目的成绩;If…Else…Endlf语句中,缺少结束语句,所以第2个空应该填EndIfCommand3的功能是退出,而退出有两种,一种是退出窗体,一种是退出Access,如果是退出窗体,则使用Close方法,如果是退出Access,则使用Quit方法。6.在窗体中添加一个命令按钮,名称为Commandl,然后编写如下程序:PrivateSubCommandl​​_Click()Dims,IAsintegerS=0Fori=1To10S=S+iNextiMsgBoxsEndSub打开窗体运行后,单击命令按钮,则消息框的输出结果为55。(2006年4月)解析:For...Next语句能够重复执行程序代码区域特定的次数。此题中i赋初值l,步长默认为l,即求1到10的和,所以结果为55。7.在窗体中添加一个名称为Commandl的命令按钮,然后编写如下程序:PrivateSubs(ByValpAsInteger)P=p*2EndSubPrivateSubCommandlClick()DimiAsIntegeri=3Calls(i)Ifi>4Theni=i^2MsgBoxiEndSub注意1:PrivateSubs(ByValpAsInteger)  按值传递数据;注意2:PrivateSubs(ByRe
本文档为【VBA理论练习题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
在一起网络科技公司
本公司成立于2019年8月,公司员工20多名、有经验丰富的团队。擅长网络软件设计、制作;PPT设计;平面广告设计;品牌设计;软件和信息技术服务、合同范本制作
格式:doc
大小:401KB
软件:Word
页数:0
分类:
上传时间:2021-04-09
浏览量:3