vb上机题库及答案_第1页
vb上机题库及答案_第2页
vb上机题库及答案_第3页
vb上机题库及答案_第4页
vb上机题库及答案_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

vb上机题库及答案VB上机题库及答案一、选择题(每题2分,共20分)1.在VB中,下列哪个是正确的变量命名?A.2nameB.name$C.strNameD.myname2.下列哪个不是VB的基本数据类型?A.IntegerB.StringC.ArrayD.Boolean3.在VB中,要声明一个整型变量,应该使用哪个关键字?A.DimB.IntegerC.VarD.Int4.下列哪个是VB的循环结构?A.for...nextB.if...thenC.select...caseD.with...endwith5.在VB中,要显示一个消息框,应该使用哪个函数?A.MsgBoxB.InputBoxC.PrintD.Alert6.下列哪个是VB的合法注释符号?A.//B.//C.'D.7.在VB中,要处理窗体的加载事件,应该使用哪个事件过程?A.ClickB.LoadC.ActivateD.Resize8.下列哪个是VB的数组声明方式?A.Dimarr()AsIntegerB.ArrayarrAsIntegerC.DeclarearrAsIntegerD.CreatearrAsInteger9.在VB中,要打开一个文件进行读取,应该使用哪个语句?A.OpenForOutputB.OpenForInputC.OpenForAppendD.OpenForBinary10.下列哪个是VB的合法运算符?A.=B.==C.===D.:=二、填空题(每空2分,共20分)1.在VB中,声明常量使用关键字______。2.VB中,用于获取用户输入的函数是______。3.在VB中,字符串连接运算符是______。4.要声明一个窗体级别的变量,应该使用______关键字。5.在VB中,用于判断条件的语句是______。6.VB中,用于循环执行固定次数的循环结构是______。7.在VB中,要退出循环,可以使用语句______。8.VB中,用于声明过程的语句是______。9.在VB中,用于显示窗体的方法是______。10.在VB中,用于添加控件到窗体的方法是______。三、判断题(每题2分,共10分)1.VB中,变量名可以以数字开头。()2.在VB中,数组的下标从1开始。()3.VB中,一个事件过程可以有多个参数。()4.在VB中,SelectCase语句可以处理多个条件分支。()5.VB中,DoWhile循环至少执行一次。()四、简答题(每题10分,共30分)1.简述VB中变量的作用域及其种类。2.解释VB中事件驱动的编程模型。3.简述在VB中如何使用ADO对象访问数据库。五、编程题(每题20分,共40分)1.编写VB程序,实现一个简单的计算器,能够进行加、减、乘、除四则运算。2.编写VB程序,实现一个学生信息管理系统,能够添加、删除、查询和显示学生信息。答案:一、选择题(每题2分,共20分)1.答案:C解释:变量命名规则是以字母或下划线开头,可以包含字母、数字和下划线,但不能包含空格或特殊字符。选项A以数字开头,不合法;选项B使用了VB6.0中的类型声明符号,不是变量名;选项D包含空格,不合法;选项C符合变量命名规则。2.答案:C解释:VB的基本数据类型包括Integer(整数)、String(字符串)、Boolean(布尔值)、Double(双精度浮点数)等。Array(数组)不是基本数据类型,而是一种复合数据类型,由其他数据类型组成。3.答案:A解释:在VB中,使用Dim关键字声明变量。例如:DimxAsInteger。Integer是数据类型,不是声明变量的关键字。Var和Int不是VB中的关键字。4.答案:A解释:VB中的循环结构包括For...Next、Do...Loop、While...Wend等。If...Then是条件语句,Select...Case是多分支选择语句,With...EndWith是简化对象引用的语句。5.答案:A解释:MsgBox函数用于显示消息框。InputBox函数用于获取用户输入,Print方法用于在窗体或打印机上输出,Alert不是VB中的函数。6.答案:C解释:在VB中,注释符号是单引号(')。//和//是C++或Java中的注释符号,不是VB中的注释符号。7.答案:B解释:窗体的Load事件在窗体被加载到内存时触发。Click事件在窗体被单击时触发,Activate事件在窗体成为活动窗口时触发,Resize事件在窗体大小改变时触发。8.答案:A解释:在VB中,使用Dim关键字声明数组,例如:Dimarr()AsInteger。其他选项都不是VB中正确的数组声明方式。9.答案:B解释:在VB中,使用OpenForInput语句打开文件进行读取。OpenForOutput用于写入文件,OpenForAppend用于追加内容,OpenForBinary用于二进制模式访问。10.答案:A解释:在VB中,赋值运算符是=。==和===不是VB中的运算符,:=是Pascal或某些其他语言中的运算符。二、填空题(每空2分,共20分)1.答案:Const解释:在VB中,使用Const关键字声明常量,例如:ConstPIAsDouble=3.14159。常量一旦声明就不能修改。2.答案:InputBox解释:InputBox函数用于显示一个对话框,提示用户输入信息,并返回用户输入的字符串。例如:DimnameAsString=InputBox("请输入您的姓名","输入")。3.答案:&解释:在VB中,字符串连接运算符是&。例如:"Hello"&"World"的结果是"HelloWorld"。4.答案:Dim解释:在窗体代码的通用声明部分使用Dim关键字声明的变量是窗体级别的变量,可以在窗体的任何过程中访问。5.答案:If...Then解释:If...Then语句用于根据条件执行不同的代码块。例如:Ifx>0ThenMsgBox("x是正数")。6.答案:For...Next解释:For...Next循环用于循环执行固定次数的代码块。例如:Fori=1To10MsgBox(i)Next。7.答案:ExitDo或ExitFor解释:ExitDo用于退出Do循环,ExitFor用于退出For循环。这两个语句都可以立即终止循环的执行。8.答案:Sub或Function解释:Sub用于声明没有返回值的过程,Function用于声明有返回值的过程。例如:SubMySub()EndSub或FunctionMyFunc()AsIntegerEndFunction。9.答案:Show解释:使用Show方法可以显示窗体。例如:Form1.Show。如果窗体尚未加载,VB会先加载窗体再显示。10.答案:Add解释:使用Controls集合的Add方法可以向窗体添加控件。例如:Me.Controls.Add("CommandButton","cmdButton")。三、判断题(每题2分,共10分)1.答案:错误解释:在VB中,变量名必须以字母或下划线开头,不能以数字开头。2.答案:错误解释:在VB中,数组的下标默认从0开始,除非使用OptionBase语句指定从1开始。3.答案:正确解释:VB中,事件过程可以有多个参数,例如:PrivateSubCommand1_Click(IndexAsInteger,ByValValueAsString)。4.答案:正确解释:SelectCase语句可以处理多个条件分支,通过Case子句指定不同的条件。5.答案:错误解释:DoWhile循环在条件为真时执行,如果条件一开始就是假的,循环可能一次也不执行。四、简答题(每题10分,共30分)1.答案:在VB中,变量的作用域决定了变量可以被访问的范围。主要有三种作用域:-过程级别(局部变量):在过程内部声明,只能在该过程中访问。使用Dim或Static关键字声明。-窗体/模块级别:在窗体或模块的通用声明部分使用Dim、Private或Public声明,可以在该窗体或模块的所有过程中访问。-全局级别:在标准模块中使用Public关键字声明,可以在整个应用程序的所有模块中访问。例如:```vb'过程级别变量SubMySub()DimlocalVarAsInteger'只能在MySub中访问EndSub'窗体级别变量PrivateformVarAsString'可以在窗体的所有过程中访问'全局变量PublicglobalVarAsDouble'可以在整个应用程序中访问```2.答案:事件驱动的编程模型是VB的核心编程方式,其特点是:-程序的执行流程由事件(如鼠标点击、键盘输入、定时器触发等)驱动。-程序由事件处理过程(如Button_Click、Form_Load等)组成。-事件处理过程与特定的事件关联,当事件发生时,对应的事件处理过程自动执行。-程序不需要显式地调用事件处理过程,系统会根据事件的发生自动调用。例如,当用户点击按钮时,系统会自动调用该按钮的Click事件处理过程:```vbPrivateSubbtnCalculate_Click(senderAsObject,eAsEventArgs)HandlesbtnCalculate.Click'当btnCalculate按钮被点击时执行DimresultAsInteger=105MessageBox.Show("结果是:"&result.ToString())EndSub```3.答案:在VB中使用ADO对象访问数据库的步骤如下:-引用ADO库:在项目中添加对"MicrosoftActiveXDataObjectsx.xLibrary"的引用。-创建连接对象:使用Connection对象建立与数据库的连接。-打开连接:使用Connection对象的Open方法建立连接。-创建命令对象:使用Command对象执行SQL语句或存储过程。-执行命令:使用Command对象的Execute方法执行SQL查询或操作。-处理结果:对于查询操作,可以使用Recordset对象获取结果集。-关闭连接:使用Connection对象的Close方法关闭连接。例如:```vbDimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimcmdAsNewADODB.Command'设置连接字符串conn.ConnectionString="Provider=SQLOLEDB;DataSource=服务器名;InitialCatalog=数据库名;UserID=用户名;Password=密码"'打开连接conn.Open()'创建命令cmd.ActiveConnection=conncmd.CommandText="SELECTFROM学生表WHERE年龄>20"cmd.CommandType=ADODB.CommandTypeEnum.adCmdText'执行命令并获取结果集rs=cmd.Execute()'处理结果集DoWhileNotrs.EOFDebug.Print(rs("姓名").ToString())rs.MoveNext()Loop'关闭连接rs.Close()conn.Close()```五、编程题(每题20分,共40分)1.答案:```vbPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.Load'设置窗体标题Me.Text="简单计算器"'创建并配置控件DimlblFirstAsNewLabel()lblFirst.Text="第一个数:"lblFirst.Location=NewPoint(20,20)lblFirst.AutoSize=TrueMe.Controls.Add(lblFirst)DimtxtFirstAsNewTextBox()txtFirst.Location=NewPoint(100,20)txtFirst.Width=100Me.Controls.Add(txtFirst)DimlblSecondAsNewLabel()lblSecond.Text="第二个数:"lblSecond.Location=NewPoint(20,60)lblSecond.AutoSize=TrueMe.Controls.Add(lblSecond)DimtxtSecondAsNewTextBox()txtSecond.Location=NewPoint(100,60)txtSecond.Width=100Me.Controls.Add(txtSecond)DimlblOperatorAsNewLabel()lblOperator.Text="运算符:"lblOperator.Location=NewPoint(20,100)lblOperator.AutoSize=TrueMe.Controls.Add(lblOperator)DimcboOperatorAsNewComboBox()cboOperator.Items.Add("+")cboOperator.Items.Add("-")cboOperator.Items.Add("")cboOperator.Items.Add("/")cboOperator.Location=NewPoint(100,100)cboOperator.Width=100Me.Controls.Add(cboOperator)DimbtnCalculateAsNewButton()btnCalculate.Text="计算"btnCalculate.Location=NewPoint(20,140)btnCalculate.Width=80AddHandlerbtnCalculate.Click,AddressOfbtnCalculate_ClickMe.Controls.Add(btnCalculate)DimlblResultAsNewLabel()lblResult.Text="结果:"lblResult.Location=NewPoint(20,180)lblResult.AutoSize=TrueMe.Controls.Add(lblResult)DimtxtResultAsNewTextBox()txtResult.Location=NewPoint(100,180)txtResult.Width=100txtResult.ReadOnly=TrueMe.Controls.Add(txtResult)EndSubPrivateSubbtnCalculate_Click(senderAsObject,eAsEventArgs)Try'获取输入值Dimnum1AsDouble=Double.Parse(txtFirst.Text)Dimnum2AsDouble=Double.Parse(txtSecond.Text)DimopAsString=cboOperator.SelectedItem.ToString()DimresultAsDouble=0'执行运算SelectCaseopCase"+"result=num1+num2Case"-"result=num1-num2Case""result=num1num2Case"/"Ifnum2=0ThenMessageBox.Show("除数不能为零!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)ReturnEndIfresult=num1/num2EndSelect'显示结果txtResult.Text=result.ToString()CatchexAsExceptionMessageBox.Show("输入有误,请检查输入!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)EndTryEndSubEndClass```2.答案:```vb'学生信息类PublicClassStudentPublicPropertyIdAsIntegerPublicPropertyNameAsStringPublicPropertyAgeAsIntegerPublicPropertyGenderAsStringPublicPropertyMajorAsStringPublicOverridesFunctionToString()AsStringReturn$"ID:{Id},姓名:{Name},年龄:{Age},性别:{Gender},专业:{Major}"EndFunctionEndClass'主窗体PublicClassMainFormPrivatestudentsAsNewList(OfStudent)PrivatecurrentStudentAsStudent=NothingPrivateSubMainForm_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadMe.Text="学生信息管理系统"'创建菜单栏DimmenuStripAsNewMenuStrip()DimfileMenuAsNewToolStripMenuItem("文件")DimaddMenuItemAsNewToolStripMenuItem("添加学生")AddHandleraddMenuItem.Click,AddressOfAddStudentfileMenu.DropDownItems.Add(addMenuItem)DimeditMenuItemAsNewToolStripMenuItem("编辑学生")AddHandlereditMenuItem.Click,AddressOfEditStudentfileMenu.DropDownItems.Add(editMenuItem)DimdeleteMenuItemAsNewToolStripMenuItem("删除学生")AddHandlerdeleteMenuItem.Click,AddressOfDeleteStudentfileMenu.DropDownItems.Add(deleteMenuItem)DimexitMenuItemAsNewToolStripMenuItem("退出")AddHandlerexitMenuItem.Click,AddressOfExitApplicationfileMenu.DropDownItems.Add(exitMenuItem)menuStrip.Items.Add(fileMenu)Me.Controls.Add(menuStrip)'创建主界面CreateMainInterface()EndSubPrivateSubCreateMainInterface()'学生列表DimlblStudentsAsNewLabel()lblStudents.Text="学生列表:"lblStudents.Location=NewPoint(20,50)lblStudents.AutoSize=TrueMe.Controls.Add(lblStudents)DimlstStudentsAsNewListBox()lstStudents.Location=NewPoint(20,80)lstStudents.Width=300lstStudents.Height=300AddHandlerlstStudents.SelectedIndexChanged,AddressOfStudentSelectedMe.Controls.Add(lstStudents)'学生详情DimlblDetailsAsNewLabel()lblDetails.Text="学生详情:"lblDetails.Location=NewPoint(350,50)lblDetails.AutoSize=TrueMe.Controls.Add(lblDetails)DimlblIdAsNewLabel()lblId.Text="ID:"lblId.Location=NewPoint(350,80)lblId.AutoSize=TrueMe.Controls.Add(lblId)DimtxtIdAsNewTextBox()txtId.Location=NewPoint(400,80)txtId.Width=150txtId.ReadOnly=TrueMe.Controls.Add(txtId)DimlblNameAsNewLabel()lblName.Text="姓名:"lblName.Location=NewPoint(350,110)lblName.AutoSize=TrueMe.Controls.Add(lblName)DimtxtNameAsNewTextBox()txtName.Location=NewPoint(400,110)txtName.Width=150Me.Controls.Add(txtName)DimlblAgeAsNewLabel()lblAge.Text="年龄:"lblAge.Location=NewPoint(350,140)lblAge.AutoSize=TrueMe.Controls.Add(lblAge)DimtxtAgeAsNewTextBox()txtAge.Location=NewPoint(400,140)txtAge.Width=150Me.Controls.Add(txtAge)DimlblGenderAsNewLabel()lblGender.Text="性别:"lblGender.Location=NewPoint(350,170)lblGender.AutoSize=TrueMe.Controls.Add(lblGender)DimcboGenderAsNewComboBox()cboGender.Items.Add("男")cboGender.Items.Add("女")cboGender.Location=NewPoint(400,170)cboGender.Width=150Me.Controls.Add(cboGender)DimlblMajorAsNewLabel()lblMajor.Text="专业:"lblMajor.Location=NewPoint(350,200)lblMajor.AutoSize=TrueMe.Controls.Add(lblMajor)DimtxtMajorAsNewTextBox()txtMajor.Location=NewPoint(400,200)txtMajor.Width=150Me.Controls.Add(txtMajor)DimbtnSaveAsNewButton()btnSave.Text="保存"btnSave.Location=NewPoint(350,230)btnSave.Width=80AddHandlerbtnSave.Click,AddressOfSaveStudentMe.Controls.Add(btnSave)DimbtnCancelAsNewButton()btnCancel.Text="取消"btnCancel.Location=NewPoint(450,230)btnCancel.Width=80AddHandlerbtnCancel.Click,AddressOfCancelEditMe.Controls.Add(btnCancel)'查询功能DimlblSearchAsNewLabel()lblSearch.Text="查询:"lblSearch.Location=NewPoint(20,400)lblSearch.AutoSize=TrueMe.Controls.Add(lblSearch)DimtxtSearchAsNewTextBox()txtSearch.Location=NewPoint(70,400)txtSearch.Width=150AddHandlertxtSearch.TextChanged,AddressOfSearchStudentsMe.Controls.Add(txtSearch)'保存控件的引用以便后续使用lstStudents.Tag=lstStudentstxtId.Tag=txtIdtxtName.Tag=txtNametxtAge.Tag=txtAgecboGender.Tag=cboGendertxtMajor.Tag=txtMajorEndSubPrivateSubAddStudent(senderAsObject,eAsEventArgs)currentStudent=NewStudent()ClearInputFields()CType(Me.Controls("txtId"),TextBox).ReadOnly=FalseCType(Me.Controls("txtId"),TextBox).Text=(students.Count+1).ToString()EndSubPrivateSubEditStudent(senderAsObject,eAsEventArgs)IfcurrentStudentIsNothingThenMessageBox.Show("请先选择一个学生!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)ReturnEndIf'允许编辑CType(Me.Controls("txtName"),TextBox).ReadOnly=FalseCType(Me.Controls("txtAge"),TextBox).ReadOnly=FalseCType(Me.Controls("cboGender"),ComboBox).Enabled=TrueCType(Me.Controls("txtMajor"),TextBox).ReadOnly=FalseEndSubPrivateSubDeleteStudent(senderAsObject,eAsEventArgs)IfcurrentStudentIsNothingThenMessageBox.Show("请先选择一个学生!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)ReturnEndIfIfMessageBox.Show($"确定要删除学生{currentStudent.Name}吗?","确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.YesThenstudents.Remove(currentStudent)RefreshStudentList()ClearInputFields()currentStudent=NothingEndIfEndSubPrivateSubSaveStudent(senderAsObject,eAsEventArgs)DimidAsIntegerIfInteger.TryParse(CType(Me.Controls("txtId"),TextBox).Text,id)ThenDimnameAsString=CType(Me.Controls("txtName"),TextBox).TextDimageAsIntegerIfInteger.TryParse(CType(Me.Controls("txtAge"),TextBox).Text,age)ThenDimgenderAsString=CType(Me.Controls("cboGender"),ComboBox).SelectedItem.ToString()DimmajorAsString=CType(Me.Controls("txtMajor"),TextBox).TextIfcurrentStudentIsNothingThen'添加新学生currentStudent=NewStudent()currentStudent.Id=idcurrentStudent.Name=namecurrentStudent.Age=agecurrentStudent.Gender=gendercurrentStudent.Major=majorstudents.Add(currentStudent)Else'更新现有学生currentStudent.Name=namecurrentStudent.Age=agecurrentStudent.Gender=gendercurrentStudent.Major=majorEndIfRefreshStudentList()ClearInputFields()currentStudent=NothingMessageBox.Show("保存成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)ElseMessageBox.Show("年龄必须是数字!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)EndIfElseMessageBox.Show("ID必须是数字!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)EndIfEndSubPrivateSubCancelEdit(senderAsObject,eAsEventArgs)ClearInputFields()currentStudent=NothingEndSubPrivateSubStudentSelected(senderAsObject,eAsEventArgs)DimlstStudentsAsListBox=CType(sender,ListBox)IflstStudents.SelectedItemIsNotNothingThencurrentStudent=CType(lstStudents.SelectedItem,Student)DisplayStudent(currentStudent)EndIfEndSubPrivateSubSearchStudents(senderAsObject,eAsEventArgs)DimsearchTextAsString=CType(sender,TextBox).Text.ToLower()IfString.IsNullOrEmpty(searchText)ThenRefreshStudentList()ReturnEndIfDimfilteredStudents=students.Where(Function(s)

温馨提示

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

评论

0/150

提交评论