VB编程学习讨论试题及答案_第1页
VB编程学习讨论试题及答案_第2页
VB编程学习讨论试题及答案_第3页
VB编程学习讨论试题及答案_第4页
VB编程学习讨论试题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

VB编程学习讨论试题及答案一、选择题(每题2分,共20分)1.以下关于VB变量作用域的描述中,正确的是()。A.用Dim声明的变量一定是局部变量B.模块级变量需在标准模块的声明部分用Private声明C.全局变量需在窗体模块的声明部分用Public声明D.过程内用Static声明的变量在过程结束后值会保留2.下列事件过程定义中,符合VB命名规则的是()。A.Form_Click()B.Command1_Change()C.Text1_Load()D.Label1_MouseDown()3.执行语句“x=InputBox("请输入数值:","输入框","默认值")”后,若用户输入“123abc”并点击确定,变量x的类型和值分别是()。A.数值型,123B.字符串型,"123abc"C.变体类型,123abcD.字符串型,"默认值"4.声明数组“Dimarr(2To5,3)AsInteger”后,该数组的元素个数为()。A.12B.16C.20D.245.关于Do循环结构,以下说法正确的是()。A.DoWhile...Loop至少执行一次循环体B.Do...LoopWhile在条件为False时停止循环C.DoUntil...Loop的循环体执行次数可能为0D.ExitDo只能用于DoWhile循环6.以下关于函数过程(Function)和子过程(Sub)的描述,错误的是()。A.函数过程可以通过Return语句返回值,子过程不能B.调用子过程使用Call语句或直接写过程名,函数过程可作为表达式一部分C.两者都可以有参数,参数传递方式包括按值和按地址D.函数过程的名称可以被赋值,子过程的名称不能7.执行“Open"data.txt"ForAppendAs1”语句后,对文件的操作是()。A.覆盖原有内容并写入新数据B.从文件开头读取数据C.在文件末尾追加新数据D.读取文件内容并清空文件8.使用ADO对象连接数据库时,若要执行SQL查询并返回记录集,需要用到的对象是()。A.ConnectionB.RecordsetC.CommandD.Field9.若要使菜单控件不可用,应设置其()属性为False。A.VisibleB.EnabledC.CheckedD.Caption10.执行以下代码时,若输入“abc”,程序的输出结果是()。```vbPrivateSubCommand1_Click()DimxAsIntegerOnErrorResumeNextx=Val(InputBox("请输入数字:"))PrintErr.NumberEndSub```A.0B.13(类型不匹配)C.5(无效的过程调用)D.91(对象变量未设置)二、填空题(每空2分,共20分)1.声明动态数组时,若要保留原有数据,需使用____关键字。2.文本框(TextBox)的____属性用于设置其显示的文本内容,____属性用于限制输入的最大字符数。3.列表框(ListBox)的____方法用于向列表中添加项目,____属性用于返回当前选中项目的索引(从0开始)。4.执行“Fori=3To1Step-1”循环时,循环变量i的取值依次为____。5.若要将字符串“VB编程”逆序输出为“程编BV”,可使用____函数结合Mid函数实现。6.在VB中,文件操作时“Close1”语句的作用是____。7.ADO连接字符串中,“DataSource”参数用于指定____。三、程序分析题(每题10分,共30分)1.分析以下代码的输出结果,并说明执行过程。```vbPrivateSubCommand1_Click()DimiAsInteger,sumAsIntegersum=0Fori=1To5IfiMod2=0Thensum=sum+iExitForEndIfsum=sum+iNextiPrint"sum="&sumEndSub```2.阅读以下冒泡排序代码,写出数组arr最终的排序结果,并描述每一轮排序的关键步骤。```vbPrivateSubCommand2_Click()Dimarr()AsInteger,iAsInteger,jAsInteger,tempAsIntegerarr=Array(5,3,8,1,4)Fori=0ToUBound(arr)1Forj=0ToUBound(arr)i1Ifarr(j)>arr(j+1)Thentemp=arr(j)arr(j)=arr(j+1)arr(j+1)=tempEndIfNextjNextiFori=0ToUBound(arr)Printarr(i);NextiEndSub```3.以下是递归求阶乘的函数,分析当调用fact(4)时,函数的调用和返回过程,并计算最终返回值。```vbFunctionfact(nAsInteger)AsIntegerIfn=0Thenfact=1Elsefact=nfact(n1)EndIfEndFunction```四、编程题(每题15分,共30分)1.设计一个VB应用程序,界面包含:两个文本框(Text1、Text2)用于输入数学和语文成绩,一个按钮(Command1)用于计算平均分,一个标签(Label3)用于显示结果。要求:输入成绩时,限制只能输入0-100之间的数值;点击按钮后,计算平均分(保留2位小数)并显示在Label3中;处理输入非数值的错误,提示“请输入有效成绩!”。2.使用ADO对象连接Access数据库(数据库路径:D:\score.mdb,表名:students,字段:学号(sno)、姓名(sname)、分数(score)),编写代码实现:点击按钮(Command2)时,查询分数大于等于90分的学生记录,并将结果显示在列表框(List1)中(格式:学号-姓名-分数)。答案一、选择题1.D(Static变量在过程结束后保留值)2.A(事件过程命名为“对象名_事件名”,Form的Click事件正确)3.B(InputBox返回字符串,无论输入内容)4.B(行数:5-2+1=4,列数:0-3+1=4,总元素4×4=16)5.C(DoUntil条件为False时执行循环,可能不执行)6.A(VB中函数通过函数名返回值,无Return语句)7.C(Append模式在文件末尾追加)8.B(Recordset用于存储查询结果)9.B(Enabled控制是否可用,Visible控制是否可见)10.A(OnErrorResumeNext跳过错误,Err.Number为0)二、填空题1.ReDimPreserve2.Text;MaxLength3.AddItem;ListIndex4.3,2,15.StrReverse6.关闭编号为1的文件7.数据库文件路径三、程序分析题1.输出结果:sum=1执行过程:i=1时,1Mod2=1≠0,sum=0+1=1;i=2时,2Mod2=0,sum=1+2=3,执行ExitFor退出循环。最终sum=3?(注:原代码中ExitFor在sum=sum+i之后,实际i=2时sum=1(i=1时sum=1),i=2时进入If,sum=1+2=3,然后ExitFor,所以输出sum=3。原分析可能有误,正确结果应为sum=3。)修正:i=1时,条件不满足,sum=0+1=1;i=2时,条件满足,sum=1+2=3,执行ExitFor,循环终止。最终输出sum=3。2.最终排序结果:1,3,4,5,8排序步骤:第一轮(i=0):比较4次,交换5↔3、5↔1、8↔1,数组变为3,5,1,4,8;第二轮(i=1):比较3次,交换5↔1、5↔4,数组变为3,1,4,5,8;第三轮(i=2):比较2次,交换3↔1,数组变为1,3,4,5,8;第四轮(i=3):比较1次,无交换,排序完成。3.调用过程:fact(4)→4×fact(3)→3×fact(2)→2×fact(1)→1×fact(0)→fact(0)=1;返回过程:fact(1)=1×1=1;fact(2)=2×1=2;fact(3)=3×2=6;fact(4)=4×6=24。最终返回24。四、编程题1.关键代码:```vbPrivateSubCommand1_Click()DimmathAsSingle,chineseAsSingle,avgAsSingleOnErrorGoToerrHandler'验证数学成绩IfText1.Text=""ThenMsgBox"数学成绩不能为空!"Text1.SetFocusExitSubEndIfmath=Val(Text1.Text)Ifmath<0Ormath>100ThenMsgBox"数学成绩应在0-100之间!"Text1.SetFocusExitSubEndIf'验证语文成绩IfText2.Text=""ThenMsgBox"语文成绩不能为空!"Text2.SetFocusExitSubEndIfchinese=Val(Text2.Text)Ifchinese<0Orchinese>100ThenMsgBox"语文成绩应在0-100之间!"Text2.SetFocusExitSubEndIf'计算平均分avg=(math+chinese)/2Label3.Caption="平均分:"&Format(avg,"0.00")ExitSuberrHandler:MsgBox"请输入有效成绩!"IfErr.Number=13Then'类型不匹配错误IfText1.Text<>""AndNotIsNumeric(Text1.Text)ThenText1.SetFocusElseText2.SetFocusEndIfEndIfEndSub'限制文本框只能输入数字(在文本框的KeyPress事件中添加)PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfNot(KeyAscii>=48AndKeyAscii<=57)AndKeyAscii<>8AndKeyAscii<>46ThenKeyAscii=0EndIfEndSubPrivateSubText2_KeyPress(KeyAsciiAsInteger)'同Text1_KeyPressEndSub```2.关键代码:```vbPrivateSubCommand2_Click()DimconnAsNewADODB.Connecti

温馨提示

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

评论

0/150

提交评论