1、国家二级 VB机试(上机操作)模拟试卷 318及答案与解析 一、基本操作题 1 (1)在名称为 Form1的窗体上添加一个名称为 List1的列表框,在属性窗口中为列表框添加三个选项:北京、上海、天津。同时建立一个下拉菜单,其名称为 File,标题为 “文件 ”,此菜单含有一个子菜单项,标题为 “显示列表框 ”,名称为 Show,初始状态为被选中,运行时的效果如图所示。注意:存盘时,将文件保存至考生文件夹下,且窗体文件名保存为 sjt1 frm,工程文件名保存为 sjt1 vbp。 (2)新建一个名称为 Form1,标题为 “使用输入对话框 ”的窗体,该窗体上无任何控件。请编写适当的事件过程,
2、使得运行程序并单击窗体时,出现输入对话框,其标题为 “等级考试 ”,提示信息为 “请输入 ”,默认值为 “Basic”,如图所示。注意:存盘时,将文件保存至考生文件夹下,且窗体文件名保存为 sjt2 frm,工程文件名保存为Sjt2 vbp。要求程序中不得使用变量,每个事件过程中只能写一条语句。二、简单应用题 2 (1)在考生文件夹下有一个工程文件 sjt3 vbp。窗体上有个钟表图案,其中代表指针的直线的名称是 Line1,还有一个名称为 Lahel1的标签和其他一些控件 (如图 1所示 )。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置 (如图1所示 );若用鼠标左键单击圆的
3、边线,则指针指向鼠标单击的位置 (如图 2所示 );若鼠标左键或右键单击其他位置,则在标签上输出 “鼠标位置不对 ”。 文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的 ?改为正确的内容。程序中的 oncircle函数的作用是判断鼠标单击的位置是否在圆的边线上 (判断结果略有误差 )是则返回 True,否则返回 False。符号常量 x0、 y0是圆心距窗体左上角的距离 ;符号常量 radius是圆的半径。 注意:不能修改程序中的其他部分和各控件的属性。最后将修改后的文件按原文件名存盘。(2)在考生文件夹下有一个工程文件 sjt4 vbp,窗体如图所示。其功能是单
4、击 “输入数据 ”按钮,则可输入一个整数 n(要求: 8n12);单击 “计算 ”按钮,则计算 1!+2!+3!+n! 的值,并将计算结果显示在文本框中;单击 “存盘 ”按钮,则把文本框中的结果保存到考生文件夹下的 out4 dat文件中。 文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的 ?改为正确的 内容,并编写 “计算 ”按钮的 Click事件过程。 注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用 “存盘 ”按钮存储计算结果,否则无成绩。最后将修改后的文件按原文件名存盘。 三、综合应用题 3 在考生文件夹下有一个工程文件 sjt5 vbp
5、,窗体上有两个命令按钮,标题分别是“读数据 ”和 “统计 ”,请添加一个名称为 Label1、标题为 “回文个数为 ”的标签和一个名称为 Text1,初始内容为空的文本框,如图所示。 程序功能如下: 单击 “读数据 ”按钮,则将考生文件夹下 in5 dat文件的内容读到变 量 s中; 单击 “统计 ”按钮,则统计 in5 dat文件 (该文件中仅含由空格间隔开的字符串 )中回文的个数,并将统计的回文个数显示在 Text1文本框内 (所谓回文是指顺读与倒读都一样的字符串,如 “recycer”)。 “读数据 ”和 “统计 ”按钮的 Click事件过程已经给出,请完善foundhuiwen过程的功
6、能,实现上述程序功能。注意:考生不得修改窗体文件中已存在的控件和程序,在结束程序运行之前,必须先进行统计,且必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,程序按原文件名存盘。 国家二级 VB机试(上机 操作)模拟试卷 318答案与解析 一、基本操作题 1 【正确答案】 (1) 【操作步骤】 步骤 1:建立界面,添加相应的控件并设置控件的属性。程序中涉及的控件及属性见表 3 61,菜单编辑属性见表 3 62,菜单项的 Checked属性设置为 True。步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 (2) 【操作步骤】 步骤 1:建立界面,并设置窗体的 Caption属性为 “使
7、用输入对话框 ”。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Form_Click() InputBox”请输入 ”, ”等级考试 ”, ”Basic” End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 二、简单应用题 2 【正确答案】 (1)【操作步骤】步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Const y0 = 1110, x0 = 1100, radius=750 Private Function oncircle(X As Single, Y As Single)As Boolean p
8、recision=55000 If Abs(Xx0)*(Xx0)+(y0一 Y)*(y0一 Y)一 radius*radius) precision Then判断鼠标单击的位置是否在圆边上 oncircle=True Else oncircle=False End If End Function Private Sub Form_MouseDown(Button AsInteger, Shift as Integer, X As Single, YAs Single) Const LEFT_BUTTON=1 If oncircle(X, Y)Then调用 oncircle函数判断鼠标单击的位置
9、 Linel X1=x0 Linel Y1=y0 If Button=LEFT BUTTON Then Line1 X2=X Line1 Y2=Y 直线另一端的 y坐标为鼠标当前的 y值 Else Line1 X2=Linel X1 直线回到初始位置 x不变 Linel Y2=y0一 radius& y2为原先坐标减去半径的值 End If Label1 Caption=” Else否则 Label1显示位置不对Label1=”鼠标位置不对 ” End If End Sub 程序结束 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2) 【操作步骤】 步骤 1:打开本题工程文件。 步骤
10、 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容,并编写相应代码。 Dim n As Integer Private Sub Commandl_Click() n=Val(InputBox(”请输入整数(812)”, ”输入 ”) If n 12 Or n 8 Then确定输入值最大为 12,最小为 8,否则提示错误 MsgBox(”数据错误,请重新输入 ”) Command2 Enabled=False Command3 Enabled=False两按钮不可用 Else Command2 Enabled=True Command3 Enabled=True两按钮可用 E
11、nd If End Sub Private Sub Command2_Click() Dim S As Long, k As Integer 考生应编写的程序 s=0 For k=1 To n s=s+f(k) Next k Text1=S 编程结束 End Sub Function f(n As Integer)As Long s=1初始化 S为 1 For k=2 To n循环求 n的阶乘 s=s* k Next f=s返回阶乘结果 End Function Private Sub Command3_Click() Open App Path ”out4 dat”ForOutput As
12、#1 Print #1, n,Text1 Close #1End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘,如图 3 31所示。 三、综合应用题 3 【正确答案】 【操作步骤】 步骤 1:打开本题工程文件,按照题目要求建立控件并设置属性,如表 3 29所示。步骤 2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 Function foundhuiwen(p As String) If StrReverse(p) =p Then found。 huiwen=TrueStrReverse函数的功能是将字符串顺序反转 End Function 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。