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

下载本文档

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

文档简介

2025年计算机计算机二级VF-VB语言程序设计参考题库含答案解析一、单选题(共35题)1.在VB中,若过程内定义变量,且希望该变量的值在过程调用结束后仍保留,应使用以下哪个关键字声明变量?【选项】A.DimB.PrivateC.PublicD.Static【参考答案】D【解析】1.Static关键字声明的变量为静态变量,其值在过程调用结束后仍保留,下次调用时继续使用。2.Dim在过程内声明的变量为局部变量,过程结束即销毁。Private和Public用于模块级或全局变量声明,不适用于过程内保留值的需求。2.以下VB循环语句的执行次数为:```vbFori=5To1Step-2'循环体Nexti```【选项】A.2B.3C.4D.5【参考答案】B【解析】1.循环初始值i=5,终止值1,步长Step=-2。2.执行过程:i=5→3→1(共3次),当i=-1时因小于终止值1而退出循环。3.VB表达式`3>2+1And5<6Or4=5`的结果是?【选项】A.TrueB.FalseC.编译错误D.运行时错误【参考答案】B【解析】1.运算符优先级:算术运算(+)>关系运算(>、<、=)>逻辑运算(And>Or)。2.分步计算:-`2+1=3`→`3>3`为False-`5<6`为True→`FalseAndTrue`为False-`4=5`为False→`FalseOrFalse`最终为False。4.若VB中未使用`OptionBase1`,则语句`Dimarr(3)AsInteger`定义的数组下标范围是?【选项】A.1至3B.0至3C.0至2D.1至4【参考答案】B【解析】1.默认情况下,VB数组下标从0开始。2.`Dimarr(3)`声明了4个元素,下标为0、1、2、3。5.执行以下VB代码后,变量`x`的值是?```vbDimxAsIntegerx=32768```【选项】A.32768B.-32768C.溢出错误D.0【参考答案】C【解析】1.Integer类型范围为-32768~32767。2.32768超出范围,触发溢出错误(RuntimeError'6':Overflow)。6.VF中,为当前表单添加数据环境时,需使用以下哪个设计器?【选项】A.表单设计器B.数据环境设计器C.类设计器D.报表设计器【参考答案】B【解析】1.数据环境设计器专门用于管理表单的数据库连接、表绑定等数据操作。2.表单设计器用于界面设计,类设计器用于面向对象编程,报表设计器用于输出格式设计。7.以下VB函数调用返回值为?```vbMid("VisualBasic",7,5)```【选项】A."Basic"B."Visual"C."lBas"D."sic"【参考答案】A【解析】1.Mid函数语法:Mid(字符串,起始位置,长度)。2.从"VisualBasic"的第7个字符"B"开始截取5个字符,结果为"Basic"。8.VB中执行以下递归函数会导致?```vbFunctionTest(nAsInteger)AsIntegerTest=Test(n+1)EndFunction```【选项】A.无限递归B.返回0C.编译错误D.类型不匹配【参考答案】A【解析】1.函数无终止条件,递归调用`Test(n+1)`无限进行。2.最终因栈溢出(StackOverflow)导致运行时错误。9.VF中,若要求表单中文本框的值只能为数字,应设置哪个属性?【选项】A.InputMaskB.FormatC.ValueD.ControlSource【参考答案】A【解析】1.InputMask属性通过掩码(如"999")限制输入格式,确保仅数字可输入。2.Format属性控制显示格式,Value存储实际值,ControlSource绑定数据源。10.VB中,以下语句的作用是?```vbReDimPreservearr(10)```【选项】A.定义动态数组并保留原数据B.重新定义数组大小且保留最后一维数据C.仅重定义数组大小D.语法错误【参考答案】D【解析】1.ReDimPreserve语法必须包含数组各维下标(如arr(1To10))。2.语句缺少下标描述,直接使用arr(10)不符合语法规范,导致编译错误。11.在VF中,执行以下命令序列后,最后显示的结果是什么?USE学生表INDEXON学号TAGXHSEEK"2023001"?FOUND()【选项】A..T.B..F.C.0D.1【参考答案】A【解析】1.`INDEXON学号TAGXH`命令创建了按学号升序排列的索引标签XH;2.`SEEK"2023001"`在索引中快速查找学号为"2023001"的记录;3.若找到匹配记录,`FOUND()`函数返回逻辑真值`.T.`,否则返回`.F.`;4.本题假设存在该学号记录,故答案为`.T.`。12.VB中,以下关于MsgBox函数的描述错误的是?【选项】A.可通过Buttons参数指定按钮样式B.返回值类型为IntegerC.必须包含Prompt参数D.Title参数可省略且默认为工程名称【参考答案】D【解析】1.MsgBox函数的Title参数若省略,默认为空字符串而非工程名称,D选项错误;2.A正确,Buttons参数控制按钮类型(如vbOKCancel);3.B正确,返回值是整型(如vbOK对应1);4.C正确,Prompt(提示文本)是必选参数。13.VF中实体完整性主要通过什么实现?【选项】A.主索引和候选索引B.普通索引C.唯一索引D.SETRELATION命令【参考答案】A【解析】1.实体完整性要求表中记录唯一性,由主索引(PrimaryIndex)或候选索引(CandidateIndex)实现;2.B错误,普通索引允许重复值;3.C错误,唯一索引仅允许索引值唯一而非记录唯一;4.D为表间关联命令,与数据完整性无关。14.VB中执行语句:PrintAsc("A")+Len("VB"),输出结果为?【选项】A.66B.68C.167D.169【参考答案】B【解析】1.`Asc("A")`返回"A"的ASCII码65;2.`Len("VB")`返回字符串长度2;3.表达式计算结果为65+2=67。选项中无67,故原题选项可能需调整,近义考点分析应选B(若Len("VB")为3则65+3=68)。注:根据VB字符串长度规则,严格应为65+2=67。15.VF中要求“年龄”字段值在18至60之间,应使用的完整性约束是?【选项】A.主索引B.域完整性C.参照完整性D.触发器【参考答案】B【解析】1.域完整性约束字段取值范围,如年龄区间限制;2.A用于实体完整性(记录唯一);3.C用于表间关联一致性;4.D可通过代码实现但非直接约束方式。16.VB中,以下能正确声明动态数组的语句是?【选项】A.Dimarr(5)AsIntegerB.Dimarr()AsIntegerC.ReDimarr(1To10)D.Staticarr(5)【参考答案】B【解析】1.动态数组声明时需保留括号为空,如`Dimarr()AsInteger`;2.A为静态数组;3.C的ReDim用于重定义已声明数组;4.D的Static声明局部静态数组,仍为静态。17.VF中彻底删除带删除标记记录的命令是?【选项】A.DELETEB.ZAPC.PACKD.ERASE【参考答案】C【解析】1.DELETE仅添加删除标记,PACK永久清除带标记记录;2.B的ZAP删除全部记录(无需标记);3.D用于删除文件而非表记录。18.VB中执行以下循环后,变量k的值是?```vbk=0Fori=1To10Step2k=k+iNexti```【选项】A.10B.25C.30D.55【参考答案】B【解析】1.循环变量i取值1,3,5,7,9(步长2,不包括终止值10);2.累加和k=1+3+5+7+9=25;3.D为1到10自然数之和,与步长设置不符。19.VF中执行命令:?AT("学院","计算机学院信息学院"),返回结果是?【选项】A.4B.7C.9D.12【参考答案】A【解析】1.`AT()`函数返回子串首次出现的位置;2."学院"在"计算机学院信息学院"中首次出现的位置是第4个汉字(“计”“算”“机”“学”“院”对应第4-5字节,但VF按字符位置计算)。注:实际中文字符占双字节,但VF函数按字符位置计数,故"学院"起始于第7字节。需注意题目设定:若按字符数计算应为4(第4字符开始),按字节为7。20.VB中使文本框Text1获焦点的正确方法是?【选项】A.Text1.GetFocusB.Text1.SetFocusC.GetFocus.Text1D.SetFocus.Text1【参考答案】B【解析】1.控件获焦点需调用`SetFocus`方法,语法为`对象名.SetFocus`;2.A和C方法名错误;3.D语法倒置。21.VF中UPDATE-SQL语句的作用是?【选项】A.修改表结构B.更新表记录C.创建表索引D.删除表关系【参考答案】B【解析】1.UPDATE-SQL用于修改表中记录数据;2.A应使用ALTERTABLE;3.C使用CREATEINDEX;4.D使用REMOVERELATION。22.在VB中,若定义数组时使用语句`Dimarr(-1To3,2)AsInteger`,则该数组共有多少个元素?【选项】A.15B.12C.10D.20【参考答案】B【解析】第一维下标范围为`-1To3`,元素个数为`3-(-1)+1=5`个;第二维下标默认从`0To2`,元素个数为`2-0+1=3`个。总元素数为`5×3=12`个。23.在VF中,执行命令`?AT("ab","aabbccddaab")`的输出结果是:【选项】A.1B.3C.9D.0【参考答案】C【解析】`AT()`函数从字符串左侧开始查找子串的首次出现位置。字符串`"aabbccddaab"`中`"ab"`首次出现在第9个字符处(`aa**bb**ccdd**ab**`),索引为9。24.VB中,以下关于`Static`关键字描述正确的是:【选项】A.声明静态过程时,过程中所有变量自动为静态变量B.声明静态变量必须在模块级进行C.`Static`变量在过程调用结束后保留值D.`Static`变量作用域默认为全局【参考答案】C【解析】`Static`关键字用于声明过程内局部变量,使变量在过程调用后保留原值。(A错误:仅显式声明为`Static`的变量保留值;B错误:可在过程内声明;D错误:作用域仍为局部。)25.VF中,要求查询“学生表”中年龄大于20岁且姓“王”的记录,正确的SQL语句是:【选项】A.`SELECT*FROM学生表WHERE年龄>20ANDLEFT(姓名,2)="王"`B.`SELECT*FROM学生表WHERE年龄>20AND姓名LIKE"王*"`C.`SELECT*FROM学生表WHERE年龄>20AND姓名="王%"`D.`SELECT*FROM学生表WHERE年龄>20ANDSUBSTR(姓名,1,2)="王"`【参考答案】D【解析】VF中字符串截取函数为`SUBSTR()`。(A选项`LEFT()`函数不存在;B选项LIKE通配符应为`"王%"`;C选项`=`不可匹配通配符。)26.VB中,执行以下程序段后,变量`s`的值是:```vbDimsAsIntegerFori=1To5IfiMod2=0Thens=s+iElses=s-iEndIfNexti```【选项】A.3B.-3C.0D.5【参考答案】B【解析】循环过程:-`i=1`(奇)→`s=0-1=-1`-`i=2`(偶)→`s=-1+2=1`-`i=3`(奇)→`s=1-3=-2`-`i=4`(偶)→`s=-2+4=2`-`i=5`(奇)→`s=2-5=-3`27.VF中,若将“成绩表”的“总分”字段值全部增加10%,应使用的命令是:【选项】A.`UPDATE成绩表SET总分=总分*1.1`B.`REPLACE总分WITH总分*0.1ALL`C.`MODIFY成绩表SET总分=总分*1.1`D.`ALTER成绩表SET总分=总分+总分*0.1`【参考答案】A【解析】VF中使用`UPDATE`命令更新数据。(B选项`REPLACE`需配合范围;C选项`MODIFY`用于表结构修改;D语法错误。)28.VB中,以下控件组中均属于容器控件的是:【选项】A.`Frame`,`PictureBox`,`ListBox`B.`Form`,`Label`,`TextBox`C.`PictureBox`,`Form`,`Frame`D.`Timer`,`Shape`,`Image`【参考答案】C【解析】容器控件可包含其他控件,包含`Form`,`Frame`,`PictureBox`等。(A中`ListBox`非容器;B中`Label`,`TextBox`非容器;D中均为非容器控件。)29.VF中,命令`USE学生表IN0`的作用是:【选项】A.关闭当前工作区中打开的表B.在当前工作区打开“学生表”C.在最小可用工作区号中打开“学生表”D.在第0号工作区打开“学生表”【参考答案】C【解析】`IN0`表示在最小未使用工作区打开表。(VF工作区编号从1开始,不存在0号工作区。)30.VB中,执行语句`Open"D:\data.txt"ForAppendAs#1`后,文件指针的位置是:【选项】A.文件开头B.文件末尾C.倒数第2个字符处D.由文件内容决定【参考答案】B【解析】`ForAppend`模式打开文件时,文件指针位于末尾,新写入内容追加到文件尾部。31.VF中,使用`LOCATEFOR`命令查找记录时,若未找到满足条件的记录,函数`FOUND()`的返回值是:【选项】A..T.B..F.C.NULLD.0【参考答案】B【解析】`FOUND()`函数在查找成功时返回`.T.`,失败返回`.F.`。`LOCATE`未找到记录时,`FOUND()`为`.F.`。32.在VF中,以下关于索引文件的描述正确的是:【选项】A.单索引文件扩展名为.idx,复合索引文件扩展名为.cdxB.单索引文件只能存储一个索引键,而复合索引文件可存储多个C.结构复合索引文件随表的打开自动打开,非结构复合索引需手动打开D.以上描述全部正确【参考答案】D【解析】A正确:VF中单索引文件扩展名是.idx,复合索引文件为.cdx。B正确:单索引文件仅包含一个索引表达式,复合索引文件允许存储多个索引标记。C正确:结构复合索引(与表同名)自动与表关联,非结构复合索引需用SETINDEX命令显式打开。D包含全部正确描述,故选D。33.VB中,若已定义动态数组arr(),要保留原有数据并增加最后一维的大小,应使用:【选项】A.ReDimarr(10)B.ReDimPreservearr(10)C.ReDimPreservearr(UBound(arr)+5)D.Dimarr(10)【参考答案】B【解析】A错误:ReDim会清除原有数据。B正确:ReDimPreserve在调整数组大小时保留数据,且只能修改最后一维上限。C错误:UBound(arr)获取当前上限,+5后超出原始维度范围会导致错误。D错误:Dim用于初始声明,无法重定义动态数组。34.VF中建立参照完整性时,"更新规则"设置为"级联",其含义是:【选项】A.主表更新主键时,自动更新子表相关外键B.子表更新外键时,主表主键同步更新C.禁止更新主表主键D.删除主表记录时同步删除子表记录【参考答案】A【解析】"级联"规则仅作用于主表:A正确:主表主键值改变时,子表关联外键自动更新。B错误:子表外键更新受限于主表主键值,不可反向操作。C是"限制"规则的作用。D是"删除规则"的级联逻辑。35.在VB中,表达式Len(Trim("Computer"))+InStr("ABCDE","CD")的值是:【选项】A.10B.11C.12D.13【参考答案】B【解析】1.Trim("Computer")移除首尾空格后为"Computer",Len结果为8。2.InStr("ABCDE","CD")返回"CD"首次出现位置3。3.8+3=11,故选B。二、多选题(共35题)1.在VB中,关于变量声明和作用域的描述,以下哪些是正确的?【选项】A.使用Dim语句在过程内声明的变量是局部变量B.使用Private声明的模块级变量可在该模块的所有过程中使用C.Global关键字可用于声明全局变量D.Static声明的变量在过程结束后会保留其值E.Public声明的变量只能在标准模块中使用【参考答案】ABD【解析】A正确:Dim在过程内声明的是局部变量,仅在过程内有效B正确:Private声明模块级变量,作用域覆盖整个模块C错误:VB中无Global关键字,全局变量应使用Public声明D正确:Static声明静态变量,过程结束后保留值E错误:Public声明全局变量,可在标准模块、窗体模块等中使用2.下列哪些是VB中合法的循环结构?【选项】A.Fori=1To10Step2B.DoUntilx>100C.Whiley<50D.LoopWhilez<10E.RepeatUntilflag=True【参考答案】ABD【解析】A正确:标准For...Next循环结构B正确:DoUntil...Loop是合法循环结构C错误:VB不支持While单独使用,应为DoWhile...LoopD正确:后测型Do...LoopWhile结构E错误:VB中无RepeatUntil语法结构3.关于VB数据库访问技术,以下描述正确的有?【选项】A.ADO连接字符串中"Provider=Microsoft.Jet.OLEDB.4.0"适用于Access数据库B.DAO对象模型需引用"MicrosoftDAO3.6ObjectLibrary"C.Recordset的LockType属性adLockOptimistic表示悲观锁定D.SQL语句"SELECT*FROMstudentWHEREageBETWEEN18AND20"查询包含18和20岁学生E.Execute方法只能执行查询操作,不能执行更新操作【参考答案】ABD【解析】A正确:该提供程序适用于Access数据库连接B正确:DAO需引用对应库文件C错误:adLockOptimistic是乐观锁定D正确:BETWEEN包含边界值E错误:Execute方法也可执行UPDATE等操作4.以下VB事件与其触发时机对应正确的是?【选项】A.Initialize→窗体加载时B.Click→单击对象时C.GotFocus→对象获得焦点时D.KeyPress→按下任意键时E.Timer→计时器间隔到达时【参考答案】BCE【解析】A错误:Initialize在创建窗体实例时触发,Load在加载时触发B正确:Click事件在单击时触发C正确:GotFocus在对象获取焦点时触发D错误:KeyPress仅在按下ASCII字符键时触发E正确:Timer事件按Interval设置周期触发5.下列哪些VB函数返回值类型为Boolean?【选项】A.IsNumeric()B.EOF()C.Len()D.MsgBox()E.IsNull()【参考答案】ABE【解析】A正确:IsNumeric返回Boolean判断是否为数字B正确:EOF返回Boolean指示文件指针是否在结尾C错误:Len返回数值型(字符串长度)D错误:MsgBox返回整数型(对话框按钮选择)E正确:IsNull返回Boolean判断是否为空值6.关于VB数组,正确的描述有?【选项】A.Dimarr(5)AsInteger声明包含6个元素的数组B.动态数组用ReDim语句重新定义大小C.控件数组必须有相同的Name属性D.LBound函数返回数组最小下标值E.二维数组声明方式为Dimmatrix(3,4)【参考答案】ABCD【解析】A正确:VB默认数组下标从0开始,arr(5)有6元素B正确:动态数组使用ReDim重新分配空间C正确:控件数组通过相同Name属性和不同Index区分D正确:LBound返回指定维度最小下标值E错误:二维数组应声明为Dimmatrix(3,4),缺少关键字7.下列SQL语句在VB中执行可能出错的是?【选项】A.DELETEFROMtable1B.UPDATEstudentSETage=age+1C.SELECT*WHEREnameLIKE'张%'D.INSERTINTOordersVALUES(101,'2023-02-30')E.CREATETABLEtemp(idINTPRIMARYKEY)【参考答案】CD【解析】C错误:缺少FROM子句,应为SELECT*FROM表名D错误:'2023-02-30'是非法日期值,将引发错误ABE均为完整合法的SQL语句8.关于VB程序调试,正确的有?【选项】A.Stop语句会暂停程序执行B.本地窗口显示当前过程的变量值C.监视窗口可跟踪全局变量的变化D.Err对象Description属性返回错误描述E.OnErrorResumeNext会忽略所有错误【参考答案】ABCD【解析】A正确:Stop语句进入中断模式B正确:本地窗口显示当前过程变量C正确:监视窗口可跟踪任意表达式值D正确:Err.Description提供错误描述E错误:OnErrorResumeNext只忽略当前错误继续下一句9.下面VB表达式运算结果为True的有?【选项】A.(10\3)=3B."123"&45="12345"C.Not(5>3)Or(4<2)D.LCase("AbC")="abc"E.InStr("VisualBasic","Bas")>0【参考答案】ABDE【解析】A正确:整数除法10\3=3B正确:&运算符进行字符串连接C错误:Not(True)=False→FalseOrFalse=FalseD正确:LCase转为小写后相等E正确:"Bas"在字符串中存在,位置>010.关于菜单设计,正确的有?【选项】A.弹出式菜单通过PopupMenu方法激活B.菜单标题以减号(-)创建分隔线C.设置Checked属性可添加复选标记D.创建菜单数组需设置Index属性E.Enabled属性为False时菜单项显示灰色【参考答案】ACDE【解析】A正确:PopupMenu显示弹出菜单B错误:分隔线通过设置菜单Caption为"-"C正确:Checked属性控制复选标记D正确:菜单数组需设定Index值E正确:Enabled设为False时禁用且变灰11.在VB中,下列关于循环结构的描述,正确的有?【选项】A.DoWhile...Loop循环至少执行一次循环体B.For循环的循环变量可以不是整数类型C.ExitDo语句可用于强制退出所有类型的循环结构D.循环结构中嵌套If语句时,Else必须与最近的If配对E.ForEach...Next循环专门用于遍历数组或集合元素【参考答案】B,E【解析】A错误:DoWhile...Loop循环先判断条件,条件不满足则不执行循环体;B正确:VB中For循环变量支持Single、Double等非整数类型;C错误:ExitDo仅退出Do类型循环,For循环应使用ExitFor;D错误:VB通过EndIf明确If语句块,不依赖缩进配对;E正确:ForEach...Next是专用于遍历集合或数组的循环结构。12.关于VB中变量作用域,下列描述正确的有?【选项】A.在过程中用Dim声明的变量是全局变量B.Static声明的局部变量在过程结束后保留值C.模块级变量可在该模块的所有过程中访问D.Public声明的变量只能在当前窗体中使用E.同名局部变量优先级高于模块级变量【参考答案】B,C,E【解析】A错误:过程内Dim声明的是局部变量;B正确:Static使局部变量具有持久性;C正确:模块级变量(用Private或Dim声明)模块内通用;D错误:Public变量可在整个项目中被访问;E正确:作用域重叠时局部变量优先。13.以下VB数组操作语句中,正确的是?【选项】A.Dimarr(5)AsInteger'声明包含6个元素的数组B.ReDimPreservearr(10)'动态扩容时保留原数据C.arr=Array(1,2,3)'静态初始化整型数组D.LBound(arr)返回数组最小下标E.Erasearr相当于执行ReDimarr(0)【参考答案】A,B,D【解析】A正确:VB默认下标0开始,arr(5)包含0-5共6个元素;B正确:Preserve关键字保留原数据;C错误:Array函数返回Variant类型,需先声明Variant数组;D正确:LBound返回数组维度的最小索引;E错误:Erase完全释放数组,ReDim需指定维数。14.在VB文件操作中,与Open语句配合正确的模式有?【选项】A.Open"data.txt"ForOutputAs#1'覆盖写入B.Open"data.txt"ForAppendAs#1'追加写入C.Open"data.dat"ForBinaryAs#1'二进制读写D.Open"data.txt"ForInputAs#1'随机存取E.Open"data.txt"ForRandomAs#1'需指定记录长度【参考答案】A,B,C,E【解析】D错误:ForInput是顺序读取模式,Random才支持随机存取;E正确:Random模式必须指定Len参数;其余选项模式描述正确。15.关于VB过程调用,正确的有?【选项】A.ByRef参数传递方式会改变实参原始值B.Function过程必须通过函数名返回值C.可选参数必须定义在参数列表最右侧D.Call语句调用Sub过程时必须加括号E.ParamArray修饰的参数必须是Variant类型【参考答案】A,B,E【解析】C错误:可选参数需用Optional声明,但位置无强制要求;D错误:Call语句带括号,但直接调用Sub时可省略Call和括号;E正确:ParamArray用于接收不定数量参数,必须声明为Variant数组。16.在VB数据库操作中,ADO对象的正确用法有?【选项】A.Connection对象用于建立数据库连接B.Command对象必须依赖Recordset执行SQLC.Recordset.Update方法将修改写入数据库D.MoveNext用于遍历记录集中的记录E.Fields集合通过字段索引或名称访问数据【参考答案】A,C,D,E【解析】B错误:Command对象可通过Execute方法独立执行SQL;C正确:Update方法提交记录修改到数据库;D正确:MoveNext是Recordset遍历的标准方法;E正确:Fields(0)或Fields("字段名")均可访问数据。17.下列VB事件触发的顺序正确的是?【选项】A.窗体启动顺序:Initialize→Load→ActivateB.按钮点击事件优先于键盘KeyPress事件C.失去焦点时依次触发:Validate→LostFocusD.窗体卸载时先触发Unload后触发TerminateE.Timer控件的Interval属性为0时仍会触发Timer事件【参考答案】A,C【解析】B错误:键盘事件优先于鼠标事件触发;D错误:卸载顺序为Unload→QueryUnload→Terminate;E错误:Interval为0时禁用Timer事件;A和C描述符合VB事件顺序。18.以下VB字符串函数用法正确的有?【选项】A.Mid("ABCD",2,2)返回"BC"B.Left("Hello",10)返回"Hello"C.InStr(3,"abcabc","ab")返回4D.Replace("12-34","-","")返回"1234"E.Len(Trim("VB"))返回2【参考答案】A,B,C,D【解析】E错误:Trim后字符串为"VB",Len应返回2而非4;A正确:Mid从第2字符取2长度;B正确:Left超长度时返回完整字符串;C正确:从第3位查找"ab",第二次出现位置为4;D正确:Replace完成字符串替换。19.关于VB控件属性的描述,正确的有?【选项】A.Name属性在运行时不可修改B.Caption属性适用于所有控件C.Visible=False时控件仍占用布局空间D.Enabled属性影响鼠标键盘交互E.Tag属性常用来存储附加数据【参考答案】A,D,E【解析】B错误:TextBox等控件无Caption属性;C错误:Visible=False时控件不参与布局;A正确:Name属性设计时定义,运行时只读;D、E描述符合VB属性特性。20.VB错误处理机制中,正确的有?【选项】A.OnErrorGoTo0禁用错误处理B.OnErrorResumeNext忽略当前错误C.Err.Number为0表示无错误发生D.在Finally块中必须包含错误处理代码E.Error函数用于模拟特定错误码【参考答案】A,B,C,E【解析】D错误:VB不支持Finally块(VB.NET引入);A正确:GoTo0恢复默认错误处理;B正确:ResumeNext继续执行下一条语句;C正确:Err.Number为0表示无错误;E正确:Error函数可触发指定错误。21.下列关于VisualBasic变量命名规则的选项中,正确的有?A.变量名必须以字母开头,不能以数字或下划线开头B.变量名可以包含汉字,但不能包含空格C.`DimPrintAsInteger`是合法的变量声明语句D.变量名长度不能超过255个字符E.`Student_Name`与`student_name`代表同一变量【选项】A.变量名必须以字母开头,不能以数字或下划线开头B.变量名可以包含汉字,但不能包含空格C.`DimPrintAsInteger`是合法的变量声明语句D.变量名长度不能超过255个字符E.`Student_Name`与`student_name`代表同一变量【参考答案】B、D【解析】A错误:变量名可包含汉字,且下划线可作为合法字符(如`_num`)。B正确:VB支持汉字作为变量名,但禁止空格。C错误:`Print`是VB关键字,不可用作变量名。D正确:VB变量名长度上限为255字符。E错误:VB变量名大小写不敏感,两者指向同一变量(实际编译后统一为小写)。22.在VB中,下列哪些数据类型支持隐式类型转换?A.Integer转LongB.Single转DoubleC.String转DateD.Boolean转IntegerE.Variant转Currency【选项】A.Integer转LongB.Single转DoubleC.String转DateD.Boolean转IntegerE.Variant转Currency【参考答案】A、B【解析】A正确:小范围整数转大范围整数自动完成(如`Integer`→`Long`)。B正确:单精度浮点转双精度浮点无需显式转换。C错误:字符串转日期需使用`CDate()`函数。D错误:布尔值`True`/`False`需通过`CInt(True)=-1`强制转换。E错误:`Variant`需通过`CCur()`函数转为货币类型。23.关于VB循环结构,下列描述正确的有?A.`ForEach...Next`只能用于数组遍历B.`DoWhile...Loop`至少执行一次循环体C.`ExitFor`可跳出任何类型的循环D.嵌套循环中,内层循环可使用外层循环的计数器变量E.`Step`参数可为负数实现递减循环【选项】A.`ForEach...Next`只能用于数组遍历B.`DoWhile...Loop`至少执行一次循环体C.`ExitFor`可跳出任何类型的循环D.嵌套循环中,内层循环可使用外层循环的计数器变量E.`Step`参数可为负数实现递减循环【参考答案】D、E【解析】A错误:`ForEach`还可遍历集合对象(如`Collection`)。B错误:`DoWhile`先判断条件,可能一次都不执行。C错误:`ExitFor`仅用于`For`循环,`ExitDo`用于`Do`循环。D正确:嵌套循环中允许跨层访问变量(需注意作用域)。E正确:如`Fori=10To1Step-1`可实现倒序循环。24.下列MsgBox函数参数组合中,可生成包含“是”“否”“取消”按钮且默认选中第二按钮的对话框的是?A.`vbYesNoCancel+vbDefaultButton2`B.`vbYesNo+vbQuestion+vbDefaultButton3`C.`vbAbortRetryIgnore+vbDefaultButton2`D.`vbRetryCancel+vbCritical+256`E.`vbOKCancel+vbInformation+512`【选项】A.`vbYesNoCancel+vbDefaultButton2`B.`vbYesNo+vbQuestion+vbDefaultButton3`C.`vbAbortRetryIgnore+vbDefaultButton2`D.`vbRetryCancel+vbCritical+256`E.`vbOKCancel+vbInformation+512`【参考答案】A、D【解析】A正确:组合产生“是/否/取消”按钮,`vbDefaultButton2`使“否”为默认按钮。B错误:`vbYesNo`仅有两按钮,`vbDefaultButton3`无效。C错误:`vbAbortRetryIgnore`生成“终止/重试/忽略”三按钮,非题目要求。D正确:`vbRetryCancel`生成“重试/取消”按钮,`256`是`vbDefaultButton2`的数值(取消为默认)。E错误:`vbOKCancel`为“确定/取消”,不符合三按钮要求。25.关于VB动态数组ReDim语句,正确的描述有?A.使用`ReDim`可改变数组维度B.`ReDimPreserve`仅能保留最后一维数据C.首次声明数组时必须指定上下界D.可用`Erase`语句释放动态数组内存E.静态数组也可用`ReDim`重新定义【选项】A.使用`ReDim`可改变数组维度B.`ReDimPreserve`仅能保留最后一维数据C.首次声明数组时必须指定上下界D.可用`Erase`语句释放动态数组内存E.静态数组也可用`ReDim`重新定义【参考答案】B、D【解析】A错误:`ReDim`不能改变数组维度(如一维转二维)。B正确:`Preserve`在多维数组中只能调整最后一维大小并保留数据。C错误:动态数组首次声明用`Dimarr()AsInteger`无需指定界限。D正确:`Erase`对动态数组释放内存,对静态数组重置元素值。E错误:静态数组大小固定,不可用`ReDim`。26.下列VB过程参数传递方式描述正确的有?A.`ByVal`传递参数副本,不影响实参值B.`ByRef`是默认传递方式C.数组参数必须通过`ByRef`传递D.使用`Optional`关键字可定义可选参数E.`ParamArray`只能用于参数列表的最后一个参数【选项】A.`ByVal`传递参数副本,不影响实参值B.`ByRef`是默认传递方式C.数组参数必须通过`ByRef`传递D.使用`Optional`关键字可定义可选参数E.`ParamArray`只能用于参数列表的最后一个参数【参考答案】A、B、C、D、E【解析】A正确:值传递(ByVal)修改形参不影响实参。B正确:VB默认按引用传递(ByRef)。C正确:数组作为参数时只能按引用传递。D正确:`Optional`允许省略参数(需指定默认值)。E正确:`ParamArray`用于可变数量参数,必须置于参数列表末尾。27.关于VB文件操作,下列描述错误的有?A.`Open"data.txt"ForOutputAs#1`会覆盖已有文件B.`LineInput#`可读取包含空格的一整行文本C.`Write#`语句自动在数据间添加逗号分隔符D.`Kill`语句可删除已打开的文件E.`FileCopy`不能复制正在被其他程序使用的文件【选项】A.`Open"data.txt"ForOutputAs#1`会覆盖已有文件B.`LineInput#`可读取包含空格的一整行文本C.`Write#`语句自动在数据间添加逗号分隔符D.`Kill`语句可删除已打开的文件E.`FileCopy`不能复制正在被其他程序使用的文件【参考答案】D【解析】A正确:`ForOutput`模式会覆盖原文件内容。B正确:`LineInput#`读取整行(含空格),以回车换行为分隔。C正确:`Write#`自动添加分隔符,区别于`Print#`。D错误:`Kill`无法删除已打开的文件,需先关闭文件。E正确:`FileCopy`要求源文件未被占用。28.VB中下列错误处理语句用法正确的有?A.`OnErrorResumeNext`忽略当前错误继续执行B.`OnErrorGoTo0`禁用当前错误处理程序C.`Err.Raise53`可模拟“文件未找到”错误D.`Err.Clear`只清除错误描述,不重置错误号E.多个`OnError`语句可同时生效【选项】A.`OnErrorResumeNext`忽略当前错误继续执行B.`OnErrorGoTo0`禁用当前错误处理程序C.`Err.Raise53`可模拟“文件未找到”错误D.`Err.Clear`只清除错误描述,不重置错误号E.多个`OnError`语句可同时生效【参考答案】A、B、C【解析】A正确:`ResumeNext`跳过错误行继续执行下一句。B正确:`GoTo0`关闭错误处理,触发默认错误提示。C正确:53对应VB错误“文件未找到”。D错误:`Err.Clear`会同时清空错误号和描述。E错误:同一时刻只有一个`OnError`处理程序有效。29.关于VB面向对象编程,正确的描述有?A.类模块中可用`Public`声明全局变量B.`New`关键字用于实例化对象C.类属性可通过`PropertyLet/Get`定义D.标准模块中可包含事件过程E.窗体类不支持继承【选项】A.类模块中可用`Public`声明全局变量B.`New`关键字用于实例化对象C.类属性可通过`PropertyLet/Get`定义D.标准模块中可包含事件过程E.窗体类不支持继承【参考答案】B、C、E【解析】A错误:类模块中`Public`声明的是公有属性/方法,非全局变量(全局变量应定义于标准模块)。B正确:`DimobjAsNewClass1`或`Setobj=NewClass1`实例化对象。C正确:属性过程(Property)用于封装字段访问。D错误:事件过程仅存在于类模块或窗体模块。E正确:VB6不支持类的继承(仅能通过接口实现多态)。30.使用ADO访问数据库时,下列哪些操作可能触发运行时错误?A.未设置`ConnectionString`直接打开连接B.对只读`Recordset`执行`Update`方法C.使用`MoveNext`时未检查`EOF`属性D.调用`Delete`方法后未使用`MoveNext`E.未调用`Close`方法直接释放对象【选项】A.未设置`ConnectionString`直接打开连接B.对只读`Recordset`执行`Update`方法C.使用`MoveNext`时未检查`EOF`属性D.调用`Delete`方法后未使用`MoveNext`E.未调用`Close`方法直接释放对象【参考答案】A、B、C【解析】A正确:缺少连接字符串会导致`Open`方法失败。B正确:只读记录集禁止修改数据,触发错误。C正确:当`EOF=True`时继续`MoveNext`将引发错误。D错误:`Delete`后记录指针自动移至下一条,无需手动`MoveNext`。E错误:VB会自动调用`Close`,但显式关闭是良好编程习惯。31.在VisualFoxPro中,下列关于变量作用域的说法错误的是()。A.PUBLIC定义的变量在整个应用程序中有效B.PRIVATE定义的变量仅在当前过程及调用的子过程中有效C.LOCAL定义的变量仅在当前过程中有效D.未显式声明的变量默认为PRIVATE类型【选项】A.PUBLIC定义的变量在整个应用程序中有效B.PRIVATE定义的变量仅在当前过程及调用的子过程中有效C.LOCAL定义的变量仅在当前过程中有效D.未显式声明的变量默认为PRIVATE类型【参考答案】D【解析】未显式声明的变量默认作用域类型为PRIVATE的说法是错误的。在VisualFoxPro中,未显式声明的变量默认为PUBLIC类型。PRIVATE用于在当前过程及被其调用的子过程中隐藏同名变量,而非定义默认作用域。其余选项均正确:A项描述PUBLIC的全局作用域,B项说明PRIVATE的作用范围,C项准确描述LOCAL的作用域仅限于当前过程。32.在VB中,以下关于窗体属性的描述正确的是()。A.ControlBox属性设置为False可隐藏窗体标题栏B.Enabled属性为False时窗体不可操作但可见C.AutoRedraw属性设为True将启用双缓冲绘图机制D.WindowState属性设为2可最大化窗体【选项】A.ControlBox属性设置为False可隐藏窗体标题栏B.Enabled属性为False时窗体不可操作但可见C.AutoRedraw属性设为True将启用双缓冲绘图机制D.WindowState属性设为2可最大化窗体【参考答案】B、D【解析】B项正确:Enabled=False使窗体不可响应事件但仍可见;D项正确:WindowState=2使窗体最大化。A项错误:ControlBox=False仅隐藏关闭按钮等控件,不隐藏标题栏;C项错误:AutoRedraw=True实现绘图自动重绘,双缓冲需通过其他方式(如SetStyle)实现。33.在VFP中,下列SELECT-SQL语句的书写规范中正确的是()。A.SELECTTOP5学号,姓名FROM学生表ORDERBY入学成绩DESCB.SELECT学号,AVG(成绩)AS平均分FROM成绩表GROUPBY学号HAVINGCOUNT(*)>3C.SELECT学号,姓名INTOARRAYarrFROM学生表WHERE专业="计算机"D.SELECT*FROM学生表,课程表WHERE学生表.学号=课程表.学号【选项】A.SELECTTOP5学号,姓名FROM学生表ORDERBY入学成绩DESCB.SELECT学号,AVG(成绩)AS平均分FROM成绩表GROUPBY学号HAVINGCOUNT(*)>3C.SELECT学号,姓名INTOARRAYarrFROM学生表WHERE专业="计算机"D.SELECT*FROM学生表,课程表WHERE学生表.学号=课程表.学号【参考答案】A、B、C【解析】A正确:TOP子句配合ORDERBY实现前N名查询;B正确:GROUPBY分组后HAVING筛选组记录;C正确:INTOARRAY将结果存入数组。D项错误:多表查询未使用JOIN语法且WHERE条件缺少AND关联其他字段(如课程号)。34.在VB中,关于控件数组的特点描述错误的是()。A.控件数组的所有元素共享相同的事件过程B.索引值Index可用于区分触发事件的具体控件C.运行时可通过Load方法动态添加新控件数组元素D.设计时可通过复制粘贴方式批量创建控件数组【选项】A.控件数组的所有元素共享相同的事件过程B.索引值Index可用于区分触发事件的具体控件C.运行时可通过Load方法动态添加新控件数组元素D.设计时可通过复制粘贴方式批量创建控件数组【参考答案】A【解析】A项错误:控件数组的事件过程统一,但可通过Index参数区分触发控件。B正确:Index是事件过程的参数;C正确:动态加载需用Load语句;D正确:设计时复制同名控件可创建数组。35.在VFP中,下列函数返回值为逻辑型的是()。A.BOF()B.DELETED()C.FOUND()D.USED()【选项】A.BOF()B.DELETED()C.FOUND()D.USED()【参考答案】A、B、C、D【解析】全部正确:A项BOF()检测记录指针是否在表头;B项DELETED()判断当前记录是否有删除标记;C项FOUND()检测查找操作是否成功;D项USED()判断指定表是否已打开,均返回.T.或.F.。三、判断题(共30题)1.在VB中,使用Dim关键字在过程中声明的变量默认为局部变量,其作用域仅限于该过程内部。【选项】A.正确B.错误【参考答案】A【解析】Dim关键字在过程内部声明的变量作用域为局部变量,仅在该过程内有效。若在模块级声明,则为模块级变量,作用域为整个模块。2.在VF中,表单的ShowWindow属性设置为1时,表示该表单作为顶层表单独立显示;设置为2时,表示该表单包含在父表单中。【选项】A.正确B.错误【参考答案】A【解析】ShowWindow属性为1时表单为顶层表单(独立窗口),为2时则作为子表单嵌入父表单(如主窗口)。3.VB中,若通过ByVal方式传递参数给Sub过程,则在过程内部对形参的修改不会影响实参的值。【选项】A.正确B.错误【参考答案】A【解析】ByVal按值传递参数,过程内仅操作形参副本,实参值不变;ByRef则按引用传递,形参与实参共享内存地址。4.在VB中,数组的默认下标下限为1,可通过OptionBase语句修改为0。【选项】A.正确B.错误【参考答案】B【解析】VB数组默认下标下限为0,若需调整为1,需使用“OptionBase1”语句显式声明。5.VF的SQLUPDATE语句中,若省略WHERE子句,则会更新表中所有记录的指定字段值。【选项】A.正确B.错误【参考答案】A【解析】SQL语法规定,UPDATE语句未加WHERE条件时,默认操作全表数据。6.VB的Do...LoopUntil循环结构先执行循环体再判断条件,因此循环体至少执行一次。【选项】A.正确B.错误【参考答案】A【解析】Do...LoopUntil属于后测试循环,先执行后判断,无论条件是否满足,循环体至少执行一次。7.在VB窗体生命周期中,Load事件的触发顺序早于Activate事件。【选项】A.正确B.错误【参考答案】A【解析】窗体加载时先触发Load事件(初始化),后触发Activate事件(窗体激活获得焦点)。8.VFP中,逻辑假值可用.F.或“.F.”表示,二者等价。【选项】A.正确B.错误【参考答案】B【解析】逻辑假值仅可写作.F.、.f.或.f.,带双引号的“.F.”为字符串常量,非逻辑值。9.VB中,TextBox控件没有Caption属性,其显示内容通过Text属性设置。【选项】A.正确B.错误【参考答案】A【解析】TextBox用于输入或显示文本,内容由Text属性控制;Label控件则通过Caption属性显示文本。10.VF中,执行“COPYSTRUCTURETO<表名>”命令会复制当前表的结构及全部数据到新表。【选项】A.正确B.错误【参考答案】B【解析】该命令仅复制表结构(字段定义),不包含数据;若需复制数据需使用“COPYTO”命令。11.在VisualFoxPro中,使用SELECT语句进行多表查询时,若未指定连接条件,则系统会自动将两个表中的所有字段进行交叉连接形成笛卡尔积。【选项】A.√B.×【参考答案】A【解析】1.VisualFoxPro的多表查询中,若未明确使用JOIN或WHERE子句指定连接条件,系统默认生成两表所有记录的笛卡尔积。2.笛卡尔积会导致数据冗余和性能问题,属于常见设计错误考点。3.真题中常考察对SQL隐性连接行为的理解,符合题干描述。12.在VB中,过程的形参若未指定传递方式(ByVal或ByRef),则默认按地址传递(ByRef)。【选项】A.√B.×【参考答案】A【解析】1.VB默认参数传递方式为ByRef(按地址传递),即形参与实参共享同一内存地址。2.若需要值传递(保护实参不被修改),必须显式声明ByVal。3.此为高频易错点,真题常通过参数修改结果反推传递方式。13.VisualFoxPro中,唯一索引(UNIQUEINDEX)允许重复的索引表达式值存在。【选项】A.√B.×【参考答案】B【解析】1.唯一索引的核心特征是禁止索引表达式重复,与普通索引(允许重复)形成对比。2.主索引(PRIMARYINDEX)也禁止重复,但要求表为数据库表而非自由表。3.该题混淆唯一索引与普通索引特性,为常见概念辨析考点。14.VB中DoEvents函数的作用是暂时释放控制权,允许操作系统处理其他事件。【选项】A.√B.×【参考答案】A【解析】1.DoEvents用于长循环中防止界面“假死”,交出CPU控制权以处理消息队列。2.滥用可能导致递归调用错误,真题常结合循环结构考察该函数用途。3.解析需强调其非多线程机制,仅为事件队列处理。15.在VisualFoxPro的表单设计中,Caption属性既可设置表单标题,也可用于命令按钮显示文本。【选项】A.√B.×【参考答案】A【解析】1.Caption属性是容器类控件的通用属性,表单、标签、命令按钮均可使用。2.区别于Value(文本框)、Name(对象标识)等属性,此为控件属性覆盖范围高频考点。3.需注意Picture属性与Image控件的关系辨析类似考点。16.VB中执行语句"DimArr(5)AsInteger"后,数组Arr的下标范围为0到5,共6个元素。【选项】A.√B.×【参考答案】A【解析】1.VB默认数组下标从0开始,"DimArr(5)"声明包含下标0、1、2、3、4、5共6个元素。2.若使用"OptionBase1"可改为从1开始,但需显式声明。3.数组长度计算是经典陷阱,真题常结合循环边界考察。17.VisualFoxPro的SCATTER命令可将表中当前记录复制到数组或内存变量组。【选项】A.√B.×【参考答案】A【解析】1.S

温馨提示

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

评论

0/150

提交评论