1、VB机试模拟试卷 141及答案与解析 一、基本操作题( 30分) 1 请根据以下各小题的要求设计 VisualBasic应用程序 (包括界面和代码 )。 (1)在名称为 Forml的窗体上画一个名称为 Labell、标题为 “列表框的使用 ”的标签。再画一个名称为 Listl的列表框,列表中含有 5个表项,表项内容分别为 “北京 ”、 “山西 ”、“辽宁 ”、 “浙江 ”和 “广东 ”,并且可以在列表中同时选择多个表项。运行后的窗体如图 1-39所示。要求:存盘时必须存放在考生文件夹下,工程文件名为 sjtl vbp,窗体文件名为 sjtl frm。 (2)在名称为。 Forml的窗体上画一个
2、名称为Imagel的图像框,其高、宽分别为 2000、 3000,且不随图片大小而变化;再画两个命令按钮,标题分别是 “显示图片 ”和 “隐藏图片 ”,名称分别为 Cmdl、 Cmd2,如图 1-40所示。需编写两个命令按钮的 Click事件过程,使得当单击 “显示图片 ”按钮时,将当前文件夹下的图片文件 “图片 jpg”显示在图像框中:而如果单击 “隐藏图片 ”按钮,则清除图像框中的图片。要求:程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sjt2 vbp,窗体文件名为 sjt2 frm。 二、简单应用题( 40分) 2 (1)考生文件夹下的工
3、程文件 sjl3 vbp中有一个菜单、两个标签和两个文本框。程序运行时,用鼠标右键单击窗体会弹出一个弹出式菜单 (如图 1-213所示 )。当选中 “计算 100以内自然数之和 ”菜单项时,将计算 100以内自然数之和并放入 Textl中;当选中 “计算 7!”菜单项时,将计算 7!并放入 Text2中。在给出的窗体文件中已经有了全部控件,但程序不完整。请将事件过程中的注释符去掉,把 ?改为正确的内容,以实现上述程序功能。注意:考生不得 修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。 (2)考生文件夹下的工程文件 sjt4 vbp中有如图 1-214所示的控件。程序功能如下:程
4、序运行时,在 Textl中输入一个商品名称,在 Text7中输入一个数量,单击 “计算 ”按钮,则会在列表框中找到该商品的单价,乘以数量后显示在 Text3中 (如图 1-214所示 );若输入的商品名称是错误的,则在 Text3中显示 “无此商品 ”(为方便编程,列表框中的每个单价均为 4位 (含小数点 )。请将事件过程中的注释符去掉,把 ?改为正确的内容,以实现上述程序功能。注 意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。 三、综合应用题( 30分) 3 在考生文件夹下有一个工程文件 sjt5 vbp,相应的窗体文件为 sjt5 frm,此外还有一个名为 da
5、tain txt的文本文件,其内容如下:32437658281298573142536475869713243546576879805937程序运行后单击窗体,将把文件 datain txt中的数据输入到二维数组 Mat中,在窗体上按 5行、 5列的矩阵形式显示出来,并输出矩阵右上左下对角线上的数据,如图 1-70所示。在窗体的代码窗口中,已给出了部分程序,这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。VB机试模拟试卷 141答案与解析 一、基本操作题( 30
6、分) 1 【正确答案】 第 1小题 【操作步骤】 步骤 1:新建一个 “标准 EXE”工程。 步骤2:在窗体 Forml中加入一个列表框和一个标签,并分别如表 2-20设置它们的相关属性。 步骤 3:按要求将文件保存至考生文件夹 中。 第 2小题 【操作步骤】 步骤 1:新建一个 “标准 EXE”工程,如表 2-21在窗体中画出控件并设置其相关属性。 步骤 2:打开代码编辑窗口,编写两个命令按钮的单击事件过程。 参考代码: PriVate Sub Cmd1_Click() Imagel Picture=LoadPicture(“图 片 jpg“) End Sub PriVate Sub Cmd
7、2_Click() Imagel Picture=LoadPi cture() End Sub 步骤 3:按要求将文件保存至考生文件夹中。 【试题解 析】 第 1小题 列表框的 MultiSelect属性用于设置是否可在列表项中做多个选择,值为 O(缺省设置 )表示不允许做多项选择,值为 1表示允许做简单多项选择,值为 2表示允许配合使用 Shift键、 Ctrl键做多项选择。 本题的考核要求有两项: 通过列表框的 List属性设置题中指定的列表项; 通过设置 MultiSelect属性设置列表框是否允许选择多项。 第 2小题 为图像框控件指定图片有两种方法:一是在设计阶段通过 Picture
8、属性设置;二是在程序运行时通过 LoadPicture()图片加 载函数加载,其语法为:图片框 Picture=LoadPicture(”图像文件路径 ”), App Path,可返回当前工程文件所在的文件夹路径,是使用相对路径的一种用法。用不带参数的 LoadPicture函数为对象的 Picture属性赋值将清除窗体、图片框及图像控件中的图形。 Strech(自动伸缩 )属性用来设定图像框是否需要自动调整大小,以适应载入图像框中的图片的大小,值为 True时表示自动调整。 本题需分别在两个命令按钮的 Click事件过程中,用 LoadPicture()函数为图像框加载或清除图片。 二、简单
9、应用题( 40分) 2 【正确答案】 第 1小题 【操作步骤】 步骤 1:打开考生文件中的本题工程文件 sjt3 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: If Button=2 Then PopupMenu mypopmenu For k=n TO 1 Step-l Text2=fact(7) 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 【操作步骤】 步骤 1:打开考生文件夹下的本题工程文件 sjt4 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: For k=l To Listl
10、ListCount-1 name=Left(List1 List(k), n-1) price=Val(Right(Listl List(k), 4) Text3=“无此商品 “ 步骤 2:按要 求将文件保存至考生文件夹中。 【试题解析】 第 1小题 鼠标事件分点击事件和状态事件。点击事件有单击事件 (Click)和双击事件(DblClick),不区分左右键;状态事件有按下事件 (MouseDown)、移动事件(MouseMove)和弹起事件 (MouseUp)。 状态事件涉及 Button、 Shift两个参数: BuRon参数是一个整数,值可能为 l(左键 )、 2(右键 )或 4(中间键
11、 ); Shift参数也是一个整数,用来代表用户是否按下键 (值为 1)、 键 (值为 2)、 键 (值为 4)或这些键的组合。 弹出式菜单是显示于窗体之上,独立于菜单栏的浮动式菜单。 PopupMenu方法可在对象上的当前鼠标位置或指定的坐标位置显示弹出式菜单。 要创建本题的弹出式菜单需先用菜单编辑器来建立菜单,并将其主菜单项的可见(即 Visible)属性值设置为 False,然后在窗体的 MouseDown(或 MouseUp)事件过程中,判断该事件的 Button参数值是否为 2,若是则执行窗体的 PopupMenu方法来显示菜单。 在相应菜单项的 Click事件过程中,可以调用 fa
12、ct函数来计算 71, fact函数是一个求阶乘的函数,通过 For循环依次累乘实现。 第 2小题 本题程序运行时,在文本框中输入商品名称,当单击命令按钮的时候,首先判断该商品是否在列表框中存在。由于列表框中的每一项都是商品名称十空格 +单价的组合,因此在循环判断列表框的每一项时,首先找到列表项里面空格的位置,然后取出空格之前的字符就是商品名称,和文本框中输入的数据进行对比,如果一致则说明有此商品,那么取出列表项的后 4个字符即商品单价进行操作,并且在退出循环的同时令旗帜变量 flag变为 Tme。当循环 结束后,如果 flag变量的值为 True则证明有此商品,将单价 *数量的值显示在文本框
13、中,否则在文本框中显示 “无此商品 ”。 三、综合应用题( 30分) 3 【正确答案】 【操作步骤】 步骤 l:打开本题对应工程文件 sjt5 vbp。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: Dim Mat (M, N) Open App Path&“ “&“in5 txt“For_ Input As#1 Input#l, Mat(i, j) If i+j=6 Then 步骤 3:按要求将文件保存在考生文件夹中。 【试题解析】 本题原程序的大致设计思路是:程序运行后单击窗体,则打开数据文件 in5 txt并从中读取数据,依次存入二维数组 Mat(下界为 1,上界为 5)的各元素中,故第一个 ?处是定义数组,应改为: Mat (M, N)?第两个 ?处是指明打开文件的方式,应改为: For Input:第三个 ?处是将数据文件中的数据读入并赋值给数组元素,应改为: Input#1, Mat (i, j)。然后用一个嵌套的 For循环将数组Mat中的数据在窗体上按 5行、 5列的矩阵形式在窗体上显示出来;由于右上到左下对角线上的元素具有行号与列号之和为 6的特点,可以接着再用一个 For循环将数组 Mat中满足 i+j=6的元素输出,故第 4个 ?处应改为 Ifi+j=6 Then。