1、国家二级 VB机试(上机操作)模拟试卷 305及答案与解析 一、基本操作题 1 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 (1)在名称为 Form1的窗体上画一个名称为 CD1的通用对话框,通过属性窗口设置 CD1的初始路径为 C:,默认的文件名为 None,标题为 “保存等级考试 ”,如图 3160所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1 vbp,窗体文件名为 sjt1 frm。 (2)在名称为 Form1的窗体上设计一个菜单。要求在窗体上添加名为 menu0,标题 为“菜单命令 ”的主菜单,再添加两个名称分别为 “menu
2、1”、 “menu2”,标题分别为 “不可用菜单项 ”、 “上一菜单项可用 ”的子菜单,并且使程序运行时, menu1子菜单不可用, menu2子菜单已经选中 (运行时的效果如图 3161所示 )。再编写适当的事件过程,使得程序运行时,单击 “上一菜单项可用 ”,则 “不可用菜单项 ”变为黑色(可用 )。要求程序中不得使用变量,且只有一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2 vbp,窗体文件名为sjt2 frm 二、简单应用题 2 (1)在考生文件夹 中有工程文件 sjt3 vbp,其中的窗体如图 3162所示。程序刚运行时,会生成一个有 10个元素的整型数组。若选
3、中 “查找最大值 ”(或 “查找最小值 ”)单选按钮,再单击 “查找 ”按钮,则找出数组中的最大值 (或最小值 ),并显示在标签 Label2中。请去掉程序中的注释符,把程序中的 “?”改为正确的内容。注意:考生不得修改窗体文件中已经存在的程序。最后把修改后的文件按原文件名存盘。(2)在考生文件夹中有一个工程文件 sjt4 vbp。窗体上已有控件,如图 3 163所示。请在属性窗口中将 List1设置为可以多项选择 (允许使 用 Shift键或 Ctrl键进行选择 )列表项。要求:双击 List1中的某一项时,该项目被添加到 List2中,同时在List1中清除该项目。若单击 “ ”按钮, L
4、ist1中所有的项目显示在 List2中 (List2中已有项目不变 ), List1中的内容不变。要求:按照题目要求设置控件属性,去掉程序中的注释符,把程序中的 “?”改为正确的内容。注意:不得修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。三、综合应用题 3 在考生文件夹中有一个工程文件 sjt5 vbp,如图 3164所示。运行程序时 ,从文件中读入矩阵数据并放入二维数组 a中。单击 “计算 ”按钮时,将统计矩阵两个对角线的元素中能被 3整除的个数,统计结果显示在标签 lblFirst中;同时计算矩阵主对角线的元素之和,计算结果显示在标签 lblSecond中。已给出了部
5、分程序,请编写 “计算 ”命令按钮事件过程中的部分程序代码,以便完成上述功能。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,必须执行程序,并用 “计算 ”按钮进行计算,否则无成绩。国家二级 VB机试(上机操作)模拟试卷 305答案与解析 一、基 本操作题 1 【正确答案】 第 1小题 步骤 1:新建一个 “标准 EXE”工程,选择 工程 部件 命令,在弹出的 “部件 ”对话框的列表中选中 “MicroSoft Common Dialog Control6 0”项目,单击 “确定 ”按钮。 步骤 2:在窗体 Form1上画一个通用对话框并设置相关属性。
6、 步骤 3:编写 Form1的 Load事件,加入的代码: CD1 ShowSave 步骤 4:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:新建一个 “标准 EXE”工程,打开 VB菜单设计器按要求设计菜单。 步骤 2:打开代 码编辑窗口,编写 “上一菜单项可用 ”命令的 Click事件过程。 参考代码: Private Sub menu2_Click() menu1 Enabled=TrHe End Sub 步骤 3:按要求将文件保存全考生文件夹中。 【试题解析】 第 1小题:通用对话框的初始路径由 InitDir属性设置,默认文件名由 FileName属性设置,标题由 Dial
7、ogTitle属性设置。 第 2小题:本题源程序设计思路:在 “上一菜单项可用 ”命令的单击事件过程中,通过语句设置 “不可用菜单项 ”命令的 Enabled属性值为 True。 二、简单应用题 2 【正确答案】 第 1小题 步骤 1:打开考生文件夹下的工程文件 sjt3 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: If Option1 Value=True Then If a(i) =x Then x=a(i) End If Elself a(i) y Then y=a(i) End If 步骤 2:按要求将文件保存至考生文件夹中。 第 2小
8、题 步骤 1:打开考生文件夹中的本题工程文件 sjt4 vbp,代码编辑窗口,去掉程序中的 注释符 “”,将问号 “?”改为正确的内容。 参考代码: L2 AddItem L1 List(L1 ListIndex) L1 RemoveItem L1 ListIndex For i=0To List1 ListCount-1 Call MoveItem(List1, List2) 步骤 2:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题:根据题同要求,在 “查找 ”按钮的单击事件过程中,预设两个变量 x和 y,分别是数组的最大值和最小值;接下来判断单选按钮数组中哪个单选按钮被选中,如
9、果选中了最大值 按钮,则用循环依次比较 a(i)和 x的值,如果a(i) x则将 a(i)的值放入 x。以此类推选中最小值按钮时的处理过程与之类似。 第 2小题:实现本题从列表框 List1到 List2的移出功能,其实就是利用列表框的AddItem方法和 RemoveItem方法添加或删除列表框中的项目。由题中源代码可知,当双击列表框 Ljst1中的某项时,则调用 Moveltem过程 (参数应为控件 List1和 List2)将列表框 List1中当前项的内容 (索引号为 ListIndex)用 AddItem方法添加到列表框 List2中,同时用 RemoveItem方法从列表框 Lis
10、t1中删除该项。当单击“ ”按钮时,则调用 MoveAll过程通过 For循环 (循环变量终值为List1 ListCount-1)将列表框 List1中的各项逐一添加到列表框。 List2中。 三、综合应用题 3 【正确答案】 步骤 1:打开考生文件夹下的工程文件 sjt5 vbp,在代码编辑窗口的指定位置编写以下代码。 参考代码: For k=1To N Sum=Sum+a(k, k) If a(k, k) 3=Int(a(k, k) 3)Then Counter=Counter+1 End If If k N-k+1Then If a(k, N-k+1) 3=Int(a(k, N-k+1
11、) 3)Then Counter=Counter+1 End If End If Next lblSecond Caption=Sum lblFirst Caption=Counter 步骤 2:按 F5键运行程序,然后单击 “计算 ”按钮。 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 矩阵主对角线上元素的特点:第一维下标与第二维下标相同; 7*7矩阵次对角线上元素的特点:第一维下标与第二维 下标之和为 8。根据题意,可通过一个 For循环,将满足主对角线上元素特点的数组元素累加入变量 Sum。再通过一个嵌套的 For循环逐一判断满足两个对角线上的元素特点的元素能否被 3整除,若某数组元素能被 3整除,则记录个数的变量 Counter增 1。