为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB二级上机考试辅导

2010-11-21 31页 doc 985KB 17阅读

用户头像

is_667549

暂无简介

举报
VB二级上机考试辅导VB二级辅导 第十四章 上机考试 (一)知识点 1、考试方式: 时间90分钟,从登录成功进入开始计时,考试界面有时钟显示倒计时,提醒考生掌握时间。 总分100分,由于采用计算机阅卷,要求运行效果和提示一致,如果不能运行则没有得分。 2、考试内容: (1)基本操作 2题,每题15分,共30分 主要考查简单界面的制作如菜单、常用控件,属性设置。以操作为主,通常不要编写代码。 (2)简单应用 2题,每题20分,共40分 主要考查循环、数组、过程部分的常用算法。以程序填空为主,有时有小段程序编写。 (3)综合应用 1题,每题30分,共...
VB二级上机考试辅导
VB二级辅导 第十四章 上机考试 (一)知识点 1、考试方式: 时间90分钟,从登录成功进入开始计时,考试界面有时钟显示倒计时,提醒考生掌握时间。 总分100分,由于采用计算机阅卷,要求运行效果和提示一致,如果不能运行则没有得分。 2、考试内容: (1)基本操作 2题,每题15分,共30分 主要考查简单界面的制作如菜单、常用控件,属性设置。以操作为主,通常不要编写代码。 (2)简单应用 2题,每题20分,共40分 主要考查循环、数组、过程部分的常用算法。以程序填空为主,有时有小段程序编写。 (3)综合应用 1题,每题30分,共30分 主要考查利用文件打开、读写、保存数据文件(基本都是顺序文件),综合应用循环、数组、过程来处理一组数据。或者利用Timer控件实现动画效果等。以程序填空为主,有时有小段程序编写。 3、考试要点: (1)理解VB环境默认的路径即App.Path,掌握新建、打开、保存、重命名文件等操作; 【难点】 App.Path就是VB环境默认的路径,会随着保存文件、打开文件的路径而变化,因此文件的操作例如“另存为”、“打开”的默认路径就随着App.Path也在变化。 如果启动VB然后“新建”工程,此时的App.Path就是VB的安装路径 例:如果安装在C分区,通常就是”C:\Program Files\Microsoft Visual Studio\VB98”, 如果安装在D分区,就是”D:\Program Files\Microsoft Visual Studio\VB98”,如图6-1所示: 图6-1 如果保存工程,就会出现“文件另存为”对话框的默认路径就是…VB98,如图6-2所示: 图6-2 因此很多同学保存后就不知道文件存在哪里了,原因就是路径的概念不清楚。所以在保存之前应该要清楚新建的工程保存在哪个分区的那个文件夹下(就是路径)。 如果题目要求保存在某个指定的路径下,比如“D:\liuah\VB\VB等级考试\上机题\djks01”,那就需要在保存对话框中更改路径,然后将新建的工程保存为要求的名称,如“djks001”,扩展名根据保存类型自动添加。 如果保存成功,此时的App.Path就是文件的保存路径。如图6-3所示: 图6-3 此时如果按下保存按钮 ,就不会出现“文件另存为”对话框,直接保存对文件所作的修改;如果重新保存,就要用“文件”-“另存为”,此时“文件另存为”的默认路径应该是什么?——就是“D:\liuah\VB\VB等级考试\上机题\djks01”,如图 6-4所示: 图 6-4 如果启动VB后打开“现存”工程,或者从“文件”-“打开”文件,App.Path随着打开的文件的路径而变化。 【难点小结】 首先建立工程存放的文件夹(即明确路径),然后新建工程,建好之后不要着急做题,首先保存到自己的文件夹中(此时App.Path已经改变),然后再做题。做完题,先按“保存”按钮(常用工具栏上的磁盘图标),再调试。调试中可能还有改动,最后成功再保存。 这就是“三先三再”——先建路径再建工程,先保存文件再做题,先按保存按钮再按启动(即运行)按钮。 注意:考试时启动VB应该单击考试界面上的菜单“考试项目”下的“启动VisualBasic”,这样进入的VB环境默认的路径即App.Path就是考生文件夹,一般包含准考证号。这样“保存”、“打开”文件的默认路径就是考生文件夹。 (2)理解VB的工作状态、常见错误提示的含义,掌握简单的调试; 【难点1】 VB的三种模式:设计模式、 运行模式 、中断模式如图6-5所示。设计模式用于界面设计、属性设置和代码编写,按下“启动”按钮 ,进入运行模式,如果按下“结束”按钮则回到设计模式,按下“中断”按钮或出错则进入“中断”模式。主要在中断模式下调试程序——修改代码、检查数据等。 图6-5 【难点2】 常见的错误提示主要分为语法错误和逻辑错误: 语法错误 一般是由于编辑代码时的输入失误,通常有明确的提示并且代码显示高亮。比如“变量未定义”、“缺少方法或者数据成员”等。解决是编写代码最好都用小写字体,如果是已经定义的变量或者正确的属性和方法,就会自动首字母大写。检查时只要查没有大写的(定义变量时,要养成良好习惯如首字母大写、见名知意)。 逻辑错误 一般是由于运算符使用不当、循环缺少变化或者算法思路不正确,通常运行后结果不对但是没有明确的提示。解决办法是利用调试窗口(立即窗口、本地窗口、监视窗口),设置断点和逐语句跟踪检查相关的变量、属性和表达式的值是否正确。 简单的调试方法: 在中断模式或设计模式时,在代码窗口选择怀疑出错的语句设置断点(按下F9),然后运行到断点语句处(该语句没有执行,观察左侧小箭头为当前行标记)停下,进入中断模式,前面执行过的语句中的变量、属性、表达式的值可以查看(变量和属性可以用鼠标指向直接查看,表达式可以在立即窗口用?语句查看)。如果要继续跟踪断点以后的语句执行,按下F8,配合“本地”窗口可以观察表达式变化的动态情况如图6-6所示。调试结束以后要取消断点,在代码窗口用光标点击断点语句再按下F9,断点就消失了。 图6-6 (3)理解题目要求,掌握三种题型的答题方法和常见考点。 【难点1】 简单操作题: 要求制作简单界面,并且给出图示。答题思路: ① 新建(从考试界面上的“考试项目”下的“启动VisualBasic”打开VB)工程和窗体,并添加相应的控件,按照题目要求设置名称和属性; ② 在适当的事件过程中编写简单代码。如果提示“不必定义其事件过程”,那么用事件代码实现图示的界面就不能得分;如果提示“在程序中不能使用任何变量”,那么在事件代码中对属性直接设置给定的值,用变量就不能得分。 ③ 调试运行,直到符合要求,然后按照给定的文件名保存在考生文件夹下。如果按照正确的方式启动VB即单击考试界面上的菜单“考试项目”-启动VisualBasic,在保存对话框中的默认路径就是考生文件夹。只要修改默认的文件名就可以。 常见的考点:菜单(Caption、Name)、窗体(Caption、BorderStyle)、单选和复选框(Value)、列表框(List数组中各项的添加)、文本框(Multiline 、ScrollBars)、图片框和图像框(图片加载时如何设置Autosize或Stretch属性适应控件形状)、框架、HScrollBar(Max、Min、Value等)、Timer(Enabled、Interval)以及主要的外观属性(Width、Height、Top、Left)。 【难点2】 简单应用题和综合应用题中大部分是程序填空题,主要考查程序的阅读能力,特别是子过程和函数过程的定义和调用。一般要求在有?号的地方填入正确内容(有时可能是一段程序),并且该语句用注释符(’)标明。一般窗体和工程文件都已经存在,通常要求不能修改其他部分。所以填写代码时要删除?和所有注释符(’)再调试,保存文件时不需要修改文件名和文件夹。 答题思路: ① 根据事件驱动的顺序搞清各个事件过程、函数过程或子过程应该实现怎样的功能; ② 找到需要填空的注释语句,分析该语句在整个过程代码中的作用; ③ 填写代码,并删除注释符(’),调试中注意细节要求(比如保存什么数据——所有数据还是数据的和、数据的格式——紧凑格式还是格式等),并保存文件。 常见的考点:文件的操作、列表框的主要属性、循环和数组部分的常用算法等。 【难点3】 综合应用题中很多是程序(或过程)编写题,主要考查文件操作、循环和数组的综合应用能力。 答题思路:基本和填空题类似,但是考虑的范围更加全面。 ① 根据事件驱动的顺序搞清应该有哪些事件过程、函数过程或子过程,各自应该实现怎样的功能; ② 明确已经给出代码的功能,分析还需要哪些过程代码实现什么作用; ③ 编写相应的过程代码,并调试,最后按照要求保存文件。 常见的考点:文件的操作、列表框的主要属性、循环和数组部分的常用算法等。 【难点4】 文件操作的解题思路:记住文件操作的三步曲“打开-读写-关闭” ① 打开文件:Open ?(什么路径下的文件名)For ?(什么操作) As ?(什么文件号) 第1个?:例如当前路径下的文件“in.txt”,就是App. Path & " in.txt " 第2个?:如果从给定的文件中读入数据,就是For Input;如果将数据存入某个文件,就是For Output; (其他情况请参见文件部分) 第3个?:文件号一般从#1开始,如果已经打开#1时还需要缓冲区,就用#2。 ② 关闭文件:Close ?(Open中对应的文件号比如#1) ③ 文件操作:通常是顺序文件中的数据的读出和写入。一般分以下三种情况 如果是字符串整体读入文本框或写入文件,则直接使用Input、Print(或Write)语句,例如djks123中: Open App.Path & "\in123.txt" For Input As 1 Input #1, StrText ‘读入数据 Close #1 Text1.Text = StrText Open App.Path & "\out123.txt" For Output As 1 Print #1, Text1. Text Close #1 如果是已知数据的个数和类型,则使用For语句和Input、Print(或Write)语句,例如djks083中: Open App.Path & "\" & "in0831.txt" For Input As #1 For i = 1 To 20 Input #1, Arr1(i) Next i Close #1 或者djks303中边读边写: Open FileIn For Input As #1 Open FileOut For Output As #2 For i = 1 To 8 Input #1, rec.Num, rec.Name, rec.Score Write #2, rec.Num, rec.Name, rec.Score Next i Close 如果是未知数据的个数,则使用Do-Loop循环、EOF函数和Input、Print(或Write)语句。EOF()函数为True表示读到了文件的结尾。例如djks143中。 Open App. Path & "\" & StrM For Input As #1 Open App. Path & "\" & StrN For Output As #2 Do While Not EOF(1) Input #1, g N = N + 1 S = S+ g Loop Close #1 S = S / N Write #2, S Close #2 注意:比较Print和Write输出格式的区别。 Print语句的输出和窗体、图片框类似,只是在输出内容前添加在那个文件号中输出。数据项之间是空格可以有标准格式(逗号”,”分隔)和紧凑格式(分号”;”分隔)。 例如Num、Name、Score。其中Name为字符串类型,定长为10 Print #2, rec.Num, rec.Name, rec.Score ‘标准格式,输出的效果为如图6-7 Print #2, rec.Num;rec.Name ;rec.Score ‘紧凑格式,输出的效果为如图6-8 图6-7 图6-8 Write语句的输出只有紧凑格式,并且数据项之间有逗号(“,”)分隔,字符串会自动添加双引号。 例如: Write #2, rec.Num, rec.Name, rec.Score 输出的效果如图6-9 图6-9 (二)练习 第1套 参见djks01 一、【基本操作题】 在窗体上建立一个二级菜单,含有“文件”、“编辑”两个主菜单项,名称分别为File和Edit。其中“文件”菜单包括“打开”、“关闭”、“保存”三个子菜单项(名称分别为Open、Close、Save)(如图所示)。只建立菜单,不必定义其事件过程。 注意:保存时必须存放在考生文件夹下,窗体文件名为djks011.frm,工程文件名为djks011.vbp。程序运行时的窗体界面如图所示。 【答题要点】 (1)建立工程:单击考试界面上的“考试项目”-启动VisualBasic,这样进入的VB环境默认的路径即App.Path就是考生文件夹。 (2)制作菜单:只需要设置菜单的两个属性:“标题”和“名称”。 二、【简单应用题】 在考生文件夹中有工程文件djks012.vbp及其窗体文件djks012.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?和所有注释符(’)但是不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下:在窗体上有一个列表框,名称为List1;一个文本框,名称为Text1;一个命令按钮,名称为Command1,标题为“复制”。要求程序运行后,在列表框中自动建立三个列表项,分别为“数学”、“语文”、“英语”。如果选择列表框中的一项,则单击“复制”按钮时,可以把该项复制到文本框中(如图所示)。 程序代码为: Private Sub Command1_Click() Dim i As Integer ' For i = ? To List1.ListCount - 1 If List1.Selected(i) = True Then ' ? = List1.List(i) End If Next i End Sub Private Sub Form_Load() List1.AddItem "数学" List1.AddItem "语文" List1.AddItem "英语" End Sub 【答题要点】本题考查列表框的属性和查找算法。 思路是对列表框中的所有项查找,是否被选定了,如果选定即select属性为True,则Text1中的文本(Text1.Text)就是这项。列表框中第一项下标是0,最后一项是动态的,就是项目数减1(List1.ListCount-1),循环变量i表示各项的下标,所以循环的初值为0。 【参考】第一个?填:0 第二个?填:Text1.text 或Text1 三、【综合应用题】 在名称为Form1的窗体上建立两个单选按钮,名称分别为Opt1和Opt2,标题分别为“100~200之间素数”和“200~400之间素数”;一个文本框,名称为Text1;两个命令按钮,名称分别为Cmd1和Cmd2,标题分别为“计算”、“存盘”(如图所示)。程序运行后,如果选中一个单选按钮并单击“计算”按钮,则计算出该单选按钮标题所指明的所有素数之和并在文本框中显示出来。如果单击“存盘”按钮,则把计算结果存入out013.txt文件中。补充完整窗体模块与标准模块中?处的程序使之完整。填写完毕,保存程序时必须存放在考生文件夹下,窗体文件名为djks013.frm,工程文件名为djks013.vbp。(在考生文件夹中有标准模块mode013.bas) 注意:必须把200~400之间的素数之和存入考生文件夹下的out001.txt文件中,不执行这一步没有成绩。 窗体模块中的程序为: Private Sub Cmd1_Click() Dim i As Integer Dim temp As Long temp = 0 If Opt2.Value Then For i = 200 To 400 If isprime(i) Then temp = temp + i End If Next Else For i = 100 To 200 If isprime(i) Then temp = temp + i End If Next End If 'Text1.Text = ? End Sub Private Sub Cmd2_Click() putdata "out013.txt", Text1.Text End Sub 标准模块中的程序为: Option Explicit Sub putdata(t_FileName As String, T_Str As Variant) Dim sFile As String ' sFile = "\" & ? Open App.Path & sFile For Output As #1 Print #1, T_Str Close #1 End Sub Function isprime(t_I As Integer) As Boolean Dim J As Integer isprime = False For J = 2 To t_I / 2 If t_I Mod J = 0 Then Exit For Next J If J > t_I / 2 Then isprime = True End Function 【答题要点】本题考查了文件的写入操作和素数的判断,这两个操作都用子过程和函数过程实现。 (1)Cmd1_Click()实现“计算”,两种范围内素数的和(累加在变量temp中),并且把和在Text1中显示,所以第一个?填temp。显然Function isprime(t_I As Integer) As Boolean 功能是判断t_I是否为素数,是素数返回True,否则返回False。 (2)Cmd2_Click()实现“存盘”,因为调用了子过程putdata,将Text1中的文本即素数和写入文件out001.txt,所以Sub putdata(t_FileName As String, T_Str As Variant)中的第一个参数t_FileName就是数据应该存入的文件名,第二个参数T_St就是应该存入的数据。文件操作三步曲:打开文件、读写操作、关闭文件。Open App.Path & sFile For Output As #1的含义就是打开默认路径下的文件sFile准备做写入操作,所以sFile就应该是putdata函数中的第一个参数t_FileName。 【参考答案】第一个?填temp 第二个?填t_FileName 并且一定要执行操作:选中第2个单选按钮即标题为“200~400之间素数”,然后单击“计算”和“存盘”。 第2套 参见djks02 一、【基本操作题】 在名为Form1的窗体上画一个框架,名称为Frm,标题为“框架”,高度为2000,宽度为3000;在框架中画一个文本框,名称为Text1,宽度为1000,其位置距框架的左边框500,距框架的上边框1100,文本框中的初始内容设置为“文本框”。(如图所示)。只建立控件,不必定义其事件过程。 注意:保存时必须存放在考生文件夹下,窗体文件名为djks021.frm,工程文件名为djks021.vbp。程序运行时的窗体界面如图所示。 【答题要点】本题考查框架和外观属性。 (1)框架中的控件的建立:先建立框架,然后单击文本框,鼠标指针“+”在框架中画出文本框。 (2)控件的Top和Left属性表示控件和所属于的容器控件的上边距和左边距。这里文本框不属于窗体,而是框架,所以直接设置Top为1100,Left为500。 (3)只需要设置属性不要定义事件过程,所以设置Text1的text属性为“文本框”。不要在Form​​_Load()中用代码实现。 二、【简单应用】 在考生文件夹下有工程文件djks022.vbp及其窗体文件djks022.frm,该程序是不完整的,请在有?的地方填入正确内容,然后删除?和所有注释符(’)但是不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下:在窗体上有三个复选框,名称为Check1、Check2、Check3,标题依次为“体育”、“音乐”、“美术”;一个标签,名称为:Label1,标题为“爱好”;一个命令按钮,名称为Command1,标题为“显示”。要求程序运行后,如果选中某个复选框,则当单击“显示”命令按钮时,按照下图显示相应的消息。 程序代码为: Option Explicit Private Sub Command1_Click() Cls 'Dim s As ? s = "我的爱好是" If Check1.Value = 1 Then s = s + Check1.Caption End If If Check2.Value = 1 Then s = s + Check2.Caption End If If Check3.Value = 1 Then s = s + Check3.Caption End If Print ? End Sub 【答题要点】本题考查了变量的声明和复选框的属性。 思路是定义变量s的类型,根据下一条语句s = "我的爱好是",显然是字符串类型String。然后根据各个复选框是否选中(value=1),s就增加内容(复选框的Caption),最后在窗体显示。即Print s。 【参考答案】第一个?填:String 第二个?填:s 三、【综合应用题】 在考生目录下有一个工程文件djks023.vbp,其窗体上有一个文本框,名称为Text1;还有一个命令按钮,名称为C1,标题为“计算”,如图所示。有一个函数isprime()可以在程序中直接调用,其功能是判断参数a是否为素数,如果是素数,则返回True,否则返回False。请编写适当的事件过程,使得在运行时,单击“计算”按钮,则找出小于2000的最大素数,并显示在Text1中。 注意:考生不得修改isprime()函数过程和控件的属性。 程序代码如下: Private Function isprime(a As Integer) As Boolean Dim flag As Boolean flag = True b% = 2 Do While b% <= Int(a / 2) And flag If Int(a / b%) = a / b% Then flag = False Else b% = b% + 1 End If Loop isprime = flag End Function 【答题要点】本题考查的是函数的调用和循环语句。 思路是先找到适当的事件过程,因为在C1_Click()事件中“计算”,所以打开工程,双击命令按钮C1或者单击C1然后点击工程资源管理器窗口中的代码按钮 ,都可以打开代码窗口。 然后确定循环的范围1~2000,循环体是判断循环变量i是否为素数(即isprime(i) = True)。由于要找到最大素数,所以后面找到的素数一定较大,所以存放素数的变量a就被修改为新的素数。 【参考答案】 Private Sub C1_Click() Dim a As Integer Dim i As Integer For i = 1 To 2000 If isprime(i) = True Then a = i End If Next i Text1.Text = a End Sub 第3套 参见djks03 一、【基本操作题】 在名称为Form1的窗体上画一个名称为Check1的复选框数组(Index属性从0开始),含三个复选框,其标题分别为“语文”、“数学”、“英语”,利用属性窗口设置适当的属性使“语文”未选,“数学”被选中,“英语”为灰色,再把窗体的标题设置为“选课”(如图所示)。 注意:存盘时必须存放在考生文件夹下,工程文件名为djks031.vbp,窗体文件名为djks031.frm。 【答题要点】本题考查控件数组和复选框。 (1)建立复选框数组:首先在窗体上建立一个复选框,名称为Check1,Caption为“语文”,然后用鼠标右键单击该复选框,选择“复制”,并在窗体上单击右键,进行“粘贴”,此时弹出对话框提示“是否建立控件数组”,单击“确定”,则每粘贴一次该复选框,VB会自动为其设置Index属性。最后修改属性,Check(1)的Caption属性设为“数学”,Check(2)的Caption属性设为“英语”。 (2)复选框的value属性有三种:0表示未被选中;1表示被选中;2表示不能用,即灰色显示。根据题意就应该把Check(0)的Value属性设为0、Check(1)的Value属性设为1;Check(2)的 Value属性设为2。 二、【简单应用题】 在考生目录下有一个工程文件djks032.vbp,窗体中有一个控制控钮,标题为“移动”,名称为C1;还有一个计时器,名称为Timer1。给出了两个事件过程,但并不完整, 要求:设置计时器的属性,使其在初始状态不计时; 设置计时器的属性,使其每隔0.1秒调用Timer1事件过程一次。 去掉程序中的注释符,把程序中的?改为正确的内容,使得在运行时单击“移动”按钮,则该按钮每隔0.1秒向右移动一次,当移出窗体时返回窗体的左端,如图所示。 注意:不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。 程序代码为: Private Sub C1_Click() ' Timer1.Enabled = ? End Sub Private Sub Timer1_Timer() Static a% a = a + 1 If C1.Left < Form1.Width Then ' C1.Left = ? + a Else C1.Left = 0 End If End Sub 【答题要点】本题主要考查计时器的属性和事件。 (1)Timer的两个重要属性:Enabled和Interval。根据第一个要求初始状态不计时,所以Timer1的Enabled属性设为False;再根据第二个要求时钟的间隔0.1秒。通常间隔1秒,Interval设置为1000,所以本题中时钟的Interval属性设为100。 (2)代码分析:程序运行时,单击C1 ,Timer1要发生作用,所以Timer.Enabled=True。计时器工作就会引发Timer事件,要求按钮能够向右移动,则需要使按钮的Left属性值不断增加。所以在没有移出窗体前(即C1.Left < Form1.Width),C1.Left在原来的基础上向右移动一定距离,就是C1.Left = C1.Left + a。 【参考答案】第一个?填:True 第二个?填:C1.Left 三、【综合应用题】 在名称为Form1的窗体上建立一个文本框(名称为Text1,MultiLine属性为True,ScrollBars属性为2)和两个命令按钮(名称分别为Command1和Command2,标题分别为“读入数据”和“计算保存”),如图所示。要求程序运行后,如果单击“读入数据”按钮,则读入in033.txt文件中的100个整数,放入一个数组中(数组下界为1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算数组中大于或等于400并且小于800的所有数之和,把求和结果在文本框Text1中显示出来,同时把结果存入考生文件夹中的文件out033.txt中。补充窗体模块中?处的程序。(在mode033.bas中的putdata过程可以把结果存入out033.txt文件)程序运行的窗体界面如图所示。 注意:文件必须存放在考生文件夹下,窗体文件名为djks033.frm,工程文件名为djks033.vbp,计算结果存入out033.txt,否则没有成绩。 窗体模块程序代码为: Dim i(1 To 100) As Integer Private Sub Command1_Click() Dim j As Integer j = 0 'Open App.Path & "\in033.txt" For ? As #1 For j = 1 To 100 Input #1, i(j) Next Close #1 For j = 1 To 100 Text1.Text = Text1.Text & i(j) & Space(5) Next End Sub Private Sub Command2_Click() Dim temp As Long For j = 1 To 100 ' If ? Then temp = temp + i(j) End If Next Text1.Text = temp putdata temp End Sub 标准模块程序代码为: Sub putdata(ByVal a As Integer) Dim sFile As String sFile = "\out033.txt" Open App.Path & sFile For Output As #1 Print #1, a; Close #1 End Sub 【答题要点】本题考查文件的打开命令和复杂条件的描述。 思路是按照操作过程,分析各个过程的功能: (1)Command1_Click()实现“读入数据”,文件操作三步曲:打开文件、读写操作、关闭文件。所以Open语句中的模式应该是读入数据,即For Input (2)Command2_Click()实现“计算保存”,先计算出数组中大于或等于400并且小于800的所有数之和,显然变量temp存放累加符合条件的数据i(j),所以if语句中的条件应该是i(j) >= 400 And i(j) < 800。 【参考答案】第一个?填:Input 第二个?填:i(j) >= 400 And i(j) < 800 第4套 参见djks06 一、【基本操作题】 请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。 在名称为Form1的窗体上建立一个水平滚动条,名称为HS1,其最大值为100,最小值为0(如图所示)。要求程序运行后,每次移动滚动框时,都执行语句Form1.Print HS1.Value。 注意:1)程序中不能使用任何其他变量。 2)保存时必须存放在考生文件夹下,窗体文件名为djks061.frm,工程文件名为djks061.vbp。 程序运行时的窗体界面如图所示。 【答题要点】本题考查滚动条的属性和Change事件。 (1)在窗体上建立水平滚动条,并设置Name(为HS1、Max(100)、Min(0)属性; (2)选择适当的事件才那只要移动滚动框就显示对应的值,应该放在Hs1_Change()。 【参考答案】 Private Sub HS1_Change() Cls ' 每次执行语句前,系统把窗体清空,否则新数据在换行显示。 Form1.Print HS1.Value End Sub 二、【简单应用题】 在窗体上建立一个名称为Text1的文本框和一个名称为Command1,标题为“计算”的命令按钮(如图所示)。程序运行后,单击“计算”命令按钮,通过在对话框输入整数10,放入整形变量a中,然后计算a!(提示:运算结果应放入Long型变量中),在文本框中显示结果,并把结果存入文件out062.txt中。在考生文件夹中有一个标准模块mode062.bas,该模块中提供了保存文件的过程putdata,考生可以直接调用。 注意: 保存时必须存放在考生文件夹下,窗体文件名为djks062.frm,工程文件名为djks062.vbp。 标准模块中的程序代码为: Option Explicit Sub putdata(t_FileName As String, T_str As Variant) Dim sFile As String sFile = "\" & t_FileName Open App.Path & sFile For Output As #1 Print #1, T_str Close #1 End Sub 【答题思路】本题考查利用循环实现累乘(求阶乘)和子过程putdata的调用。 (1)设计窗体和控件,并选择在适当的事件Command1_Click()中打开代码窗口。 (2)数据处理有三步:数据的输入、数据的处理、数据的输出。 本题中数据的输入:使用InputBox()函数弹出对话框用来输入数值10,并将10赋给变量a。由于InputBox()函数返回的是字符串,故需要将返回值经过Val()函数处理。 数据的处理:计算阶乘,由于是有明确的初值和终值,使用For循环语句累乘(注意:累乘积的初值为1)。 数据的输出:存入文件。分析给出的标准模块中的putdata过程,两个形式参数分别表示被存入的文件名和待输出的数据。因此调用时用"out062.txt"和CStr(temp)或Text1.Text 【参考答案】 Private Sub Command1_Click() Dim temp As Long Dim i%, a% a = Val(InputBox("请输入", , 10)) ' 数据输入 temp = 1 ' 数据处理(累乘积temp的初值为1) For i = 1 To a temp = temp * i Next i Text1.Text = CStr(temp) putdata "out062.txt", Text1.Text ' 数据输出 End Sub 【相关题目】参见djks27文件夹中djks272:在考生文件夹下有工程文件djks272.vbp及窗体文件djks272.frm,该程序是不完整的,请在有?的地方填入正确内容,然后删除?及所有注释符(′),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题在名称为Form1的窗体上有一个文本框Text1、两个Label控件和两个命令按钮,Label控件均为提示信息。命令按钮的名称分别为CmdCalculate和CmdExit。程序运行后,单击“开始”按钮,程序自动利用循环计算1+1/2+1/3+…+1/10的结果,并把结果写入到考生文件夹下out272.txt文件中。执行完毕,“开始”按钮变成“完成”按钮,且变为无效。 程序运行后的窗体界面如图所示。 窗体模块的程序代码如下: Private Sub CmdExit_Click() End End Sub Private Sub CmdCalculate_Click() Dim E As Single, J As Integer Dim T As Single Open App.Path & "\" & "out272.txt" For Output As #1 E = 1 T = 1 ' For J = ? To 10 Step 1 ' T = ? E = E + T Next J Write #1, E Close #1 ' ? CmdCalculate.Caption = "完成" CmdCalculate.Enabled = False End Sub 本题分析:考点也是循环语句的应用,实现有规律数据的计算。E存放的是累加和,但是初值却是1,所以循环变量J的初值就要从第2项开始,所以第1个?填2。T存放的是累加项,分别应该是1/2、1/3、…1/10,都是循环变量J的分式,即1/J,第2个?填1/J。最后结果要输入到Text1中,所以第3个?填Text1.text=E。 三、【综合应用题】 在名称为Form1的窗体上建立一个文本框Text1和两个命令按钮Cmd1和Cmd2,标题分别为“读入数据”和“排序显示保存”(如图所示)。程序运行后,如果单击“读入数据”按钮,则读入in063.txt文件中的100个整数,放入一个数组中(数组下界为1);如果单击“排序显示保存”按钮,则对这100个整数按从大到小进行排序,把排序后的全部数据在文本框Text1中显示出来,然后存入考生文件夹的out063.txt中。要求考生调用考生的文件夹下的标准模块保存数据。 注意:文件必须存放在考生文件夹下,窗体文件名为djks063.frm,工程文件名djks063.vbp,排序结果存入out063.txt,否则没有成绩。 标准模块中的程序代码为: Sub putdata(a() As Integer, n As Integer) Dim sFile As String Dim i% sFile = "\out063.txt" Open App.Path & sFile For Output As #1 For i = 1 To n Print #1, a(i) Next i Close #1 End Sub 【答题要点】本题考查了文本框控件的多行显示、从文件中读入数据赋给数组、数组的排序以及过程的调用等综合运用能力。 (1)界面(即窗体和相关控件)的设计:文本框的Name属性使用默认值;控制按钮的Name属性分别为Cmd1和Cmd2,Caption属性设为“读入数据”和“排序显示保存”。注意文本框的属性设置:应将Text1的MultiLine属性设为True,ScrollBars属性设为2,表示Text1可以使用垂直滚动条多行显示数据。 (2)添加模块文件:在考生文件夹中找到mode063.bas,加入工程中。 (3)编写代码:首先考虑两个事件需要用到的公共数据就是数组,应该定义为Private型,然后分别编写。 读入数据(文件处理三步曲):打开文件-读入数组(循环实现)-关闭文件。注意文件中的数据类型和数目和待赋值的数组要一致。 数组排序:常用的排序算法是选择法和冒泡法。这里采用了改进的冒泡排序,即如果有一趟比较中没有交换,则说明已经有序,就结束排序了。要能编代码还要能阅读(填空主要考查读程序的能力)。 输出数据(调用过程putdata):分析形式参数的含义,a()表示待输出的数组的名——数组的起始地址,n表示数组的长度。所以在调用时分别用实际的数据替代,就是putdata i, 100。 【参考答案】 Option Explicit Dim i(1 To 100) As Integer ' 两个事件过程都要用到,至少定义为Private型 Private Sub Cmd1_Click() Dim j As Integer Open App.Path & "\in006.txt" For Input As #1 For j = 1 To 100 Input #1, i(j) ' 将读到的整数逐个赋给数组元素,如果文件中的数类型不匹配或不足100个,则出错 Text1.Text = Text1.Text & i(j) & Space(5) ' 在Text1中连续显示,数据之间有5个空格 Next Close #1 End Sub Private Sub Cmd2_Click() Dim j%, k%, temp% Dim change As Boolean ' 交换数据的标志 For j = 1 To 100 change = False ' 一趟排序之前交换标志的初值 For k = 1 To 100 - j If i(k) < i(k + 1) Then temp = i(k) i(k) = i(k + 1) i(k + 1) = temp change = True ' 发生了交换数据,交换标志的值也改变 End If Next k If Not change Then ' 一趟排序结束了,如果没有交换,则说明已经有序,结束排序 Exit For End If Next j Text1.Text = "" ' 重新输出数据前,要清除原来的显示内容 For j = 1 To 100 Text1.Text = Text1.Text & i(j) & Space(5) ' 实际输出的数组名为i,长度为100 Next j putdata i, 100 End Sub 【相关题目】参见djks05文件夹中djks053:打开考生文件夹下的djks053.vbp,在名为Form1的窗体上建立控制按钮,命名为Calculate,控制按钮上显示“计算”(如图所示)。程序运行时单击该按钮,把数组a中的数值按照升序排列。请在有?的地方填入正确内容,然后删除?及所有注释符(′)但不能修改其他部分。 注意:存盘时不得改变文件名和文件夹 窗体模块中的程序代码为: Option Base 1 Private Sub Calculate_Click() Dim a a = Array(678, 45, 324, 528, 439, 387, 87, 875, 273, 823) ' For i = ? ' For j = ? ' If a(i) ? a(j) Then a1 = a(i) a(i) = a(j) a(j) = a1 End If Next j Next i For i = 1 To 10 Print a(i); Next i End Sub 本题分析:难点是分析采用了哪种排序算法。常用的排序就是冒泡法和选择法,根据a1 = a(i):a(i) = a(j):a(j) = a1,a(i) 和a(j)交换数据。冒泡法是相邻元素交换,所以判断是选择法。 (1)第1个?表示待比较的元素,从1 to 9或者LBound(a) to UBound(a)-1, (2)第2个?表示每次和a(i)进行比较的后面的数据元素,应该是“i+1 to 10 或者i+1 to Ubound(a)” (3)第3个?表示是升序还是降序排列,根据题意,是升序即前面的元素应该小于或等于后者,否则就要互换,所以第3个?应填“>或者>=”。 第5套 一、【基本操作题】 参见djks081:在名称为Form1的窗体上建立一个名称为List1的列表框(如图所示)。要求:在程序运行后,通过Form1_Load()事件过程加载窗体时,执行语句List1.AddItem"AAA"。之后,每当单击某个列表项时,都执行语句List1.AddItem List1.Text一次。 注意:保存时必须存放在考生文件夹下,窗体文件名为djks081.frm,工程文件名为djks081.vbp。 程序运行时的窗体界面如图所示。 【答题要点】本题考查的是事件驱动。代码已经给出,关键是添加在哪些事件过程中。 【参考答案】 Private Sub Form_Load() List1.AddItem "AAA" End Sub Private Sub List1_Click() List1.AddItem List1.Text End Sub 二、【简单应用题】 参见djks092:在考生文件夹中有工程文件djks092.vbp及其窗体文件djks092.frm,该程序是不完整的。请在有?的地方填入正确内容,然后删除?及所有注释符(′),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下:在窗体上有三个名称分别为Text1、Text2、Text3的文本框,一个名称为Calculate,标题为“计算”的命令按钮(如图所示)。要求程序运行后,在Text1和Text2中分别输入两个整数,单击“计算”按钮后,可把两个整数之间的所有整数(含着两个整数)累加起来并在Text3中显示出来。 窗体模块中的程序代码为: Option Explicit Private Sub Calculate_Click() Dim i As Integer, s As Integer Dim a As Integer, b As Integer a = Val(Text1.Text) b = Val(Text2.Text) If a > b Then i = a a = b ′b = ? End If s = 0 For i = a To b ′? Next i ′Text3.Text = ? End Sub 【答题要点】分析第1个?处的程序需要实现a和b互换,保证a
/
本文档为【VB二级上机考试辅导】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索