1、国家二级 VB机试(上机操作)模拟试卷 284及答案与解析 一、基本操作题 1 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 (1)在名称为 Form1、标题为 “鼠标光标形状示例 ”的窗体上画 1个名称为 Text1的文本框。请通过属性窗口设置适当属性,使得程序运行时,鼠标在文本框中时,鼠标光标为箭头 (Arrow)形状,如图 356所示;在窗体中其他位置处,鼠标光标为十字 (Cross)形状,如图 357所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 vbsj1 vbp,窗体文 件名为vbsj1 frm。 (2)在名称为 Form1的窗体上画
2、两个名称分别为 Label1、 Label2,标题分别为 “开始位置 ”、 “选中字符数 ”的标签;画三个文本框,名称分别为 txtInput、txtBegin、 txtNum;再画一个名称为 cmdDisplay,标题为 “显示选中文本 ”的命令按钮。程序运行时,在 txtInput中输入若干字符,并用鼠标选中一些字符后,单击“显示选中文本 “按钮,则把选中的第一个字符的顺序号显示在 txtBegin中,选中的字符个数显示在 txtNum中,如图 358所示。要求:画出所有控 件,编写命令按钮的 Click事件过程。 注意:要求程序中不得使用变量,事件过程中只能写两条语句,分别用于显示第一个
3、字符的顺序号和显示选中的字符个数。存盘时必须存放在考生文件夹下,工程文件名为 vbsj2 vbp,窗体文件名为 vbsj2 frm。 二、简单应用题 2 (1)在名称为 Form1的窗体上画一个名称为 lblPwd的标签,标题为 “密令 ”;画两个文本框,名称分别为 txtPwd、 txtObi,都没有初始内容;再画三个命令按钮,名称分别为 cmdShow、 cmdHide、 cmdCopy,标题分别为 “显示 ”、 “隐藏 ”、 “复制 ”,在开始运行时,向 txtPwd中输入的所有字符都显示 “*”,单击 “显示 ”按钮后,在txtPwd中显示所有字符,再单击 “隐藏 ”后, txtPwd
4、中的字符不变,但显示的都是“?”,单击 “复制 ”后,把 txtPwd中的实际内容复制到 txtObi中,如图 359所示。要求: 在属性窗口中,把窗体的标题改为 “密令窗口 ”。 建立适当的事件过程,完成上述功能。每个过程中只允许写一条语句,且不能使用变量。存盘时,工程文件名为 vbsj3 vbp,窗体文件名为 vbsj3 frm。 (2)在考生文件夹下有一个工程文件vbsj4 vbp,运行情况如图 360所示。程序的功能是计算如下表达式的值: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, m As
6、Integer)Dim i As Integer: tmp=1For i=1Tomtmp=?Nextxn=?End FunctionPrivate Sub cmdCal Click()Dim n As Integer, i As IntegerDim t As Single, s, x As Singlen=Val(txtN Text)x=Val(txtX Text):z=0For i=2To nt=x+iz=z+?NextlblResult Caption=?Call SaveResultEnd SubPrivate Sub SaveResult()Open App Path&“ out4
7、dat“For_Output As#1Print#1,lblResult CaptionClose#1End Sub 三、综合应用 题 3 在考生文件夹下有一个工程文件 vbsj5 vbp,请先装入该工程文件,然后完成以下操作:在名称为 Form1的窗体上画两个命令按钮,其名称分别为 cmdRead和cmdCal,标题分别为 “读入数据 ”和 “计算保存 ”(如图 361所示 )。程序运行后,如果单击 “读入数据 ”按钮,则调用题目所提供的 ReadDatal和 ReadData2过程读入in51 txt和 in52 txt文件中的各 20个整数,分别放入 Arr1和 Arr2两个数组中;如果
8、单击 “计算保存 ”按钮,则把两个数组中对应下标的元素相减,其结果放入第三个数 组中 (即:第一个数组的第 n个元素减去第二个数组的第 n个元素,结果作为第三个数组的第 n个元素。这里的 n为 1、 2、 、 20),最后计算第三个数组各元素之和,把所求得的和在窗体上显示出来;并调用题目中给出的 WriteData过程将所求得的和存入考生文件夹下的 out5 dat文件中。 注意:考生不得修改窗体文件中已经存在的程序,且必须执行此程序一次,最后把修改后的文件以原来的文件名存盘。程序源码: optiOn Base1Dim Arrl(20)As IntegerDim Arr2(20)As Inte
9、gerSub ReadDatal()Open App Path&“&“in51 txt“ForInputAs#1For i=1To20Input#1, Arr1(i)Next iClose#1End SubSub ReadData2()Open App Path& “&“in52 txt“For_InputAs#1For i=1To20nput#1,Arr2(i)Next iClose#1End SubSub WriteData(Filename As String, Num As_Integer)Open App Path&“ “&Filename For_Output As#1Print#
10、1,NumClose#1End Sub 国家二级 VB机试(上机操作)模拟试卷 284答案与解析 一、基本操作题 1 【正确答案】 第 1小题步骤 1:新建 “标准 EXE”工程,在窗体 Form1中画一个文本框,按表 434设置文本框及窗体属性。步骤 2:按要求将文件保存至考生文件夹中。第 2小题步骤 1:新建一个 “标准 EXE”工程,按表 435在窗体中画出控件并设置其相关属性。 步骤 2:在代码编辑窗口,编写命令按钮的单击事件过程。参考代码: Private Sub cmdDisplay_Click()txtBegin Text=txtInput SelStart+1txtNum Te
11、xt=txtInput SelLengthEnd Sub步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题:根据题目要求,要使鼠标指针位十文本框中时,鼠标指针的形状为箭头,需将文本框的 MousePointer属性值设置为 1。为使鼠标指针位于窗体中其他位置时,鼠标指针的形状为十字,需将窗体的 MousePointer属性值设置为 2。 当窗体中控件的 MousePointer属性值为 0时,鼠标经过该控件时光标 的形状类型由窗体的 MousePointer属性值决定。 第 2小题:由于 SelStart属性返回的所选文本的起始点位于起始文本的左侧,故所选文本的第一个字符的顺
12、序号应为 SelStart属性值加 1。选中字符数即为SelLength属性返同值。 二、简单应用题 2 【正确答案】 第 1小题步骤 1:新建一个 “标准 EXE”工程,按表 436在窗体中画出控件并设置其相关属性。 步骤2:在代码编辑窗口,分别编写 3个按钮的单击事件过程。参考代码: Private Sub cmdShow_Click()txtPwd PaSSWOrdChar=“ “End SubPrivate Sub cmdHide_Click()txtPwd passwordChar=“?“End SubPrivate Sub cmdCopy_Click()txtobj Text=tx
13、tPwd TextEnd Sub步骤 3:按要求将文件保存至考生文件夹中。第 2小题步骤 1:打开考生文件夹中的本题工程文件 vbsj4 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。参考代码:tmp=tmp*axn=tmpz=z+xn(t, i)lblResult Caption=z步骤 2:按 F5运行程序,在第 1个文本框中输入 5,第 2个文本框中输入 10,再单击 “计算 ”按钮。步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题: PasswordChar属性用于设置屏蔽文本框中内容的字符,要去掉对文本框中输入内容的屏蔽,需将其
14、PasswordChar属性值清空。 第 2小题:本题源程序中,白定义函数 xn的功能是进行 am幂运算,它通过 For循环连续 m次将 a乘以累积变量 tmp(初值为 1)来实现。故自定义函数 xn中第一个 ?处应改为: tmp*a, 作为函数返回值第二个 ?处应改为: map。 在 “计算 ”按钮的单击事件过程中,根据程序所要计算表达式的特点,源程序利用一个 For循环依次计算表达式中各项的值 (x+i) i),并将其累加入变量 z。计算表达式中各项的值通过调用自定义函数 xn(t, i)来实现的,其中 t=x+j。故cmdCal_Click事件过程中第一个 ?处应改为: xn(t, i)
15、。计算结果显示在标签中,故第二个 ?处应改为: z。 三、综合应用题 3 【正确答案】 步骤 1:打开考生文件夹中的本题工程文件 vbsj5 vbp,按表 437在窗体中画出控件 并设置其相关属性。步骤 2:在代码编辑窗口,分别编写“读入数据 ”按钮和 “计算保存 ”按钮的单击事件过程。参考代码: Private Sub cmdRead_Click()ReadData1: ReadData2End SubPrivate Sub cmdCa1_Click()Dim Arr3(20)As IntegerDim Sum As IntegerSum=0For i=1To20Arr3(i)=Arr1(i
16、)-Arr2(i)Sum=Sum+Arr3(i)NextPrint SumWriteData“out5 dat“, SumEnd Sub步骤 3:按 F5键运行程序,先单击 “读入数据 ”按钮,然后单击 “计算保存 ”按钮。步骤4:按要求将文件保存至考生文件夹中。 【试题解析】 本题源程序已提供用于读数的 ReadData1、 ReadData2和用于写盘的 WriteData几个自定义过程,只需编写 “读数 ”、 “计算 ”和 “保存 ”命令按钮的单击事件过程,并在事件过程中调用 ReadData1、 ReadDam2和 WriteData自定义过程。程序设计思路:在 “读数 ”按钮的 Cl
17、ick事件过程中,通过分别调用ReadData1和 ReadData2过程将数据从文件 dr342 dat和 dr343 dat中读入到数组 Arr1和 Art2(窗体变量 )中:然后在 “计算 ”按钮的 Click事件过程中,利用For语句 (循环变量 i的初值为 1,终值为 20)依次将数组 Arr1和 Arr2同下标的元素相减后赋值给数组 Arr3同下标的元素 (表达式为: Arr3(i)=Arr1(i)-Arr2(i),并累加到变量 Sum,循环结束后将 Sum的值显示在窗体上。在 “保存 ”按钮的 Click事件过程中,通过调用 WriteData过程将 Sum的值写入数据文件 out5 txt。 注意:调用 WriteData过程时需传递参数 dw343 dat和 Sum,变量 Sum应声明为窗体变量。