2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析_第1页
2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析_第2页
2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析_第3页
2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析_第4页
2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年计算机计算机二级VB语言程序设计-Access数据库程序设计参考题库含答案解析一、单选题(共35题)1.在VB语言程序设计中,要使某变量在每次调用过程时保留上一次的值,应使用以下哪个关键字声明该变量?【选项】A.DimB.PrivateC.StaticD.Public【参考答案】C【解析】1.Static关键字声明的局部变量在过程结束后保留其值,下次调用时继续使用。2.Dim声明的变量在过程结束后释放,重新初始化为默认值。3.Private和Public用于模块或全局作用域,但无法在过程内保留局部变量的值。2.Access数据库设计中,关于索引的描述正确的是?【选项】A.主键字段会自动创建唯一索引B.聚集索引会改变记录的物理存储顺序C.一个表只能有一个唯一索引D.索引会降低数据查询速度【参考答案】A【解析】1.主键字段自动创建唯一索引以保障唯一性。2.Access不支持聚集索引(选项B错误)。3.一个表可建多个唯一索引,如主键+其他唯一约束(选项C错误)。4.合理索引会提升查询速度,但过多索引可能降低增删改效率(选项D错误)。3.VB中执行语句`Fori=1To10Step2`后,循环结束时i的值是?【选项】A.10B.11C.9D.不确定【参考答案】B【解析】1.终值为10,步长为2,最后一次循环i=9时执行,执行后i=9+2=11。2.循环终止条件是i超过终值(11>10),故结束。4.在Access窗体事件中,触发顺序正确的是?【选项】A.Open→Load→ActivateB.Load→Open→ActivateC.Activate→Open→LoadD.Open→Activate→Load【参考答案】A【解析】1.窗体打开时事件顺序:Open(打开)→Load(加载数据)→Activate(激活窗体界面)。2.Load事件在窗体加载数据时触发,Activate在窗体成为活动窗口时触发。5.以下VB程序片段可能引发死循环的是?【选项】A.`DoWhilex<10:x=x+1:Loop`B.`Whilek>0:k=k-1:Wend`C.`Forj=5To1Step-1:Next`D.`DoUntilTrue:Loop`【参考答案】D【解析】1.选项D中条件`UntilTrue`表示循环持续到True(恒假),导致无限循环。2.选项A、B、C均有明确的终止条件(x达到10、k减至0、j递减到1)。6.Access查询设计中,查找以“2023”开头的文本字段,WHERE子句应使用?【选项】A.`LIKE"2023*"`B.`LIKE"2023%"`C.`LIKE"2023#"`D.`LIKE"2023?"`【参考答案】A【解析】1.Access中通配符“*”代表任意长度字符,“%”在SQLServer中使用,Access不兼容(选项B错误)。2.“#”匹配单个数字,“?”匹配单个字符(选项C、D不适用开头匹配)。7.VB中函数`Mid("AccessDB",3,4)`的返回值是?【选项】A."cces"B."cess"C."Access"D."DB"【参考答案】A【解析】1.Mid函数语法:`Mid(字符串,起始位置,长度)`,起始位置从1计数。2.从第3字符“c”开始取4位,结果为“cces”。8.在Access中,确保“年龄”字段只能输入18至60之间的整数,应设置?【选项】A.默认值设为18B.有效性规则设为`Between18And60`C.输入掩码设为“00”D.格式设为“整数”【参考答案】B【解析】1.有效性规则通过`Between18And60`限制范围(选项B正确)。2.默认值无法限制输入(选项A错误)。输入掩码控制格式而非范围(选项C错误)。格式仅影响显示方式(选项D错误)。9.VB函数参数默认的传递方式是?【选项】A.按值传递(ByVal)B.按引用传递(ByRef)C.按地址传递(ByAdr)D.按名称传递(ByName)【参考答案】B【解析】1.VB默认参数传递方式为ByRef(按引用),修改形参会影响实参值。2.若需保护实参不被修改,需显式声明ByVal。10.在Access报表中,要实现按“部门”分组统计工资总和,需使用?【选项】A.排序与分组+文本框控件使用`=Sum([工资])`B.查询中使用GROUPBY子句C.报表属性直接设置聚合函数D.在页脚使用`Avg([工资])`【参考答案】A【解析】1.Access报表的分组统计需在“排序与分组”中设定分组字段,并在组页脚添加文本框控件输入`=Sum([工资])`。2.选项B的GROUPBY仅适用于查询,无法直接用于报表设计(需结合查询作为数据源)。11.在VB中,使用ADO连接Access数据库时,Connection对象的Open方法的参数通常应采用哪种连接字符串?【选项】A."Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Data\Test.mdb"B."Driver={MicrosoftAccessDriver(*.mdb)};DBQ=C:\Data\Test.mdb"C."DataSource=C:\Data\Test.mdb;Provider=Microsoft.ACE.OLEDB.12.0"D."Database=Test.mdb;Server=LocalHost;Trusted_Connection=Yes"【参考答案】A【解析】1.ADO连接Access数据库时,标准连接字符串格式为`Provider=Microsoft.Jet.OLEDB.4.0;DataSource=数据库路径`(用于Access2003及更早版本)。2.选项B为ODBC连接字符串格式,不适用于ADO的默认连接方式。3.选项C中Provider应置于DataSource前,且ACE.OLEDB.12.0适用于Access2007及以上版本,但本题未明确版本。4.选项D为SQLServer连接语法,与Access无关。12.执行下列VB代码后,变量`num`的值是什么?```vbDimcmdAsNewADODB.Commandcmd.ActiveConnection=conncmd.CommandText="INSERTINTOStudents(Name)VALUES('张三')"cmd.Executenum=cmd.Execute("SELECT@@IDENTITY")```【选项】A.新插入记录的自动编号字段值B.执行INSERT语句影响的记录条数C.Recordset对象的EOF属性值D.当前记录的RecordCount属性值【参考答案】A【解析】1.`@@IDENTITY`是Access中用于获取最近一次插入操作生成的自动编号字段值的系统变量。2.`cmd.Execute`返回影响的记录条数,但通过`SELECT@@IDENTITY`查询后,`num`会接收该查询的结果值(即自动编号值)。3.选项B混淆了直接执行INSERT与查询@@IDENTITY的区别。4.RecordCount和EOF需通过Recordset对象访问,与当前代码无关。13.在VB中,若要在Access数据库的Recordset中遍历所有记录,下列循环条件正确的是?【选项】A.`DoWhileNotrs.EOF`B.`DoUntilrs.EOF`C.`DoWhilers.RecordCount>0`D.`DoUntilrs.BOF`【参考答案】A【解析】1.遍历记录集的标准方法为:`DoWhileNotrs.EOF`(未到结尾时循环),配合`rs.MoveNext`移动指针。2.选项B的`Untilrs.EOF`等价于`WhileNotrs.EOF`,语法正确但非常规写法。3.选项C的`RecordCount`可能为-1(未支持计数),且循环条件无法控制指针位置。4.选项D的`BOF`用于判断是否到达开头,不适用于正向遍历。14.下列哪项操作能确保VB程序在操作Access数据库时发生错误后回滚事务?【选项】A.```vbOnErrorResumeNextconn.BeginTrans'执行操作conn.CommitTrans```B.```vbOnErrorGoToErrHandlerconn.BeginTrans'执行操作conn.CommitTransExitSubErrHandler:conn.RollbackTrans```C.```vbconn.BeginTrans'执行操作IfErr.Number<>0Thenconn.RollbackTransElseconn.CommitTransEndIf```D.```vbconn.BeginTrans'执行操作conn.CommitTransOnErrorRollback```【参考答案】B【解析】1.事务回滚需在错误处理中显式调用`RollbackTrans`。2.选项B通过错误跳转标签`ErrHandler`捕获异常并回滚,符合规范。3.选项A的`OnErrorResumeNext`会忽略错误,导致事务无法回滚。4.选项C中`Err.Number`检查时机不当,可能遗漏错误。5.选项D的`OnErrorRollback`语法错误,VB不支持该语句。15.在VB中,以下SQL语句动态拼接变量`age`(值为20),正确的是?【选项】A.`"SELECT*FROMStudentsWHEREAge="&age`B.`"SELECT*FROMStudentsWHEREAge="+age`C.`"SELECT*FROMStudentsWHEREAge='"&age&"'"`D.`"SELECT*FROMStudentsWHEREAge=age"`【参考答案】A【解析】1.Age字段为数值型时,拼接变量无需单引号,直接使用`&`连接(选项A正确)。2.选项B的`+`运算符在字符串与非字符类型连接时可能报错。3.选项C的错误在于为数值字段添加了单引号,导致类型不匹配。4.选项D未引用变量,实际执行时会查找名为“age”的字段而非变量值。16.VB中,以下关于`OnErrorResumeNext`的作用描述正确的是?【选项】A.忽略当前错误,继续执行下一行代码B.跳转到错误处理标签执行特定操作C.终止程序并显示错误信息D.自动回滚数据库操作【参考答案】A【解析】1.`OnErrorResumeNext`的作用是忽略当前行错误,继续执行下一行代码(选项A正确)。2.选项B描述的是`OnErrorGoTo`的功能。3.选项C和D与VB错误处理机制无关。17.在Access中,下列哪种方法可以通过VB代码以“数据表视图”打开窗体?【选项】A.`DoCmd.OpenForm"Form1",acFormDS`B.`DoCmd.OpenForm"Form1",acFormView`C.`DoCmd.OpenForm"Form1",acNormal`D.`DoCmd.OpenForm"Form1",acPreview`【参考答案】A【解析】1.`acFormDS`表示以数据表视图打开窗体(选项A正确)。2.`acFormView`为窗体视图,`acNormal`为默认视图,`acPreview`为打印预览,均不符合要求。18.VB中使用ADO操作Access数据库时,若要返回一个可前后滚动的静态记录集,应设置Recordset的哪个属性?【选项】A.`CursorType=adOpenStatic`B.`CursorType=adOpenForwardOnly`C.`CursorType=adOpenDynamic`D.`CursorType=adOpenKeyset`【参考答案】A【解析】1.`adOpenStatic`创建静态记录集副本,支持前后滚动(选项A正确)。2.`adOpenForwardOnly`仅支持向前滚动。3.`adOpenDynamic`和`adOpenKeyset`适用于可更新记录集,但动态性更强。19.下列VB代码执行后,可能引发错误的是?【选项】A.```vbDimsqlAsStringsql="UPDATEStudentsSETScore=90WHEREID=101"conn.Executesql```B.```vbDimsqlAsStringsql="SELECT*FROMStudentsWHERENameLIKE'张%'"Setrs=conn.Execute(sql)```C.```vbDimsqlAsStringsql="DELETE*FROMStudentsWHEREAge<18"conn.Executesql```D.```vbDimsqlAsStringsql="ALTERTABLEStudentsADDCOLUMNAddressTEXT(50)"conn.Executesql```【参考答案】C【解析】1.Access的DELETE语句语法为`DELETEFROM表名`,而非`DELETE*`(选项C错误)。2.选项A、B、D的SQL语法均正确。20.在VB中遍历Recordset对象时,若记录集为空,以下哪项描述正确?【选项】A.`rs.BOF`和`rs.EOF`均为TrueB.`rs.RecordCount`返回0C.`rs.MoveFirst`会触发错误D.`rs.Fields(0).Value`返回空字符串【参考答案】A【解析】1.当记录集为空时,`BOF`和`EOF`同时为True(选项A正确)。2.选项B错误:ADO中`RecordCount`可能返回-1(取决于游标类型)。3.选项C错误:空记录集下`MoveFirst`不会报错,但指针位置不变。4.选项D错误:空记录集中访问字段会引发“无当前记录”错误。21.在VB中,若执行以下循环语句:```vbDimiAsIntegeri=5DoWhilei>=1Printii=i-2Loop```程序结束后,输出的结果共有多少行?【选项】A.2B.3C.4D.5【参考答案】B【解析】循环起始时i=5,循环条件为i≥1。每次循环i减少2,执行流程为:1.第1次:i=5(输出5),i=3;2.第2次:i=3(输出3),i=1;3.第3次:i=1(输出1),i=-1;当i=-1时不满足循环条件,结束循环。共输出3行数据。22.在VB中,下列哪个属性用于获取列表框(ListBox)中当前选中项的索引值?【选项】A.ListIndexB.ListCountC.SelectedD.Text【参考答案】A【解析】ListIndex属性返回选中项的索引(首项为0,未选中时为-1);ListCount表示列表项总数;Selected为布尔数组(需指定索引);Text返回选中项的文本,但非索引值。23.在VB中执行以下过程:```vbSubTest(ByValxAsInteger,ByRefyAsInteger)x=x+10y=y+20EndSub```若调用前a=5,b=5,调用Test(a,b)后,a和b的值分别是?【选项】A.5,25B.15,25C.5,5D.15,5【参考答案】A【解析】ByVal传递参数副本,过程内修改不影响实参a(仍为5);ByRef传递地址,过程内修改直接影响实参b(5+20=25)。24.Access数据库中,若要在一个表中添加“入职日期”字段,且需限定日期范围为1990年1月1日至今,应使用哪种约束?【选项】A.默认值B.有效性规则C.输入掩码D.必填字段【参考答案】B【解析】有效性规则通过表达式(如`Between#1990-1-1#AndDate()`)限定字段取值范围;输入掩码控制输入格式;默认值提供初始值;必填字段仅强制非空。25.在Access查询设计中,若要统计“学生表”中每个班级的平均年龄,需使用的聚合函数是?【选项】A.SumB.CountC.AvgD.Max【参考答案】C【解析】Avg函数计算平均值;Sum求和;Count计数;Max取最大值。题目要求按班级分组统计年龄均值,故选Avg。26.VB中执行语句`MsgBox"执行完毕",vbOKCancel+vbInformation,"提示"`时,弹出的对话框包含哪些元素?【选项】A.“确定”“取消”按钮、信息图标B.“确定”按钮、警告图标C.“是”“否”按钮、问号图标D.“重试”“忽略”按钮、错误图标【参考答案】A【解析】`vbOKCancel`显示确定和取消按钮;`vbInformation`显示信息图标(圆圈内i)。其他选项的按钮组合或图标与参数不符。27.Access中若要在“订单表”与“产品表”间建立关系,要求删除产品时自动删除关联订单,应选择哪种参照完整性设置?【选项】A.级联更新B.级联删除C.实施参照完整性D.联接类型【参考答案】B【解析】级联删除保证主表(产品表)记录删除时自动删除从表(订单表)相关记录;级联更新仅同步主键变更;实施参照完整性是基础约束,不包含级联操作。28.在VB中,以下哪种循环结构至少执行一次循环体?【选项】A.`For...Next`B.`DoWhile...Loop`C.`DoUntil...Loop`D.`Do...LoopUntil`【参考答案】D【解析】`Do...LoopUntil`属于后判断循环,先执行一次再检查条件;其余选项均可能因初始条件不满足而跳过循环体。29.Access查询中,若要将“成绩表”中分数低于60分的记录标记为“不及格”,应使用哪种查询类型?【选项】A.选择查询B.更新查询C.生成表查询D.交叉表查询【参考答案】B【解析】更新查询可批量修改字段值(如将分数<60的“状态”字段设为“不及格”);选择查询仅筛选数据;生成表查询创建新表;交叉表查询用于行列汇总。30.在VB中,表达式`Len(Trim("Hello"))+InStr("World","r")`的结果是?【选项】A.5B.7C.8D.9【参考答案】B【解析】1.`Trim("Hello")`去除首尾空格后为"Hello",`Len`计算长度得5;2.`InStr("World","r")`返回字符"r"的位置(第3个字符,索引为3);3.表达式结果为5+3=8。31.在ADO对象模型中,用于从数据库检索数据并形成记录集的对象是以下哪一个?【选项】A.ConnectionB.CommandC.RecordsetD.Field【参考答案】C【解析】1.ADO对象模型中,Connection对象用于建立与数据库的连接,负责数据库的初始通信(A错误);2.Command对象用于执行特定SQL命令或存储过程(B错误);3.Recordset对象专门用于存储从数据库检索出的记录集,支持对数据的增删改查操作(C正确);4.Field对象表示记录集中的某个字段,属于Recordset的子对象(D错误)。32.以下VB表达式的结果为True的是?【选项】A.10\3=3B."123"+45=168C.Len("VB6.0")>4D.Mid("Database",4,3)="tab"【参考答案】C【解析】1.A项:\为整除运算符,10\3=3,但等式右侧为整数3而非浮点数3.333,因此实际结果为False;2.B项:"123"为字符串,+操作为字符串连接,"123"+45="12345",无法与168比较,结果报错;3.C项:Len("VB6.0")=5,5>4成立,结果为True(正确);4.D项:Mid函数从第4位起取3个字符为"aba",与"tab"不匹配。33.Access中,“有效性规则”属性的作用是?【选项】A.限制字段的输入格式B.控制字段的默认值C.约束字段取值范围或表达式逻辑D.定义字段的显示样式【参考答案】C【解析】1.有效性规则用于验证字段数据的逻辑合法性,如“>0”限制数值为正数;2.输入格式由“格式”属性控制(A错误);3.默认值由“默认值”属性设置(B错误);4.显示样式由“输入掩码”或“格式”属性定义(D错误)。34.VB中,若要将列表框(ListBox)的选项内容绑定到数据库字段,应设置的属性是?【选项】A.RowSourceB.RecordSourceC.BoundColumnD.ControlSource【参考答案】A【解析】1.RowSource用于指定列表框选项的数据源(如表或查询)(A正确);2.RecordSource用于指定窗体或报表的整体数据源(B错误);3.BoundColumn定义多列列表框中哪一列的值绑定到控件(C错误);4.ControlSource将控件值绑定到字段,但用于显示/编辑字段值,而非填充选项(D错误)。35.在SQL查询语句中,用于模糊匹配“以‘北京’开头”的条件的正确写法是?【选项】A.LIKE"?北京*"B.LIKE"北京%"C.LIKE"*北京*"D.LIKE"#北京*"【参考答案】B【解析】1.Access中,通配符“%”表示任意多个字符,“_”表示单个字符;2."北京%"匹配以“北京”开头的字符串(B正确);3."?北京*"中“?”无效(A错误);4."*北京*"匹配包含“北京”的任意位置(C错误);5."#"用于匹配单个数字(D错误)。二、多选题(共35题)1.在VB中,通过ADO访问Access数据库时,下列哪些操作可能导致数据库连接异常?()【选项】A.连接字符串中缺失"Provider=Microsoft.ACE.OLEDB.12.0"B.使用"SELECT*FROMTable"时未声明Recordset对象的CursorTypeC.数据库文件路径包含中文字符且未设置为绝对路径D.未在代码中显式调用Connection对象的Close方法【参考答案】AC【解析】A正确:缺少Provider定义将导致无法识别数据库引擎。B错误:CursorType未声明时默认采用adOpenForwardOnly,不会引发异常。C正确:路径含中文可能因编码问题导致文件访问失败。D错误:未显式关闭连接会被自动回收,仅影响性能而非引发异常2.关于VB中SQL注入防范,下列措施有效的是?()【选项】A.使用参数化查询替代字符串拼接B.限制数据库账号的存储过程执行权限C.在客户端用Replace函数过滤单引号D.设置Connection对象的Execute参数为adCmdText+adExecuteNoRecords【参考答案】AB【解析】A正确:参数化查询能隔离指令与数据。B正确:权限最小化可降低攻击影响。C错误:客户端过滤可绕过,且可能误处理合法引号。D错误:该参数仅优化执行效率,与安全无关3.下列VB代码中可正确验证TextBox输入是否为整数的有?()【选项】A.IfIsNumeric(Text1.Text)AndInStr(Text1.Text,".")=0ThenB.IfVarType(Text1.Text)=vbIntegerThenC.Try:DimiAsInteger=CInt(Text1.Text):Catch:EndTryD.IfText1.TextLike"###"Then【参考答案】AC【解析】A正确:检测数字且无小数点。B错误:VarType返回String类型而非内容类型。C正确:通过类型转换捕获异常。D错误:"###"模式只能匹配3位整数4.VB操作Access数据库时,Recordset对象的哪些LockType属性支持批量更新?()【选项】A.adLockReadOnlyB.adLockPessimisticC.adLockOptimisticD.adLockBatchOptimistic【参考答案】D【解析】仅D支持:批处理模式允许本地缓存多笔修改后统一提交。A为只读;B为逐行悲观锁;C为逐行乐观锁5.下列Access数据库设计中违反范式要求的是?()【选项】A.学生表中存储"课程名称"字段B.订单明细表未设置主键C.商品表包含计算字段"库存金额=单价*数量"D.使用DAO而非ADO访问数据【参考答案】ABC【解析】A违反第二范式:课程名依赖于非主键字段。B违反实体完整性:每表必须有主键。C违反第三范式:存在传递依赖。D与技术选型相关,与范式无关6.VB中关于OnError语句,描述错误的是?()【选项】A.OnErrorResumeNext会忽略所有运行时错误B.OnErrorGoTo0会禁用当前错误处理程序C.Err.Clear方法可清除最后产生的错误信息D.嵌套错误处理需在子过程中重新声明OnError【参考答案】A【解析】A错误:严重错误(如内存溢出)无法忽略。B、C、D均为正确描述7.下列哪些Access对象可以直接在VB中被ADO修改?()【选项】A.报表B.查询C.表数据D.窗体【参考答案】BC【解析】A/D为界面对象不可编程修改;B可通过ALTER语句修改查询定义;C可通过Recordset直接操作8.关于Access数据库的索引,下列说法正确的是?()【选项】A.主键字段自动创建唯一索引B.索引可加快数据检索但降低更新速度C.多字段索引中各字段排序规则必须相同D.唯一索引允许包含Null值【参考答案】AB【解析】A正确:主键强制唯一性。B正确:索引需维护B树结构。C错误:可分别指定ASC/DESC。D错误:唯一索引允许多个Null(视数据库引擎而定)9.VB中执行SQL删除操作时,下列哪些写法存在风险?()【选项】A."DELETEFROMUsers"B."DELETE*FROMUsersWHEREID="&txtID.TextC."DELETEFROMUsersWHEREIDIN(SELECTIDFROMTempTable)"D."DELETEFROMUsersWHERENameLIKE'%测试%'"【参考答案】AB【解析】A缺少WHERE会全表删除。B存在SQL注入风险。C/D为合法语句10.ADO的Command对象执行存储过程时,必须设置的参数包括?()【选项】A.CommandTextB.CommandTypeC.ActiveConnectionD.Parameters【参考答案】ABC【解析】A需指定存储过程名。B需设为adCmdStoredProc。C需绑定有效连接。D仅在存储过程有参数时需要11.在VB编程中,关于变量声明与作用域,以下说法正确的有哪些?【选项】A.在过程内部用Dim声明的变量仅在该过程内有效B.用Static声明的变量在过程结束后仍保留其值C.模块级变量若用Public声明,可在工程内所有模块中访问D.变量声明时必须指定数据类型,否则默认类型为Variant【参考答案】A,B,D【解析】A正确:过程内用Dim声明的局部变量作用域仅限于当前过程;B正确:Static声明的静态变量在过程结束后保留值;C错误:模块级Public变量仅在当前模块有效,跨模块访问需用全局声明;D正确:VB中未指定类型的变量默认为Variant类型。12.关于VB中数据库操作,下列哪些方法可能引发运行时错误?【选项】A.未关闭Recordset对象直接修改数据源B.使用ADODB.Connection执行未提交的事务C.动态拼接SQL语句未处理单引号D.未检查EOF属性直接读取记录【参考答案】C,D【解析】C正确:未处理单引号会导致SQL注入或语法错误;D正确:EOF为True时读取记录会触发"无当前记录"错误;A错误:Recordset未关闭不影响数据源修改;B错误:未提交事务仅影响数据持久性,不直接引发运行时异常。13.Access数据库设计中,以下关于主键的叙述正确的是?【选项】A.主键字段值可以重复B.主键能加速查询速度C.复合主键最多包含10个字段D.自动编号字段适合作为主键【参考答案】B,D【解析】B正确:主键通过索引提升查询效率;D正确:自动编号字段唯一且不可变,是理想主键;A错误:主键必须唯一;C错误:Access复合主键最多允许10个字段(实际考试中通常不超过5个)。14.VB中下列哪些方法可实现窗体间数据传递?【选项】A.使用Public模块级变量B.通过QueryString参数传递C.使用全局对象类D.直接修改目标窗体的控件属性【参考答案】A,C【解析】A正确:Public变量可在模块间共享;C正确:全局对象类封装数据便于跨窗体访问;B错误:QueryString属于Web应用技术;D错误:直接修改控件属性违反封装原则且可能引发对象引用错误。15.在Access的SQL视图中,哪些操作会触发数据表结构变更?【选项】A.ALTERTABLE增加CHECK约束B.UPDATE语句修改某个字段值C.DROPINDEX删除索引D.CREATEVIEW创建查询视图【参考答案】A,C【解析】A正确:ALTERTABLE修改表结构;C正确:删除索引属于结构变更;B错误:UPDATE仅修改数据;D错误:创建视图不改变物理表结构。16.关于VB的错误处理机制,正确的是?【选项】A.OnErrorResumeNext会跳过所有错误继续执行B.Err.Clear方法可清除当前错误描述C.错误处理程序必须放在过程开头D.未处理的错误会触发编译时警告【参考答案】B【解析】B正确:Err.Clear清除错误对象信息;A错误:仅跳过当前错误行继续后续代码;C错误:错误处理程序可位于过程任意位置;D错误:运行时错误不会触发编译警告。17.Access中下列哪些操作需要独占权限?【选项】A.压缩和修复数据库B.修改表字段数据类型C.创建关系图D.设置数据库密码【参考答案】A,D【解析】A正确:压缩修复需独占访问;D正确:密码设置需独占模式;B/C错误:普通设计操作无需独占权限。18.VB中关于过程参数传递,说法正确的是?【选项】A.ByVal传递方式会复制实参副本B.ByRef传递时可修改实参原始值C.数组参数只能使用ByRef传递D.可选参数必须放在参数列表末尾【参考答案】A,B,D【解析】A正确:ByVal传值创建副本;B正确:ByRef传址可修改原值;D正确:VB语法要求可选参数置后;C错误:数组可通过ByVal传递但实质仍传地址(考试中视为错误)。19.以下Access权限设置描述错误的是?【选项】A.管理员组用户可分配对象权限B.用户级安全机制已弃用C.SysAdmin角色可修改数据库结构D.只读权限允许创建临时表【参考答案】C,D【解析】C错误:SysAdmin角色无直接设计权限;D错误:只读权限禁止任何写操作;A正确:管理员具有权限分配权;B正确:Access2010后推荐使用ACCDB格式替代用户级安全。20.在VB数据库编程中,Recordset对象的哪些属性与方法需配合使用?【选项】A.MoveNext与EOFB.AddNew与UpdateC.BOF与MovePreviousD.Find与Bookmark【参考答案】A,B,D【解析】A正确:遍历记录需检测EOF;B正确:AddNew后必须用Update提交;D正确:Find方法可通过Bookmark定位;C错误:BOF检测首位,与MovePrevious无直接关联。21.在Access数据库设计中,关于主键的设定,以下描述正确的有哪些?【选项】A.主键的值可以重复,但必须遵循特定规则B.主键用于唯一标识表中的每一条记录C.主键只能包含一个字段,不能由多个字段组合D.设置主键后,Access会自动拒绝重复值的输入E.主键可以是“自动编号”类型的字段【参考答案】B、D、E【解析】1.主键的作用是唯一标识记录(B正确),且主键值必须唯一(A错误)。2.主键可以是单字段或多字段组合(C错误),设置后系统会自动禁止主键字段的重复输入(D正确)。3.“自动编号”字段常用于创建自增主键(E正确)。22.在VB中调用Access数据库时,以下哪些属于ADODB.Connection对象的合法方法?【选项】A.Open()B.Execute()C.MoveNext()D.Close()E.Update()【参考答案】A、B、D【解析】1.Open()用于打开数据库连接(A正确)。2.Execute()用于执行SQL命令(B正确)。3.Close()用于关闭连接(D正确)。4.MoveNext()是Recordset对象的方法(C错误)。5.Update()是Recordset对象的方法(E错误)。23.关于Access查询设计,以下说法正确的有哪些?【选项】A.参数查询运行时需手动输入条件值B.交叉表查询只能包含一个行标题和一个列标题C.操作查询包含删除、更新、追加和生成表四种类型D.所有查询结果都可直接修改并保存到原表E.总计查询必须包含GROUPBY子句【参考答案】A、C【解析】1.参数查询通过交互输入条件执行(A正确)。2.交叉表查询的行/列标题可包含多字段(B错误)。3.操作查询的四类功能正确(C正确)。4.聚合查询、交叉表查询等结果不可编辑(D错误)。5.总计查询可通过聚合函数实现,不一定需GROUPBY(E错误)。24.VB中关于Recordset对象属性的描述,正确的有哪些?【选项】A.BOF为True表示当前记录位于第一条记录之前B.EOF为True时,记录指针指向最后一条有效记录C.RecordCount属性总是能准确返回记录总数D.AbsolutePosition用于设置或返回当前记录的绝对位置E.CursorType为adOpenStatic时支持全数据滚动【参考答案】A、D、E【解析】1.BOF为True时记录指针位于首记录前(A正确)。2.EOF为True时指针位于末记录后(B错误)。3.RecordCount在CursorType为动态或静态时才准确(C错误)。4.AbsolutePosition可操作记录位置(D正确)。5.adOpenStatic游标支持全数据滚动(E正确)。25.在Access表设计中,以下字段类型与其特性匹配正确的有哪些?【选项】A.文本类型:最大长度为255个字符B.备注类型:不可用于排序和索引C.日期/时间类型:会忽略输入的时间值D.数字类型中的“整型”占2字节存储空间E.是否类型:实际存储为-1(True)和0(False)【参考答案】A、B、E【解析】1.文本类型最大255字符(A正确)。2.备注字段不能参与排序/索引(B正确)。3.日期/时间类型会保留时间部分(C错误)。4.整型占2字节为早期版本特性,Access中占4字节(D错误)。5.是否类型存储为-1和0(E正确)。26.关于VB的错误处理机制,以下描述正确的有哪些?【选项】A.OnErrorResumeNext会忽略所有错误B.OnErrorGoToLabel必须配合错误处理标签使用C.Err.Clear方法可以清除当前错误信息D.Err.Number为0表示无错误发生E.所有错误均可通过编译阶段完全消除【参考答案】B、C、D【解析】1.OnErrorResumeNext仅跳过当前错误(A错误)。2.OnErrorGoTo必须定义标签处理错误(B正确)。3.Err.Clear用于清除错误对象(C正确)。4.Err.Number=0表示无错误(D正确)。5.运行时错误无法通过编译完全规避(E错误)。27.在Access关系建立时,以下级联操作规则描述正确的有哪些?【选项】A.级联更新会同步修改子表的外键值B.级联删除主表记录时子表相关记录会自动删除C.级联规则必须同时设置“更新”和“删除”D.设置级联规则需先定义表间的一对多关系E.级联操作会覆盖子表的原有约束条件【参考答案】A、B、D【解析】1.级联更新会联动外键更新(A正确)。2.级联删除会删除关联子表记录(B正确)。3.级联更新和删除可独立设置(C错误)。4.必须先建立关系再设置级联(D正确)。5.级联操作不覆盖字段约束(如有效性规则)(E错误)。28.VB中以下哪些语句可实现循环结构?【选项】A.DoUntil...LoopB.While...EndWhileC.SelectCase...EndSelectD.ForEach...NextE.ExitSub【参考答案】A、B、D【解析】1.DoUntil用于条件循环(A正确)。2.While...Wend是VB支持的循环(B正确)。3.SelectCase为分支结构(C错误)。4.ForEach用于遍历集合循环(D正确)。5.ExitSub用于过程退出(E错误)。29.关于Access报表设计,正确的描述有哪些?【选项】A.报表页眉仅在首页顶部显示B.组页脚用于汇总分组数据C.文本框的“控件来源”只能是字段名D.报表必须基于查询作为数据源E.可添加计算字段实现动态统计【参考答案】B、E【解析】1.报表页眉每页均显示(A错误)。2.组页脚用于分组统计(B正确)。3.控件来源可以是表达式或函数(C错误)。4.报表可直接绑定表或查询(D错误)。5.支持表达式生成计算字段(E正确)。30.下列VB与Access交互的描述正确的有哪些?【选项】A.ADODB.Recordset需通过Connection对象打开B.Execute方法返回的受影响行数通过RecordsAffected获取C.Command对象必须显式设置ActiveConnection属性D.事务处理需使用BeginTrans、CommitTrans、RollbackTrans方法E.SQL注入可通过参数化查询完全避免【参考答案】A、B、D、E【解析】1.Recordset需通过Connection实例操作(A正确)。2.RecordsAffected保存Execute影响的行数(B正确)。3.Command的ActiveConnection可由Connection隐式关联(C错误)。4.事务三方法正确(D正确)。5.参数化查询是防SQL注入的有效手段(E正确)。31.在VB中,关于循环结构的使用,以下说法正确的是?【选项】A.`DoWhile...Loop`结构至少会执行一次循环体B.`ForEach...Next`可用于遍历集合或数组中的元素C.`ExitFor`语句可以退出任何类型的循环D.`DoUntil...Loop`会在条件为真时终止循环【参考答案】B、D【解析】A错误:`DoWhile...Loop`先判断条件,若初始条件不满足则循环体一次也不执行。B正确:`ForEach...Next`专用于遍历集合或数组元素。C错误:`ExitFor`仅用于退出`For`循环(如`For...Next`),不能用于`Do`循环。D正确:`DoUntil...Loop`当条件为`True`时终止循环(`Until`意为“直到条件满足则停止”)。32.在Access数据库设计中,以下关于“操作查询”的描述正确的是?【选项】A.生成表查询属于操作查询B.更新查询可批量修改表中数据C.交叉表查询是操作查询的一种D.追加查询可用于将数据插入另一张表【参考答案】A、B、D【解析】A正确:生成表查询(Make-TableQuery)会创建新表,属于操作查询。B正确:更新查询(UpdateQuery)可批量修改记录。C错误:交叉表查询属于“选择查询”,用于数据汇总展示而非修改数据。D正确:追加查询(AppendQuery)将数据插入到其他表中。33.在VB中,以下关于数组动态声明的描述正确的是?【选项】A.`ReDim`语句可重新定义已声明数组的维度B.`Preserve`关键字可保留数组原有数据但仅能修改最后一维C.`Dimarr(5)`声明的是一个包含6个元素的静态数组D.动态数组未初始化时可直接赋值【参考答案】A、B、C【解析】A正确:`ReDim`用于动态调整数组大小。B正确:`ReDimPreserve`保留原有数据,且仅允许修改最后一维大小。C正确:VB中数组默认下标从0开始,`Dimarr(5)`包含索引0到5共6个元素。D错误:动态数组需先用`ReDim`初始化后才能赋值。34.关于Access中的SQL查询,以下说法正确的是?【选项】A.`GROUPBY`必须与聚合函数(如SUM、AVG)一起使用B.`INNERJOIN`仅返回两表中完全匹配的记录C.`WHERE`子句不能用于多表连接条件D.`ORDERBY`默认按升序排列【参考答案】A、B、D【解析】A正确:`GROUPBY`需搭配聚合函数对分组数据统计。B正确:`INNERJOIN`返回两表匹配的记录,非匹配项会被排除。C错误:`WHERE`可用于多表连接条件(但通常建议用`ON`子句)。D正确:`ORDERBY`默认升序(`ASC`),降序需显式指定`DESC`。35.在VB窗体事件中,以下事件触发的顺序正确的是?【选项】A.Initialize→Load→Activate→ResizeB.Load→Initialize→Activate→PaintC.Activate→Load→QueryUnload→TerminateD.Load→Resize→Paint→Unload【参考答案】A、D【解析】A正确:窗体初始化顺序为:Initialize(初始化)→Load(加载)→Activate(激活)→Resize(调整大小)。D正确:窗体显示后触发Paint(绘制),关闭时触发Unload(卸载)。B中Initialize应在Load前;C中Load应在Activate前。三、判断题(共30题)1.在VB中,使用Static声明的局部变量在过程调用结束后变量值会被保留。【选项】正确/错误【参考答案】正确【解析】Static关键字定义的局部变量具有静态生命周期,其值在过程调用结束后不会销毁,下次调用时保留上一次的值。而Dim声明的局部变量在过程结束时会自动释放,值不会被保留。2.在VB中,可通过设置控件的默认属性直接访问其核心功能(如文本框的Text属性无需显式写出属性名即可赋值)。【选项】正确/错误【参考答案】错误【解析】VB中控件没有“默认属性”概念,所有属性必须显式指定。例如为文本框赋值必须使用`Text1.Text="内容"`,直接写`Text1="内容"`会报错,这与部分编程语言(如VBA)的特性不同。3.VB中,未指定参数传递方式时(如`SubTest(aAsInteger)`),默认按引用(ByRef)传递参数。【选项】正确/错误【参考答案】正确【解析】VB默认参数传递方式为ByRef(按引用传递),若需按值传递必须显式声明为ByVal。例如`SubTest(ByValaAsInteger)`表示传递副本,原变量值不受过程内修改的影响。4.在Access的查询设计中,GROUPBY子句必须与聚合函数(如SUM、COUNT)同时使用,否则查询无法执行。【选项】正确/错误【参考答案】正确【解析】GROUPBY用于对数据进行分组统计,必须搭配聚合函数(如MAX、AVG等)才能明确分组后的计算逻辑。单独使用GROUPBY而无聚合函数会导致语法错误。5.Access表中允许将主键字段设置为允许重复值或空值(Null)。【选项】正确/错误【参考答案】错误【解析】主键(PrimaryKey)必须满足唯一性和非空性两条约束:同一字段的值不可重复,且不允许为Null。若需允许空值,应使用普通字段而非主键。6.在Access中建立表间关系时,若启用“级联删除”选项,删除主表记录会自动删除子表所有相关记录。【选项】正确/错误【参考答案】正确【解析】启用“级联删除”后,删除主表(一方)记录时,Access会自动删除子表(多方)中与该记录关联的所有数据,确保数据完整性。未启用时,若子表存在关联记录,主表删除操作将被阻止。7.VB的窗体的Load事件中可直接修改非静态控件的属性(如Label的Caption),无需等待窗体完全加载。【选项】正确/错误【参考答案】错误【解析】窗体Load事件触发时,窗体及控件尚未完成可视化加载。此时修改控件属性可能导致运行时错误(如对象未初始化),应在窗体的Activate事件或使用`Me.Show`后操作控件属性。8.Access中使用IsNull条件可以筛选字段值为空字符串("")的记录。【选项】正确/错误【参考答案】错误【解析】Null表示数据缺失或未定义,空字符串("")是人为输入的占位符。IsNull仅检测Null值,要筛选空字符串需用`字段名=""`。两者在逻辑和存储方式上均不同。9.VB的DoEvents函数会暂停当前程序运行以响应其他事件(如用户点击)。【选项】正确/错误【参考答案】错误【解析】DoEvents不会暂停程序,而是短暂让出CPU控制权以便处理其他事件(如界面刷新),但当前代码仍会继续执行。若需暂停程序,应使用Sleep函数或定时器控件。10.Access的IIf函数与其在VB中的行为一致,均会分别计算所有分支表达式的值。【选项】正确/错误【参考答案】正确【解析】IIf是“立即求值”函数,无论条件是否满足,其所有分支表达式(如IIf(A>0,B/C,D*E)中的B/C和D*E)均会被预先计算。需注意除零错误或无效操作的风险,与If…Then…Else的条件短路执行机制不同。11.在VB中,执行语句"Fori=1To10Step2"时,循环体实际执行次数为5次。【选项】A.正确B.错误【参考答案】A.正确【解析】步长为2时,循环变量i的取值依次为1、3、5、7、9,满足i≤10的条件共执行5次。当i=11时超出终值,循环终止。12.Access中,“删除查询”执行后可通过撤销操作恢复被删除的数据。【选项】A.正确B.错误【参考答案】B.错误【解析】删除查询属于操作查询,执行后直接修改数据库内容且不可撤销,与手动删除记录不同,无法通过Ctrl+Z或撤销按钮恢复。13.VB中,若过程参数使用ByRef声明,则调用时可传递常量作为实参。【选项】A.正确B.错误【参考答案】B.错误【解析】ByRef为按地址传递,要求实参必须是变量或表达式,不能为常量。若实参为常量,VB会自动转为ByVal方式传递。14.Access表设计视图中,主键字段允许设置为“允许空字符串”属性。【选项】A.正确B.错误【参考答案】B.错误【解析】主键字段必须满足实体完整性约束,既不能重复也不可为空。“允许空字符串”属性仅适用于文本型字段,与主键的非空约束冲突。15.VB中Static声明的局部变量在过程调用结束后保留其值,但其他过程无法访问该变量。【选项】A.正确B.错误【参考答案】A.正确【解析】Static变量作用域限于声明它的过程,但其生存期为整个程序运行期,每次调用过程时保留上一次的值,其他过程不能直接访问它。16.Access查询中,GROUPBY子句必须与聚合函数(如SUM、COUNT)同时使用。【选项】A.正确B.错误【参考答案】B.错误【解析】GROUPBY可用于按字段分组而不必使用聚合函数,例如仅需显示不同分类时可直接分组。但若选择字段未包含在GROUPBY或聚合函数中,系统会报错。17.VB中,DoWhile...Loop循环至少执行一次循环体。【选项】A.正确B.错误【参考答案】B.错误【解析】DoWhile...Loop先判断条件后执行,若初始条件为False则跳过循环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论