1、VB 机试-试卷 98 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.请根据以下各小题的要求设计 VisualBasic 应用程序(包括界面和代码)。(1)在名称为 Forml、标题为“框架”的窗体上画一个名称为 Framel,且没有标题的框架。框架内含有两个单选按钮,名称分别为Optl 和 opt2、标题分别为“字体”、“大小”,如图 1-216 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtlvbp,窗体文件名为 sjtlfrm。 (2)考生文件夹下的工程文件 sjt2vbp中有一个
2、由直线 Linel、Line2 和 Line3 组成的三角形,直线 Linel、Line2 和 Line3 的坐标值见表 1-10: 要求画一条直线 Line4 以构成三角形的高,且该直线的初始状态为不可见。再画两个命令按钮,名称分别是 Cmdl、Cmd2,标题分别为“显示高”、“隐藏高”,如图 1-217 所示。请编写适当的事件过程,使得在运行时,单击“显示高”按钮,则显示三角形的高;单击“隐藏高”按钮,则隐藏三角形的高。注意:要求程序中不得使用变量,每个事件过程只能写一条语句。不得修改已经存在的控件,最后将修改后的文件按原文件名存盘。 (分数:2.00)_二、简单应用题(总题数:2,分数:
3、4.00)3.简单应用题()(分数:2.00)_4.(1)在考生文件夹下有一个工程文件 sjt3vbp,运行情况如图 1-23 所示。程序的功能是计算表达式的值:z=(x-2)!+(x-3)!+(x-4)!+(x-N)!其中的 N 和 x 值通过键盘分别输入到两个文本框 Textl、Text2中。单击名称为 Commandl、标题为“计算”的命令按钮,则计算表达式的值,并将计算结果显示在名称为 Labell 的标签中。在窗体文件中已经给出了全部控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确内容。要求:程序调试通过后,必须按照如图 1-23 所示输入 N=5,x=12,然后
4、计算z 的值,并将计算结果显示在标签 Labell 中,否则没有成绩。注意;不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 (2)在考生文件夹下有一个工程文件 sjt4vbp。窗体上有名称为 Labell 的标签和名称为 Timerl 的计时器控件。该程序的功能是在名称为 Labell 的标签中循环显示不同的字符串。程序开始运行,在标签中显示“第一项”(如图 1-24 所示),且每隔 1 秒钟依次显示“第二项”、“第三项”、“第四项”,如此循环。在给出的窗体文件中已经有了全部控件和程序,但程序不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容。注意:不能修改程序的
5、其他部分和控件属性。最后把修改后的文件按原文件名存盘。 (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹中有一个工程文件 sjt5vbp。窗体外观如图 1-58 所示。运行程序,单击“读数据”按钮,文件中的数据被读入字符串变量中并显示在 Label2 标签中。单击“排序”按钮时,对读入的数据从小到大排序,并将排序结果显示在窗体的 Label4 控件中。要求:工程文件中已给出部分程序,“读数据”命令按钮的事件过程不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。请编写“排序”命令按钮的事件过程中的部分程序代码。注意:不
6、能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,两个命令按钮的事件过程必须至少各执行一次。 (分数:2.00)_VB 机试-试卷 98 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.请根据以下各小题的要求设计 VisualBasic 应用程序(包括界面和代码)。(1)在名称为 Forml、标题为“框架”的窗体上画一个名称为 Framel,且没有标题的框架。框架内含有两个单选按钮,名称分别为Optl 和 opt2、标题分别为“字体”、“大小”,如图 1-216 所示。
7、注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtlvbp,窗体文件名为 sjtlfrm。 (2)考生文件夹下的工程文件 sjt2vbp中有一个由直线 Linel、Line2 和 Line3 组成的三角形,直线 Linel、Line2 和 Line3 的坐标值见表 1-10: 要求画一条直线 Line4 以构成三角形的高,且该直线的初始状态为不可见。再画两个命令按钮,名称分别是 Cmdl、Cmd2,标题分别为“显示高”、“隐藏高”,如图 1-217 所示。请编写适当的事件过程,使得在运行时,单击“显示高”按钮,则显示三角形的高;单击“隐藏高”按钮,则隐藏三角形的高。注意:要求程序中不得使
8、用变量,每个事件过程只能写一条语句。不得修改已经存在的控件,最后将修改后的文件按原文件名存盘。 (分数:2.00)_正确答案:(正确答案: 第 1 小题 【操作步骤】 步骤 1:新建一个“标准 EXE”工程,如表 2-126 在窗体上绘制控件并设置属性。 步骤 2:按要求将文件保存至考生文件夹中。 第 2 小题 【操作步骤】 步骤 l:打开本题工程文件 sjt2vbp,在窗体中画一个直线控件和两个命令按钮,并设置其相关属性如表 2-127 所示。 )解析:解析: 第 1 小题 本题只需按题目要求画出框架和单选按钮,并分别设置其属性。 第 2 小题 Visible(可见)属性用于设置控件或菜单项
9、在程序运行时是否可见,值为 True 表示可见,值为 False 表示不可见。 本题的考核要求有两项。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在考生文件夹下有一个工程文件 sjt3vbp,运行情况如图 1-23 所示。程序的功能是计算表达式的值:z=(x-2)!+(x-3)!+(x-4)!+(x-N)!其中的 N 和 x 值通过键盘分别输入到两个文本框 Textl、Text2中。单击名称为 Commandl、标题为“计算”的命令按钮,则计算表达式的值,并将计算结果显示在名称为 Labell 的标签中。在窗体文件中已经给出了全部控件和程序
10、,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确内容。要求:程序调试通过后,必须按照如图 1-23 所示输入 N=5,x=12,然后计算z 的值,并将计算结果显示在标签 Labell 中,否则没有成绩。注意;不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 (2)在考生文件夹下有一个工程文件 sjt4vbp。窗体上有名称为 Labell 的标签和名称为 Timerl 的计时器控件。该程序的功能是在名称为 Labell 的标签中循环显示不同的字符串。程序开始运行,在标签中显示“第一项”(如图 1-24 所示),且每隔 1 秒钟依次显示“第二项”、“第三项”、“第四项
11、”,如此循环。在给出的窗体文件中已经有了全部控件和程序,但程序不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 (分数:2.00)_正确答案:(正确答案: 第 l 小题 【操作步骤】 步骤 1:打开考生文件中的本题工程文件 sjt3vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: tmp=1 tmp=temp+i xn=tmp z=z+xn(t) 步骤 2:按键键运行程序,在第一个文本框中输入 5,第两个文本框中输入 12,然后单击“计算”按钮。 步骤 3:按要求将文件
12、保存至考生文件夹中。 第 2 小题 【操作步骤】 步骤 1:打开考生文件中的本题工程文件 sjt4vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: arr=Array(“第一项“,“第二项“,“第三项“,“第四项“) Static i As Integer LabellCaption=arr(i) i=0 步骤 2:按要求将文件保存至考生文件夹中。)解析:解析: 第 l 小题 本题原程序中,自定义函数 xn 的功能是进行 m!阶乘运算,它通过 For 循环连续 m 次将循环变量 i 的值乘以累积变量 tmp(第一个?处 map 初值应为 1)来实现。故自
13、定义函数 xn 中第两个?处应改为:tmp*i,作为函数返回值第三个?处应改为:)xn。 在“计算”按钮的单击事件过程中。根据程序所要计算表达式的特点,原程序利用一个 For 循环依次计算表达式中各项的值(x-i)1),并将其累加入变量 z。计算表达式中各项的值通过调用自定义函数 xn(t)来实现的,其中 t=x-i。故Commandl_Click 事件过程中第一个?处应改为:xn(t)。计算结果显示在标签中。 第 2 小题 要实现本题中的功能,在窗体的 Load 事件过程中,首先使用 Array 函数建立一个新数组,然后设置计时器的相关属性并启用计时器;在计时器的 Timer 事件中,由于需
14、要计算 Timer 事件的执行次数才能判断出应该显示何种文字,因此计数变量 i 应该声明为 Static 类型的变量,然后把数组的第 i 项显示在标签中,接下来令i+l,一旦 i 超过了 3 就将其重新置 O 以便实现循环显示。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹中有一个工程文件 sjt5vbp。窗体外观如图 1-58 所示。运行程序,单击“读数据”按钮,文件中的数据被读入字符串变量中并显示在 Label2 标签中。单击“排序”按钮时,对读入的数据从小到大排序,并将排序结果显示在窗体的 Label4 控件中。要求:工程文件中已
15、给出部分程序,“读数据”命令按钮的事件过程不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。请编写“排序”命令按钮的事件过程中的部分程序代码。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,两个命令按钮的事件过程必须至少各执行一次。 (分数:2.00)_正确答案:(正确答案: 【操作步骤】 步骤 1:打开考生文件夹中的本题工程文件 sjt5vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: Do While Not EOF(1) s=s&Str(a(i) 步骤 2:在代码编辑窗口指定位置编写以下代码: 参考
16、代码: num=UBound(a) For i=1 To num-1 For j=i To num If a(i)a(j)Then t=a(i) a(i) =a(j) a(j) =t End If Next Next 步骤 3:按键运行程序,先单击“读数据”按钮,再单击“排序”按钮,最后单击窗体右上角的关闭按钮结束程序。步骤 4:按要求将文件保存至考生文件夹中。)解析:解析: 冒泡法的核心思路是按顺序让一个数列中的每一个数都与它之后的所有的数逐一进行比较,如果该数大于其后面的数。则把这两个位置的数进行交换。通过这样的循环,最终按照从小到大的顺序排列出该数列。 设计思路:在“读数据”按钮的单击事件中,首先使用 Do While 当型循环结构从文件中读取全部数据,并以 Not EOF(文件号)(非文件结尾)作为循环条件,通过 Input#语句将打开文件中的数据逐一读出后赋值给 a(i),然后将数组连接起来显示在标签中。 在“排序”按钮的单击事件过程中,原程序利用“冒泡法”对记录数组中的元素从小到大进行排序。