1、国家二级 VB机试(上机操作)模拟试卷 47及答案与解析 一、基本操作题 0 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 1 在名称为 Form1、标题为 “鼠标光标形状示例 ”的窗体上画 1个名称为 Text1的文本框。清通过属性窗口设置适当属性,使得程序运行时,鼠标在文本框中时,鼠标光标为箭头 (Arrow)形状,如图 3-37所示:在窗体中其他位置处,鼠标光标为十字(Cross)形状,如图 3-38所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 vbsj1 vbp,窗 体文件名为vbsj1 frm。 2 在名称为 Form1的窗体上画两
2、个名称分别为 Label1、 Label2,标题分别为 “开始位置 ”、 “选中字符数 ”的标签;画三个文本框,名称分别为 txtlnput、 txtBegin、txtNam;再画一个名称为 cmdDisplay,标题为 “显示选中文本 ”的命令按钮。程序运行时,在 txtlnput中输入若干字符,并用鼠标选中一些字符后,单击 “显示选中文本 ”按钮,则把选中的第一个字符的顺序号显示在 txtBegin中,选中的字符个数显示在 txtNam中,如图 3-39所示。 要求:画 出所有控件,编写命令按钮的 Click事件过程。 注意:要求程序中不得使用变量,事件过程中只能写两条语句,分别用于显示第
3、一个字符的顺序号和显示选中的字符个数。存盘时必须存放在考生文件夹下,工程文件名为 vbsj2 vbp,窗体文件名为 vbsj2 frm。 二、简单应用题 3 在名称为 Form1的窗体上画一个名称为 lblPwd的标签,标题为 “密令 ”;画两个文本框,名称分别为 txtPwd、 txtObi,都没有初始内容;再画三个命令按钮,名称分别为 cmdShow、 cmdHide、 cmdCopy,标题分别为 “显 示 ”、 “隐藏 ”、 “复制 ”,在开始运行时,向 txtPwd中输入的所有字符都显示 “*”,单击 “显示 ”按钮后,在txtPwd中显示所有字符,再单击 “隐藏 ”后, txtPwd
4、中的字符不变,但显示的都是“?”,单击 “复制 ”后,把 txtPwd中的实际内容复制到 txtObj中,如图 3-40所示。 要求: 在属性窗口中,把窗体的标题改为 “密令窗口 ”。 建立适当的事件过程,完成上述功能。每个过程中只允许写一条语句,且不能使用变量。存盘时,工程文件名为 vbsj3 vbp,窗体文件名为 vbsj3 frm。 4 在考生文件夹下有 一个工程文件 vbsj4 vbp,运行情况如图 3-41所示。程序的功能是计算如下:表达式的值: Z=(X+2)2+(X+3)3+(x+4)4+(X+N)N 。其中,N和 X值通过键盘分别输入到文本框 txtN、 txtX中。之后如果单
5、击名称为cmdCal、标题为 “计算 ”的命令按钮,则计算表达式的值 Z,并将计算结果显示在名称为 lblResult的标签中。在给出的窗体文件中已经添加了全部控件和程序,但程序不完整。要求去掉程序中的注释符,把程序中的 “?”改为正确的内容。 注意:考生不得修改窗体文件中已经存在的程 序。程序中不得使用 运算符,而应使用函数 xn进行幂运算。程序至少运行一次,按照下图输入数据,使 N=5, X=10,单击 “计算 ”按钮,计算 Z的值,并将结果显示在标签lblResult中,否则没有成绩。最后,程序按原文件名存盘。 程序源码: PriVate Function xn(a As Single,
6、 m As Integer) Dim i As Integer tmp=1 For i=1 To m tnap=? Next xn=?End FunctionPrivate Sub cmdCal_Click() Dim n As Integer, i As Integer Dim t As Single, s, X As Single n=Val(txtN Text) x=Val(txtX Text) z=0 For i=2 To n t=x+i z=z+? Next lblResult Caption=? Call SaveResultEnd SubPriVate Sub SaveResul
7、t() Open App Path “ out4 dat“ For Output As #1 Print #1, lblResult Caption Close #1End Suh 三、综合应用题 5 在考生文件夹下有一个工程文件 vbsj5 vbp,请先装入该工程文件,然后完成以下操作:在名称为 Form1的窗体上画两个命令按钮,其名称分别为 cmdRead和cmdCal,标题分别为 “读入数据 ”和 “计算保存 ”(如图 3-42所示 )。程序运行后,如果单击 “读入数据 ”按钮,则调用题目所提供的 ReadData1和 ReadData2过程读入in51 txt和 in52 txt文件中
8、的各 20个整数,分别放入 Arr1和 Arr2两个数 组中;如果单击 “计算保存 ”按钮,则把两个数组中对应下标的元素相减,其结果放入第三个数组中 (即:第一个数组的第 n个元素减去第二个数组的第 n个元素,其结果作为第三个数组的第 n个元素。这里的 n为 1、 2、 、 20),最后计算第三个数组各元素之和,把所求得的和在窗体上显示出来;并调用题目中给出的 WriteData过程将所求得的和存入考生文件夹下的 out5 dat文件中。 注意:考生不得修改窗体文件中已经存在的程序,且必须执行此程序一次,最后把修改后的文件以原来的文件名存盘。 程序源码: Optlon Base 1Dim Ar
9、r1(20) As IntegerDim Arr2(20) As IntegerSub ReadData1() Open App Path “ “ “in51 txt“ For_ Input As #1 For i=1 To 20 Input=#1, Arr1(i) Next i Close #1End SubSub ReadData2() Open App Path “ “ “in52 txt“For_ Input As #1 For i=1 To 20 Input #1, Arr2(i) Next i Close #1End SubSub WriteData(Filename As Str
10、ing, Num As _ Integer) Open App path “ “ Filename For _ Output As #1 Print #1, Num Close #1 End Sub 国家二级 VB机试(上机操作)模拟试卷 47答案与解析 一、基本操作题 1 【正确答案】 审题分析 根据题目要求,要使鼠标指针位于文本框中时,鼠标指针的形状为箭头,需将文本框的 MousePointer属性值设置为 1。为使鼠标指针位于窗体中其他位置时,鼠标指针的形状为十字,需将窗体的 MousePointer属性值设置为 2。 操作步骤 步骤 1:新建 “标准 EXE”工程,在窗体 Form1中
11、画一个文本框,按表 4-23设置文本框及窗体属性。 步骤 2:按要求将文件保存至考生文件夹中。 特别提示 当窗体中控件的 MousePointer属性值为 0时,鼠标经过该控件时光标的形状类型由窗体的 MousePointer属性值决定。 考点链接 鼠标光标和鼠标拖放。 2 【正确答案】 审题分析 由于 SelStart属性返回的所选文本的起始点位于起始文本的左侧,故所选文本的第一个字符的顺序号应为 SelStart属性值加 1。选中字符数即为 SelLength属性返回值。 操作步骤 步骤 1:新建一个 “标准 EXE”工程,按表 4-24在窗体中画出控件并设置其相关属性。 步骤 2:在代码
12、编辑窗口,编写命令按钮的单击事件过程。 参考代码: PriVate Sub cmdDisplay_Click() txtBegin Text=txtInput SelStart+1 txtNum Text=txtInput SelLength End Sub 步骤 3:按要求将文件保存至考生文件夹中。 考点链接 文本控件。 二、简单应用题 3 【正确答案】 审题分析 PasswordChar属性用于设置屏蔽文本框中内容的字符,要去掉对文本框中输入内容的屏蔽,需将其 PasswordChar属性值清空。 操作步骤 步骤 1:新建一个 “标准 EXE”工程,按表 4-25在窗体中画出控件并设置其相
13、关属性。 步骤 2:在代码编辑窗口,分别编写 3个按钮的 单击事件过程。 参考代码: Private Sub cmdShow_Click() txtPwd PasswordChar=“ “ End Sub Private Sub cmdHide_Click() txtPwd passWOrdChar=“?“ End Sub PriVate Sub cmdCopy_Click() txtObj1 Text=txtPwd Text End Sub 步骤 3:按要求将文件保存至考生文件夹中。 考点链接 文本控件。 4 【正确答案】 审题分析 本题源程序中,自定 义函数 xn的功能是进行 am幂运算,
14、它通过 For循环连续m次将 a乘以累积变量 tmp(初值为 1)来实现。故自定义函数 xn中第一个 ?处应改为: tmp*a,作为函数返回值第二个 ?处应改为: tmp。 在 “计算 ”按钮的单击事件过程中,根据程序所要计算:表达式的特点,源程序利用一个 For循环依次计算表达式中各项的值 (x+i)i),并将其累加入变量 z。计算表达式中各项的值通过调用自定义函数 xn(t, i)来实现的,其中 t=x+i。故cmdCal_Click事件过程中第一个 ?处应改为: xn(t, i)。计算结果显示 在标签中,故第二个 ?处应改为: z。 操作步骤 步骤 1:打开考生文件夹中的本题工程文件 v
15、bsj4 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: tmp=tmp*a xn=tmp z=z+xn(t, i) lblResult Caption=z 步骤 2:按 键运行程序,在第 1个文本框中输入 5,第 2个文本框中输入10,然后单击 “计算 ”按钮。 步骤 3:按要求将文件保存至考生文件夹中。 考点链 接 Sub过程和函数过程、参数传递。 三、综合应用题 5 【正确答案】 审题分析 本题源程序已提供用于读数的 ReadData1、 ReadData2和用于写盘的 WriteData几个自定义过程,只需编写 “读数 ”、 “计算 ”和
16、“保存 ”命令按钮的单击事件过程,并在事件过程中调用 ReadData1、 ReadData2和 WriteData自定义过程。程序设计思路:在 “读数 ”按钮的 Click事件过程中,通过分别调用ReadData1和 ReadData2过程将数据从文件 dr342 dat和 dr343 dat中读 入到数组Arr1和 Arr2(窗体变量 )中;然后在 “计算 ”按钮的 Click事件过程中,利用 For语句(循环变量 i的初值为 1,终值为 20)依次将数组 Arr1和 Arr2同下标的元素相减后赋值给数组 Arr3同下标的元素 (表达式为: Arr3(i)=Arr1(i)-Arr2(i),
17、并累加到变量Sum,循环结束后将 Sum的值显示在窗体上。在 “保存 ”按钮的 Click事件过程中,通过调用 WriteData过程将 Sum的值写入数据文件 out5 txt。 注意:调用WriteData过程时需传递参数 dw343 dat和 Sum, 变量 Sum应声明为窗体变量。 操作步骤 步骤 1:打开考生文件夹中的本题工程文件 vbsj5 vbp,按表 4-26在窗体中画出控件并设置其相关属性。 步骤 2:在代码编辑窗口,分别编写 “读入数据 ”按钮和 “计算保存 ”按钮的单击事件过程。 参考代码: Private Sub cmdRead_Click() ReadData1 Re
18、adData2 End Sub Private Sub cmdCal_Click() Dim Arr3(20) As Integer Dim Sum As Integer Sum=0 For i=1 To 20 Arr3(i)=Arr1(i)一 Arr2(i) Sum=Sum+Arr3(i) Next Print Sum WriteData “out5 dat“, Sum End Sub 步骤 3:按键运行程序,先单击 “读入数据 ”按钮,然后单击 “计算保存 ”按钮。 步骤 4:按要求将文件保存至考生文件夹中。 特别提示 为在多个过程中使用同一个变量,应将其声明为窗体变量。 考点链接 数组定义与操作、参数传递。