1、VB机试模拟试卷 138及答案与解析 一、基本操作题( 30分) 1 请根据以下各小题的要求设计 VisualBasic应用程序 (包括界面和代码 )。 (1)在名称为 Forml的窗体上画一个文本框,名称为 Textl,字体为 “黑体 ”,文本框中的初始内容为 “程序设计 ”;再画一个命令按钮,名称为 cl,标题为 “改变字体 ”(如图 l-221所示 )。请编写适当事件过程,使得在运行时,单击命令按钮,则把文本框中文字的字体改为 “宋体 ”。程序中不得使用任何变量。注意:保存时必须存放在考生文件夹下,工程文件名为 sjtl vbp,窗体文 件名为 sjtl frm。 (2)在名称为 For
2、ml的窗体上画一个图片框,名称为 P1,高为 1800,宽为 1600,并放入文件名为 picl bmp的图片 (如图 1-222所示 )。请编写适当的事件过程,使得在运行时,如果双击窗体,则图片框中的图片消失。程序中不得使用任何变量。注意:保存时必须存放在考生文件夹下,工程文件名为 sjt2 vbp,窗体文件名为sjt2 frm。 二、简单应用题( 40分) 2 (1)在考生文件夹下有一个工程文件 sjt3 vbp,相应的窗体文件为 sjt3 frm,在窗体上有一个命令按钮和 一个文本框。程序运行后,单击命令按钮,即可计算出数组 air中每个元素与其下标相除所得的和,并在文本框中显示出来。在
3、窗体的代码窗口中,已给出了部分程序,其中计算数组 art中每个元素与其下标相除所得的和的操作在通用过程 Fun中实现,请编写该过程的代码。要求:请勿改动程序中的其他部分,只在 FunctionFun()和 EndFunction之间填入编写的若干语句并运行程序。最后把修改后的文件按原文件名存盘。说明:数组 flit中共有 40个元素,所谓 “数组 air中每个元素与其下标相除所得的和 ”,指的是: arr(1) 1+arr(2)2+arr(3) 3+arr(40) 40。 (2)在考生文件夹下有一个工程文件 sjt4 vbp,相应的窗体文件为 sjt4 frm。在窗体上有两个命令按钮,其名称分
4、别为 Commandl、Command2,一个标签控件,其名称为 Labell,一个计时器控件,其名称为Timerl,如图 1-107(a)所示。程序运行后,在命令按钮 Commandl中显示 “开始 ”,在命令按钮 Command2中显示 “停止 ”,在标签中用字体大小为 16的粗体显示 “热烈欢迎 ”(标签的 AutoSize属性为 True),同时把 计时器的 Interval属性设置为 50,Enabled属性设置为 True。此时如果单击 “开始 ”命令按钮,则该按钮变为禁用,标题变为 “继续 ”,同时标签自左至右移动,每个时间间隔移动 20,如图 1-107(b)所示,移动出窗体右
5、边界后,自动从左边界开始向右移动;如果单击 “停止 ”命令按钮,则该按钮变为禁用, “继续 ”命令按钮变为有效,同时标签停止移动;再次单击“继续 ”命令按钮后,标签继续移动。这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不能修 改程序中的其他部分。最后把修改后的文件按原文件名存盘。三、综合应用题( 30分) 3 在考生的文件夹下有一个工程文件 sjt5 vbp,相应的窗体文件为 sjt5劬。在窗体上有两个命令按钮,其名称分别为 Command1和 Commaad2,标题分别为 “写文件 ”和 “读文件 ”,如图 1-8
6、5(a)所示。其中 “写文件 ”命令按钮事件过程用来建立一个通信录,以随机存取方式保存到文件 t5 txt中:而 “读文件 ”命令按钮事件过程用来读出文件 t5 txt中的每个记录,并在窗体上显示出来。通信录中的每个记录由三个字段组成,结 构如下:姓名 (Name)电话 (Tel)邮政编码(Pos)LiuMingliang(010)62781234100082各字段的类型和长度为:姓名 (Name):字符串 15电话 (Tel):字符串 15邮政编码 (Pos):长整型 (Long)程序运行后。如果单击“写文件 ”命令按钮,则可以随机存取方式打开文件 t5 txt,并根据提示向文件中添加记录,
7、每写入一个记录后,都要询问是否再输入新记录,回答 “Y”(或 “y”)则输入新记录,回答 “N”(或 “n”)则停止输入;如果单击 “读文件 ”命令按钮,则可以随机存取方式打开文件 t5 txt,读出文件中的全部记录,并在窗体上显示出来,如图 1-85(b)所示。该程序不完整,请把它补充完整。要求如下: 去掉程序中的注释符,把程序中的 ?改为正确的内容。使其能正确运行,但不能修改程序中的其他部分。 文件 t5 txt中已有三个记录,如图 1-85(b)所示,请运行程序,单击 “写文件 ”命令按钮,向文件 t5 txt中添加以下两个记录 (全部采用西文方式 ):LiDaqing(027)8734
8、8765430065ChenQingshan(022)26874321300120 运行程序,单击 “读文件 ”命令按钮 ,在窗体上显示全部记录 (共 5个 )。 用原来的文件名保存工程文件和窗体文件。 VB机试模拟试卷 138答案与解析 一、基本操作题( 30分) 1 【正确答案】 第 1小题 【操作步骤】 步骤 1:新建一个 “标准 EXE”工程,如表2-129在窗体中画出控件并设置其相关属性。步骤 2:打开代码编辑窗口,编写命令按钮的单击事件过程。 参考代码: PriVate Sub C1_Click() Me Textl Font Name=“宋体 “ End Sub 步骤 3:按要求
9、将文件保存至考生文件夹中。 第 2小题 【操作步骤】 步骤 1:新建一个 “标准 EXE”工程,如表 2-130在窗体中画出控件并设置其相关属性。 步骤2:打开代码编辑窗口,编写窗体的双击事件过程。参考代码: PriVate Sub Form_DblClick() P1 PiCture=LoaoPlcture(“) End Sub 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题 本题需在命令按钮的单击事件过程中,通过修改文本框的 FontName属性值为“宋体 ”来改变文本框中文本的字体。 第 2小题 为图片框控件指定图片有两种方法:一是在设计阶段通过 Picture属性
10、设置;二是在程序运行时通过 LoadPicture()图片加载函数加载,其语法为:图片框 Picture=LoadPieture(”图像文件路径 ”), App Path可返回当前工程文件所在的文件夹路径,是使用相对路径的一种用法。用不带参 数的 LoadPicture函数为对象的 Picture属性赋值将清除窗体、图片框及图像控件中的图形。 本题需在窗体的的 DblClick事件过程中,用 LoadPicture()函数为图片框清除图片。 二、简单应用题( 40分) 2 【正确答案】 第 l小题 【操作步骤】 步骤 l:打开考生文件夹下的本题工程文件 sjt3 vbp。 步骤 2:进入代码编
11、辑窗口,在 Function Fun()和 EndFunction之间输入以下代码: 参考代码: Function Fun(a() As Single) As Single Sum=O For i=1 To UBound(a) Sum=Sum+a(i) i Next i Fun=Sum End Function 步骤 3:按要求将文件保存至考生文件夹中。 第 2小题 【操作步骤】 步骤 l:打开考生文件夹下的本题工程文件 sjt4 vbp。 步骤 2:进入代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: Timerl Enabled=True Commandl
12、 Enabled=False Timer1 Enabled=False Label1 Left=Label1 Left+20 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 第 l小题 由本题所提供原程序可知,要求编写一个求数组中各元素与其下标相除所得的和,并在文本框中显示出来的函数。设计思路:利用 For循环语句,将数组中各元素除以其下标 (表达式为: a(i) i)的值累加入一个变量 (如 sum)。循环变量的初值和终值可分别通过函数 Lbound(a)和 Ubound(a)获得。 第 2小题 本题原程序利用计时器的 Timer事件来控制标签的移动,因此单击 “开始 ”按钮启动计
13、时器,而单击 “停止 ”按钮就是要停止计时器。在计时器的 Timer事件过程中。通过每次使标签的 Left属性值增量 20实现移动,当标签完全移出窗体的右边界 (即 Label LeftMe Width)时,则重新从窗体左边界开始移动,即Label Left=0。 三、综合应用题( 30分) 3 【正确答案】 【操作步骤】 步骤 1:打 开考生文件中的本题工程文件 sjt5 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: RecNum=RecNum+1 Put#1, RecNum, Pers Loop While UCase(asp) “N“ Re
14、cNum=LOF(1) Len(Pers) Get: #l, i, Pers 步骤 2:按要求将文件保存至考生文件夹中。 步骤 3:按 键键运行程序,先单击 “写文件 ”按钮,然后在弹出的输入框中依次按照题目要求输入两条记录,再单击 “读文件 ”按钮在窗体上显示结果。 【试题解析】 用 Open语句打开随机文件,其语法格式为:OpenFileNameforRandom as#FileNumber Len=记录长度。记录长度是一条记录实际所占字节数,可用 Len()函数获取; Get#语句用于从文件中读出某记录号的记录,格式为: Get撑 FileNumber,RecordNuber,Var;P
15、ut#语句用于把记录按指定记录号写入文件,格式为: Put#FileNumber,RecordNuber,Var。 在 “写文件 ”命令按钮的 Click事件过程中,用 Open语句打开考生文件夹下的文件 t5 tXt,变量 RccNum代表记录个数,在 DoLoop 循环中 (以输入的不是 “N”作为循环条件 ),用 Put语句将记录变量 Pcrs写入随机文件中相应记录号的记录,然后令记录号加 1以便下次继续写入。在 “读文件 ”命令按钮的 Click事件过程中,用 Open语句打开文件 t5 txt,同样使用变量 RccNum代表记录个数,然后再一个 For循环中依次使用 Get语句取出每一个记录并且显示。