1、VB 机试-试卷 85 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.请根据以下各小题的要求设计 VisualBasic 应用程序(包括界面和代码)。(1)在名称为 Forml 的窗体上画一个名称为 CDl 的通用对话框,通过属性窗口设置 CDI 的初始路径为 C:,默认的文件名为 None,标题为“保存等级考试”,如图 1-44 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为sjtlvbp,窗体文件名为 sjtlfrm。 (2)在名称为 Forml 的窗体上设计一个菜单。要求在窗体上添加名为
2、menu0,标题为“菜单命令”的主菜单,再添加两个名称分别为“menul”、“menu2”,标题分别为“不可用菜单项”、“上一菜单项可用”的子菜单,并且使程序运行时,menul 子菜单不可用,menu2 子菜单已经选中(运行时的效果如图 1-45 所示)。再编写适当的事件过程,使得程序运行时,单击“上一菜单项可用”,则“不可用菜单项”变为黑色(可用)。要求程序中不得使用变量,且只有一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2vbp,窗体文件名为 sjt2Frm (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1
3、)在考生文件夹下有一个工程文件 sjt3vbp,它的功能是在运行时只显示名为 Form2 的窗体,单击Form2 上的“C2”按钮,则显示名为 Forml 的窗体:单击 Forml 上的“Cl”按钮,则 Forml 的窗体消失。这个程序并不完整,要求如下:把 Form2 设为启动窗体;把 Forml 上按钮的标题改为“隐藏”,把Form2 上按钮的标题改为“显示”。去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件存盘。工程文件和窗体文件仍以原来的文件名存盘。正确程序运行后的界面如图 l-102 所示。 (2)在考生文件夹下有一个工
4、程文件sjt4vbp,它的功能是在文本框中输入一个整数,单击“移动”按钮后,如果输入的是正数,滚动条中的滚动框向右移动与该数相等的刻度,但如果超过了滚动条的最大刻度,则不移动,并且显示“文本框中的数值太大”;如果输入的是负数,滚动条中的滚动框向左移动与该数相等的刻度,但如果超过了滚动条的最小刻度,则不移动,并且显示“文本框中的数值太小”,如图 1-103 所示。要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的程序以原来的文件名存盘。 (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应
5、用题()(分数:2.00)_6.在考生目录下有一个工程文件 sjt5vbp。其功能是产生并显示一个数列的前 n 项。数列产生的规律是:数列的前 2 项是小于 10 的正整数,将此 2 数相乘,若乘积HSlMax Then MsgBox”文本框中的数值太大” ElseIf HSlValue+TextlText解析:解析:第 l 小题 从本题题目要求及所提供原程序可知,程序运行时首先显示窗体 Form2,然后在Form2 的“显示”按钮的单击事件过程中,通过设置窗体 Forml 的 Visible 属性值为 True 来显示该窗口。第 2 小题 本题程序设计思路:在“移动”按钮的单击事件过程中,首
6、先判断滚动条在当前位置基础上移动与文本框中输入数值相等的刻度时,是否超过滚动条 Max 属性值的限制,若是则弹出消息框显示“文本框中的数值太大”;否则接着判断滚动条在当前位置基础上移动与文本框中输入数值相等的刻度时,是否超过滚动条Min 属性值的限制,若是则弹出消息框显示“文本框中的数值太小”,否则设置滚动条的Value 属性值为原有 Value 属性值加上文本框中的输入值。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生目录下有一个工程文件 sjt5vbp。其功能是产生并显示一个数列的前 n 项。数列产生的规律是:数列的前 2 项是小于 10
7、 的正整数,将此 2 数相乘,若乘积10,则以此乘积作为数列的第 3 项;若乘积10,则以乘积的十位数为数列的第 3 项,以乘积的个位数为数列的第 4 项。再用数列的最后 2 项相乘,用上述规则形成后面的项,直至产生了第 n 项。窗体上部从左到右三个文本框的名称分别为:Textl、Text2、Text3,窗体下部的文本框名称为。Text4。程序运行时,在 Textl、Text2 中输入数列的前两项,Text3 中输入要产生的项数 n,单击“计算”按钮则产生此数列的前 n 项,并显示在 Text4 中。如图 1-230 所示。注意:文件中已经给出了全部控件,但程序不完整,请去掉程序中的注释符,把
8、程序中的?改为正确的内容。不得修改原有程序和控件的属性。最后把修改后的文件按原文件名存盘。(分数:2.00)_正确答案:(正确答案: 【操作步骤】 步骤 1:打开考生文件中的本题工程文件 sjtvbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: Text4=Text4&a&“&b a=b If k=n Then b=d 步骤 2:按要求将文件保存至考生文件夹中。)解析:解析: While 循环和 Do 循环是用条件来控制的循环。Do 循环语句的功能是:当指定的“循环条件”为真或直到指定的“循环条件”变为真之前重复执行循环体。 根据题意,数列第 n 项的值源
9、于该项前两项的乘积。本题原程序中,将文本框 Textl 的输入值赋予变量 a 作初值,将文本框 Text2 的输入值赋予变量 b 作初值,并把 a、b 初值作为数列的前两项。故第一个?处应改为b。将文本框 Text3 的输入值赋予变量 n,以标记数列最终要生成的项数。变量 k 用于记录数列当前项数,初值为 2。 在 Do 循环中,首先将 a、b 的乘积赋予变量 c(当前项数 k 增 1),然后判断 c 的值是否小于 10,若 c 小于 10 则 c 即为数列的第 3 项,并将 b 的值赋予变量 a,c 的值赋予变量 b,以便计算数列下一项的值;若 c 不小于 10,则取 a和 b 乘积十位上的数(即 d=c10)作数列的第 3 项,将 d 的值赋予变量 a(当前项数 k 增 1),并进一步判断当前 k 值是否小于或等于最终要生成的项数 n,若是则取 a 和 b 乘积个位上的数(即 d=c Mod 10)作数列的第 4 项,将 d 的值赋予变量 b,以便计算数列下一项的值。重复执行循环体,即可依次求出数列后续项的值。