版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年vb二级考试练习题及答案一、选择题(每小题2分,共20分)1.以下关于VB对象的描述中,错误的是()。A.每个对象都有预定义的属性、方法和事件B.窗体对象的Name属性在运行时可以修改C.文本框的Text属性默认值为空字符串D.命令按钮的Default属性为True时,按Enter键触发Click事件答案:B(Name属性在设计时设置,运行时不可修改)2.执行以下代码后,变量a的值是()。DimaAsIntegera=5Ifa>3Thena=a2ElseIfa>5Thena=a+1Elsea=0EndIfA.5B.10C.6D.0答案:B(a初始为5,满足a>3,执行a=52=10)3.若要声明一个包含10个元素的动态数组arr(下标从1开始),正确的语句是()。A.Dimarr()AsInteger:ReDimarr(1To10)B.Dimarr(1To10)AsIntegerC.ReDimarr(1To10)AsIntegerD.Dimarr()AsInteger:ReDimPreservearr(1To10)答案:A(动态数组需先声明为无界数组,再用ReDim指定大小;B为静态数组;C语法错误;D中Preserve用于保留原有数据,此处无需)4.以下能正确将文本框Text1的内容写入D盘test.txt文件的代码是()。A.Open"D:\test.txt"ForOutputAs1Print1,Text1.TextClose1B.Open"D:\test.txt"ForInputAs1Print1,Text1.TextClose1C.Open"D:\test.txt"ForAppendAs1Input1,Text1.TextClose1D.Open"D:\test.txt"ForRandomAs1Write1,Text1.TextClose1答案:A(Output模式用于覆盖写入;Input用于读取;Append用于追加写入但需用Print;Random模式需定义记录类型)5.设组合框Combo1的Style属性为2(下拉列表框),则以下操作中无法触发Change事件的是()。A.用户通过键盘输入新内容B.代码中执行Combo1.AddItem"新项"C.代码中修改Combo1.Text属性D.用户选择列表中的已有选项答案:D(Style=2时,用户无法输入,只能选择列表项,选择操作触发Click事件而非Change事件)6.执行以下代码后,立即窗口输出的结果是()。DimsAsString,iAsIntegers="abc123def456"Fori=1ToLen(s)IfMid(s,i,1)Like"[0-9]"ThenDebug.PrintMid(s,i,1);EndIfNextiA.abcdefB.123456C.abc123def456D.123456(空格分隔)答案:B(Like"[0-9]"匹配数字字符,依次输出"1","2","3","4","5","6",分号连接无空格)7.以下关于过程的描述中,正确的是()。A.子过程(Sub)可以返回多个值B.函数过程(Function)必须有返回值C.用Static声明的过程变量仅在过程调用期间保留值D.过程的参数默认按值传递(ByVal)答案:B(函数必须通过Return或赋值给函数名返回值;Sub无返回值;Static变量在过程结束后仍保留值;参数默认按地址传递ByRef)8.若要将图片框Picture1中的图像清空,正确的语句是()。A.Picture1.Picture=LoadPicture("")B.Picture1.Image=NothingC.Picture1.Picture=NothingD.Picture1.Cls答案:A(LoadPicture("")清空图片;Cls清除绘图方法绘制的内容,不影响Picture属性;VB中对象属性不能直接赋值Nothing)9.设数据库文件student.mdb中存在表“成绩”(字段:学号、姓名、数学、语文),以下能正确通过ADODB连接数据库并读取所有记录的代码片段是()。A.DimconnAsNewADODB.Connectionconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=student.mdb"conn.OpenDimrsAsNewADODB.Recordsetrs.Open"SELECTFROM成绩",connB.DimconnAsADODB.ConnectionSetconn=NewADODB.Connectionconn.ConnectionString="Driver={MicrosoftAccessDriver(.mdb)};DBQ=student.mdb"conn.OpenDimrsAsADODB.RecordsetSetrs=NewADODB.Recordsetrs.Open"SELECT学号,姓名FROM成绩",conn,adOpenStaticC.DimconnAsNewADODB.Connectionconn.Provider="Microsoft.ACE.OLEDB.12.0"conn.Open"student.mdb"DimrsAsNewADODB.Recordsetrs.Open"成绩",connD.DimconnAsADODB.ConnectionSetconn=CreateObject("ADODB.Connection")conn.Open"Provider=SQLOLEDB;DataSource=student.mdb"DimrsAsADODB.Recordsetrs.Open"SELECTFROM成绩",conn答案:A(B中Driver为ODBC连接字符串,ADODB常用OLEDB;C中Open方法需完整连接字符串;D中Provider错误,应为Jet或ACE)10.以下关于菜单设计的描述中,错误的是()。A.菜单项的Name属性不能重复B.可以通过设置Visible属性隐藏菜单项C.快捷键(Shortcut)只能在设计时设置D.分隔符的Caption属性通常设为“-”答案:C(快捷键可在运行时通过修改Shortcut属性设置)二、基本操作题(18分)请在窗体Form1上完成以下操作:1.添加一个标签Label1,Caption属性为“输入数字(1-100):”,FontSize属性为12;2.添加一个文本框Text1,用于输入数字,限制输入内容为0-9的数字字符;3.添加一个命令按钮Command1,Caption属性为“验证”,当单击按钮时,若Text1内容为空,弹出提示“请输入数字”;若输入内容非数字或超出1-100范围,弹出提示“输入不合法”;否则弹出提示“输入正确”;4.添加一个标签Label2,初始Caption为空,当Text1内容变化时,实时显示“已输入X个字符”(X为Text1的字符数)。参考答案:步骤1:在窗体中拖放Label控件,设置Name为Label1,Caption="输入数字(1-100):",Font.Size=12。步骤2:拖放Text1,设置Name为Text1;在Text1的KeyPress事件中添加代码限制输入:PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii<>8And(KeyAscii<48OrKeyAscii>57)Then'允许退格键(8)和数字键KeyAscii=0EndIfEndSub步骤3:拖放Command1,设置Name为Command1,Caption="验证";编写Click事件代码:PrivateSubCommand1_Click()DimnumAsIntegerIfText1.Text=""ThenMsgBox"请输入数字"ExitSubEndIfIfNotIsNumeric(Text1.Text)ThenMsgBox"输入不合法"ExitSubEndIfnum=Val(Text1.Text)Ifnum<1Ornum>100ThenMsgBox"输入不合法"ElseMsgBox"输入正确"EndIfEndSub步骤4:拖放Label2,设置Name为Label2;编写Text1的Change事件代码:PrivateSubText1_Change()Label2.Caption="已输入"&Len(Text1.Text)&"个字符"EndSub三、简单应用题(24分)题目:编写一个过程,实现对一维整数数组的处理:1.统计数组中奇数的个数;2.找出数组中的最大值及其第一次出现的下标;3.将数组元素按逆序重新排列(要求不使用额外数组)。要求:数组通过参数传递(ByRef);结果通过输出参数返回(奇数个数、最大值、最大下标);编写测试代码,使用数组{3,8,1,5,8,2,7}验证。参考答案:SubProcessArray(arr()AsInteger,ByRefoddCountAsInteger,ByRefmaxValAsInteger,ByRefmaxIndexAsInteger)DimiAsInteger,tempAsInteger'统计奇数个数oddCount=0Fori=LBound(arr)ToUBound(arr)Ifarr(i)Mod2<>0ThenoddCount=oddCount+1EndIfNexti'找最大值及首次出现下标maxVal=arr(LBound(arr))maxIndex=LBound(arr)Fori=LBound(arr)+1ToUBound(arr)Ifarr(i)>maxValThenmaxVal=arr(i)maxIndex=iEndIfNexti'逆序排列(交换首尾元素)Fori=LBound(arr)To(LBound(arr)+UBound(arr))\2temp=arr(i)arr(i)=arr(UBound(arr)(iLBound(arr)))arr(UBound(arr)(iLBound(arr)))=tempNextiEndSub测试代码(放在按钮Click事件中):PrivateSubCommand1_Click()Dimarr()AsInteger={3,8,1,5,8,2,7}DimoddAsInteger,maxVAsInteger,maxIdxAsIntegerProcessArrayarr,odd,maxV,maxIdx'输出结果(假设通过标签显示)Label1.Caption="奇数个数:"&odd&vbCrLf&_"最大值:"&maxV&",首次下标:"&maxIdx&vbCrLf&_"逆序数组:"&Join(arr,",")EndSub执行结果:奇数个数:4(3,1,5,7)最大值:8,首次下标:1(数组下标从0开始时,原数组第二个元素为8)逆序数组:7,2,8,5,1,8,3四、综合应用题(38分)题目:设计一个“学提供绩管理”系统,功能要求如下:1.主窗体(Form1)包含:一个DataGridView控件(dgvScore),用于显示学提供绩表;三个文本框(txtID:学号,txtName:姓名,txtScore:成绩);四个命令按钮(btnAdd:添加,btnUpdate:修改,btnDelete:删除,btnSearch:查询);一个标签(lblMsg)用于显示操作提示。2.数据库要求:使用Access数据库(score.mdb),包含“成绩表”(字段:ID(主键,文本型),Name(文本型),Score(数值型))。3.功能实现:程序启动时,自动加载数据库中所有记录到dgvScore;“添加”按钮:验证学号是否已存在(存在则提示“学号重复”),成绩是否在0-100之间,验证通过则添加新记录并刷新表格;“修改”按钮:选中dgvScore中的一行,用文本框内容更新对应记录(学号不可修改);“删除”按钮:选中一行后删除记录;“查询”按钮:输入学号,显示对应记录(未找到则提示)。参考答案:1.数据库准备:创建score.mdb,新建“成绩表”,字段ID(文本,主键)、Name(文本)、Score(数字,长整型)。2.窗体设计:拖放DataGridView(Name=dgvScore),设置Dock属性为Top;拖放三个Label(提示“学号:”“姓名:”“成绩:”),三个TextBox(Name=txtID、txtName、txtScore);拖放四个Button(Name=btnAdd、btnUpdate、btnDelete、btnSearch,Caption分别为“添加”“修改”“删除”“查询”);拖放Label(Name=lblMsg),设置AutoSize=True。3.代码实现:'引用ADODB(需在工程→引用中勾选MicrosoftActiveXDataObjects2.8Library)DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetPrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.Load'连接数据库并加载数据conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=score.mdb"conn.OpenLoadData()EndSubPrivateSubLoadData()'刷新DataGridViewrs.Closers.Open"SELECTFROM成绩表",conn,adOpenKeyset,adLockOptimisticdgvScore.DataSource=rsEndSubPrivateSubbtnAdd_Click(senderAsObject,eAsEventArgs)HandlesbtnAdd.ClickIftxtID.Text=""OrtxtName.Text=""OrtxtScore.Text=""ThenlblMsg.Text="请填写完整信息"ReturnEndIfIfNotIsNumeric(txtScore.Text)ThenlblMsg.Text="成绩需为数字"ReturnEndIfDimscoreAsInteger=Val(txtScore.Text)Ifscore<0Orscore>100ThenlblMsg.Text="成绩需在0-100之间"ReturnEndIf'检查学号是否存在rs.Open"SELECTFROM成绩表WHEREID='"&txtID.Text&"'",connIfNotrs.EOFThenlblMsg.Text="学号重复"rs.CloseReturnEndIf'添加记录rs.AddNewrs.Fields("ID")=txtID.Textrs.Fields("Name")=txtName.Textrs.Fields("Score")=scorers.UpdateLoadData()lblMsg.Text="添加成功"EndSubPrivateSubbtnUpdate_Click(senderAsObject,eAsEventArgs)HandlesbtnUpdate.ClickIfdgvScore.SelectedRows.Count=0ThenlblMsg.Text="请选择要修改的记录"ReturnEndIfDimcurrentIDAsString=dgvScore.SelectedRows(0).Cells("ID").Value.ToString()IfNotIsNumeric(txtScore.Text)ThenlblMsg.Text="成绩需为数字"ReturnEndIfDimscoreAsInteger=Val(txtScore.Text)Ifscore<0Orscore>100ThenlblMsg.Text="成绩需在0-100之间"ReturnEndIfrs.Open"SELECTFROM成绩表WHEREID='"¤tID&"'",connrs.Fields("Name")=txtName.Textrs.Fields("Score")=scorers.UpdateLoadData()lblMsg.Text="修改成功"EndSubPrivateSubbtnDelete_Click(senderAsObject,eAsEventArgs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校小摊活动策划方案(3篇)
- 内河航道疏浚安全管理制度(3篇)
- 2026重庆汇人数智科技有限公司招聘1人考试备考题库及答案解析
- 2026湖北武汉市泛半导体产业园核心管理团队招聘6人备考考试试题及答案解析
- 2026广西百色市事业单位招聘1563人考试参考试题及答案解析
- 新生儿安全睡眠环境创设
- 2026广西桂林生态资源开发集团有限公司招聘2人备考考试试题及答案解析
- 2026山东济南市莱芜区事业单位公开招聘初级综合类岗位人员参考考试题库及答案解析
- 2026江西南昌市社会福利院招聘2人参考考试题库及答案解析
- 2026浙江湘湖实验室博士后招聘(第一批)考试参考题库及答案解析
- 花卉学教案及讲稿
- 保利入职培训
- 2023年福建省能源石化集团有限责任公司社会招聘笔试真题
- 牛羊肉精深加工项目可行性研究报告
- 普通国省道养护工程(线预防养护)设计说明
- FZT 43046-2017 锦纶弹力丝织物
- 无人驾驶(从想象到现实)
- 三片罐行业分析
- 道德经和道家智慧课件
- 中国家庭金融调查报告
- 高中数学人教A版(2019)选择性必修第三册教材解读与教学分析 课件-2023年高中数学新教材培训
评论
0/150
提交评论