2015年计算机二级考试《VB》全真机考操作试题(2)
1在名称为Forml的窗体上建立一个名称为“menul”、标题为“文件”的弹出式菜单,其含有三个菜单项,它们的标题分别为:“打开”、“关闭”、“保存”,名称分别为“ml”、“m2”、“m3”。再添加一个命令按钮,名称为“Commandl”、标题为“弹出菜单”。要求:编写命令按钮的Click事件过程,使程序运行时,单击“弹出菜单”按钮可弹出“文件”菜单(如图所示)。
注意:程序中不得使用变量,事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名保存为sjt2.vbp,窗体文件名保存为sjt2.frm。
【考点分析】本题考点有:命令按钮的Name和Cap-tion属性,菜单编辑器的使用(标题、名称、内缩符号),菜单项的Visible属性以及PopupMenu方法。
【解题思路】要创建弹出式菜单需要先用菜单编辑器来建立菜单,并将其主菜单项的可见(Visible)属性值设置为不可见,然后通过对象的Commandl_Click事件,执行对象的PopupMenu方法来显示菜单。
【操作步骤】
步骤1:建立界面,添加一个命令按钮,设置其Name属性为Commandl,Caption属性为“弹出菜单”。然后建立一个菜单,菜单的属性见表3.420
步骤2:打开代码编辑窗l3,在指定位置编写如下代码。
参考答案:
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
2在名称为Form1的窗休上添加一个名称为Label1的标签,字号大小为四号,标题为“等级考试”,如图1所示。通过设置属性使标签初始为不显示。请编写适当的程序,使得运行程序时,窗体的标题立即变为“标签”,单击窗体时,显示标签,如图2所示。
注意:存盘时,将文件保存至考生文件夹下,且窗体文件名保存为sjt2.frm,工程文件名保存为sit2.vbp。要求程序中不得使用变量,每个事件过程中只能写一条语句。
【考点分析】本题考点有:标签的Name、Caption、Visi.ble和FontSize属性以及窗体的Caption属性。
【解题思路】通过标签的Name、Caption和FontSize属性设置标签的名称、标题和字体大小,通过设置标签的Visible属性为False,使标签初始为不可见。编写适当的程序,在Form_Load事件过程中,窗体的Caption属性值立即变为“标签”,在Form_Click事件过程中单击窗体时,设置标签的Visible属性为True显示标签。
【操作步骤】
步骤1:新建一个窗体,按照题目要求建立控件并设置其属性,如表3.37所示。
步骤2:编写程序代码。
参考答案:
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
二、简单应用题
3在考生文件夹下有一个工程文件sit3.vbp。其窗体文件上有一个标题为“得分”的框架,在框架中有一个名称为Textl的文本框数组,含6个文本框控件;文本框Text2用来输入难度系数。程序运行时,在左边的6个文本框中输入6个得分,输入难度系数后,单击“计算分数”按钮,则可计算出最后得分并显示在文本框Text3中(如图所示)。计算方法:
去掉1个最高得分和1个最低得分,求剩下得分的平均分,再乘以3,再乘以难度系数。最后结果保留到第2位小数,不四舍五入。
注意:文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容,考生不能修改程序中的其他部分和各控件的属性。最后把修改后的文件按原文件名存盘。
【考点分析】本题考点有:INT()函数、Val()函数、文本框数组的Text属性、If判断语句以及For循环语句。
【解题思路】通过Val()函数获取文本框数组的值,并把它转换为数值型,通过循环语句和判断语句,找出最大值和最小值赋值给变量a和b,同时累加所有数值的和赋值给s,那么最终的和为s-a-b,根据算法求剩下得分的平均分,乘以3,再乘以Text2中输入的难度系数,得出最终的得分。
【操作步骤】
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符“´”,将问号改为正确的内容。
参考答案(阴影部分是需考生填入的内容)
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
4在考生文件夹下有一个工程文件sit4.vbp,其窗体上有一个由八个图片框控件组成的控件数组、两个命令按钮及一个计时器控件,如图l所示。
程序功能:
将计时器控件设置为每隔0.5秒触发一次Timer事件。运行程序时,只显示下标为0的图片框控件数组元素,其他图片框均不可见。单击“开始”按钮,数组中的每个图片框自左至右依次显示,时间问隔为0.5秒,产生“月亮”从左向右移动的效果,如图2所示。月亮移到右端后再从左端重新开始。单击“停止”按钮,“月亮”停止移动。
要求:按照题目要求设置控件属性,去掉程序中的注释符,把程序中的?改为正确的内容。
注意:不能修改程序的其他部分和控件属性,最后将修改后的文件按原文件名进行存盘。
【考点分析】本题考点有:计时器的Interval和Ena-bled属性,图片框的Left、Top、Visible属性,Static局部变量定义,For循环语句以及Ⅱ判断语句。
【解题思路】首先将Timerl的Interval属性设置为500,使计时器控件设置为每隔0.5秒触发一次。在Form_Load事件过程中,通过图片框Visible属性设置只显示下标为0的图片框控件数组元素,其他下标为1~7的图片框均不显示。单击“开始”按钮,计时器的Enabled属性设置为True,TimerlTimet事件启动,运用循环语句将数组中的每个图片框自左向右依次显示.产生“月亮”从左向右移动的效果,循环变量设置为局部变量Static,使“月亮”移到右端后再从左端重新开始。单击“停止”按钮,“月亮”停止移动。
【操作步骤】
步骤1:打开本题工程文件,将Timerl的Interval属性设置为500。
步骤2:打开代码编辑窗口,去掉程序中的注释符“´”,将问号改为正确的内容。
参考答案(阴影部分是需考生填入的内容)
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【易错提示】变量i要定义成局部变量才能使“月亮”移到右端后再从左端重新开始,如果不设置计时器控件的In-terval属性,则计时器不会起作用,编程的时候要注意。
三、综合操作题
5考生文件夹下有一个工程文件sit5.vbp,窗体上有两个文本框,名称分别为Textl、Text2,都可以多行显示。还有三个命令按钮,名称分别为cl、c2、c3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是将考生文件夹下的in5.dat文件中的50个整数读到数组中,并在Textl中显示出来;“排序”按钮的功能是对这50个数按升序排序,并显示在Text2中;“存盘”按钮的功能是把排好序的50个数存到考生目录下的out5.dat文件中,如图所示。在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的?改为正确的内容,并编写“排序”按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后将修改后的文件按原文件名存盘。
【考点分析】本题考点有:Str()函数、“冒泡法”排序、For循环语句、If判断语句以及文件操作。
【解题思路】str函数用于数值转化为字符串,语法为:str(number)。
在循环语句中Step表示步长,可以为正数,表示下一个变量加一个数,也可以为负数,则相反,在默认情况下,步长为1,就不需要使用Step特意标识。
“冒泡法”是一种重要的数据排序算法,它的核心思路是按顺序让一个数列中的每一个数都与它之后的所有的数逐一进行比较,如果该数大于其后面的数,则把这两个位置的数进行交换。通过这样的循环,最终按照从小到大的顺序排列出该数列。从程序提供的代码中可以看出,整型数组a的使用范围是本窗体中的所有事件过程,用来存放从文件中读取的数据。在排序中,使用双重循环,外循环每循环一次,确定内循环循环的次数,内循环就是把本次循环中最大的数,放在数组的最后面,这样就可以实现对这50个数的升序排序。
【操作步骤】
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符“´”,
将问号改为正确的内容,并编写代码。
参考答案(阴影部分是需考生填入的内容)
Dim a(50) As Integer
Private Sub C1_Click()
Dim k As Integer,ch As String
Open"in5.dat"For Input As #1
ch=""
For k=1 T0 50
Input#1,_____a(k)_____将取出的数据存入数组a中
ch=ch+Str(a(k))+""´将数据存入ch
Next k
Close#1
Text1.Text=____ch______'在Text1文本框中显示文件内容
End Sub
Private Sub C2_click()
End Sub
Private Sub C3_Click()
Open"out5.dat"For Output As #1
Print#1,Text2.Text
Close#1
End Sub
需编写的“排序”按钮的代码
Private Sub C2_Click()
Dim t As Integer
Dim i As Integer
Dim J As Integer
Dim ch As String
ch=""
For i=50 T0 2 Step-1使用冒泡算法从小到大排序
For J=1 To 49
If a(J)>a(j+1)Then’两两比较
t=a(J+1)
a(j+1)=a(J)
a(j)=t
End If
Next J
Next i
For J=1 T0 50´将排序后的数组重新赋给ch
ch=ch+Str(a(J))+""
Next j
Text2.Text=ch
End Sub
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【易错提示】注意冒泡排序的用法,理解位置交换的含义和方法,在交换时要有一个中间变量来起到传递的作用,否则会使其中一个值丢失而产生错误。