1、国家二级 VB机试(上机操作)模拟试卷 363及答案与解析 一、基本操作题 1 (1)在窗体上画出 2个名称分别为 Shape1、 Shape2的形状控件,在属性窗口设置控件的属性,使得 Shape1为圆角矩形,并填充红色 (&H000000FF&); Shape2为圆形,并填充网格线,如图 3-24所示。 (1)在窗体上画出 2个名称分别为 Shape1、Shape2的形状控件,在属性窗口设置控件的属性,使得 Shape1为圆角矩形,并填充红色 (&H000000FF&); Shape2为圆形,并填充网格线,如图 3-24所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtl v
2、bo,窗体文件名为sjtl frm。 (2)在窗体上画 1个名称为 Picture1的图片框,其 Picture属性为 picl bmp(在考生文件夹中 )。画 2个名称分别为Command1、 Command2的命令按钮, Caption属性分别为 “左移 ”“右移 ”。请编写适当的程序,使得运行程序时,单击 “左移 “按钮,图片框移至窗体左侧 (如图 3-25(a)所示 );单击 “右移 ”按钮,图片框移至窗体右侧 (如图 3-25(b)所示,注:可以不考虑窗体边框的影响 )。注 意:程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sjt2 v
3、bp,窗体文件名为 sjt2 frm。 二、简单应用题 2 (1)在考生目录下有一个工程文件 sjt3 vbp。窗体上有个钟表图案,其中代表指针的直线的名称是 Linel,还有一个名称为 Label1的标签,和其他一些控件,如图3 172(a)所示。在运行时,若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置,如图 3 172(b)所示;若用鼠标右键单击圆的边线,则指针恢复到起始位置,如图 3 172(a)所 示;若鼠标左键或右键单击其他位置,则在标签上显示 “鼠标位置不对 “。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的 “?”改为正确的内容。程序中的 on
4、circle函数的作用是判断鼠标单击的位置是否在圆的边线上 (判断结果略有误差 ),是则返回 True,否则返回False。符号常量 x0、 y0是圆心距窗体左上角的距离;符号常量 radius是圆的半径。 注意:不能修改程序中的其他部分和各控件的属性。最后把修改后的文件按原文件名存盘。 (2)在考生目录下有一个工程文件 silL4 vbp,窗 体如图 3 173所示。其功能是单击 “输入数据 ”按钮,则可输入一个整数 n(要求: 8n12);单击 “计算 “按钮,则计算1!+2!+3!+n! ,并将计算结果显示在文本框中;单击 “存盘 ”按钮,则把文本框中的结果保存到考生目录下的 out4
5、dat文件中。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的 “?”改为正确的内容,并编写 “计算 ”按钮的 Click事件过程。 注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用 “存盘 ”按钮存储计算结果,否则无成绩。最后把修改后的 文件按原文件名存盘。 三、综合应用题 3 在考生目录下有一个工程文件 sjt5 vbp,其窗体上有一个文本框,名称为Text1;还有两个命令按钮,名称分别为 C1、 C2,标题分别为 “计算 ”、 “存盘 ”,如图 3 77所示。并有一个函数过程 isprime(a)可以在程序中直接调用,其功能是判断参数 a是
6、否为素数,如果是素数,则返回 True,否则返回 False。请编写适当的事件过程,使得在运行时,单击 “计算 ”按钮,则找出大于 15000的第一个素数,并显示在 Text1中;单击 “存盘 ”按钮,则把 Text1中的计算结果存 入考生文件夹下的out5 txt文件中。 注意:考生不得修改 isprime函数过程和控件的属性,必须把计算结果通过单击 “存盘 ”按钮存入 out5 txt文件中,否则无成绩。国家二级 VB机试(上机操作)模拟试卷 363答案与解析 一、基本操作题 1 【正确答案】 (1)步骤 1:新建一个 “标准 EXE”工程,在窗体 Form1中加入两个Shape控件。按表
7、 4 15设置其相关属性。步骤 2:按要求将文件保存至考生文件夹中。 (2)步骤 1:新建一个 “标准 EXE”工程,在窗体 Form1中加入一个图片框和两个命令按 钮。按表 4一 16设置其相关属性。步骤 2:在打开的代码编辑窗口中,编写命令按钮的 Click事件代码。参考代码: Private Sub Command1_Click()Picture1 Left=0End SubPrivate Sub Command2_Click()Picture1 Left=Form1 WidthPicture1 WidthEnd Sub 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 (1)根
8、据题目要求在窗体上放置两个 Shape形状控件,并设置相关属性。通过设置形状控件 Shape属性值,可显示 6种图形: 0一矩形、 1一正方形、 2一椭圆、 3一圆、 4一圆角矩形、 5一圆角正方形: Width属性用于设置形状的宽度,当形状为圆时即为圆的直径; BorderColor属性用于设置边框颜色;FilIColor-属性用于设置填充颜色; FillStyle属性设置内部填充样式。 (2)题目要求点击不同的命令按钮使图片框移动到窗体的左侧或者右侧,在命令按钮的 Click事件代码里面编写代码设置 图片框的 Left属性即可。移动到最左边的时候图片框的 Left属性值设置为 0,移动到最
9、右边的时候图片框的 Left属性设置为窗体的宽度 -图片框的宽度。 二、简单应用题 2 【正确答案】 (1)步骤 1:打开本题工程文件 sjl3 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。参考代码: Linel Y2=Y Linel X2=Linel X1 Linel Y2=y0-750 Label1 Caption=“鼠标位置不对 “ 步骤 2:按要求将文件保存至考生文件夹中。 (2)步骤 1:打开考生文件夹中的本题工程文件 sjt4 vbp,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。参考代码: s=1 f=s 步骤 2:双
10、击 “计算 ”按钮,编写该按钮的单击事件过程。参考代码: PriVate Sub Command2_Click() Dim s As Long, k As Integer 考生应编写的程序 s=0 For k=1 To n s=s+f(k) Next Text1=s End Sub 步骤 3:按 键运行程序,单击 “输入数据 ”按钮,通过输入框输入一个 8 12之间的整数,然后单击 “计算 ”按钮计算结果,最后单击 “存盘 ”按钮保存结果。 步骤 4:按要求将文件保存至考生文件夹中。 【试题解析】 (1)本题源程序在 Form MouseDown事件过程中,先通过调用函数oncircle(X,
11、 Y)以判断鼠标单击的位置是否在圆的边线上,若在边线上,则接着判断当前按下的是否为鼠标左键,若为左键,则将直线 Linel的终点位置设置为当前鼠标单击的位置,故第一个 ?处应改为: Y;若当前按下的不是左键,则直线 Linel的终点位置设置为其原始位 置,即 Linel X2=Linel X1、 Linel Y2=vo 750。若鼠标单击的位置不在圆的边线上,则在标签上显示相关信息,故第 4个 ?处应改为: Label1 Caption。 (2)本题源程序中,自定义函数 f的功能是进行 n!阶乘运算,它通过 For循环连续 n次将循环变量 k的值乘以累积变量 s(第一个 ?处 s初值应为 1)
12、来实现,作为函数返回值第二个 ?处应改为: s。 在 “计算 ”按钮的单击事件过程中,根据程序所要计算表达式的特点,源程序利用一个 For循环依次计算表达式中各项的值并将其累加入变量 s, 计算表达式中各项的值通过调用自定义函数 f(k)来实现的,最终计算结果显示在文本框中。 三、综合应用题 3 【正确答案】 步骤 1:打开本题对应工程文件 sjt5 vbp。 步骤 2:双击窗体 Form1上的 “计算 ”按钮,打开代码编辑窗口,在其 Click事件过程中输入如下代码。参考代码: PriVate Sub C1_Click() a =15000 Do a =a + 1 Loop Until is
13、prime(a ) Text1 Text=a End Sub 步骤 3:双击窗体 Form1上的 “存盘 ”按钮,在代码编辑窗口其 Click事件过程中输入如下代码。参考代码: Private Sub C2_Click() Open App Path &“ out5 txt“For Outpult As #1 Print#l, Text1 Text Close #1 End Sub 步骤 4:按要求将文件保存至考生文件夹中。 【试题解析】 素数的判断准则就是看该数除了 1和其本身外有无其他约数。程序设计思路:要找出大于 15000的第一个素数,可以定义一个 初值为 15000的整型变量 a,通过调用函数 isprime(a),以其返回值是素数 (即 isprime(a)作为 Do循环语句的继续循环条件,在循环体中加入语句: a=a+1,实现每执行循环体一次变量a的值增加 1,当循环结束时将 a的值在文本框中显示出来。 要将结果存入考生文件夹下的 out5 txt文件,可先用 Open语句以输出方式打开该文件;然后通过 Print语句将文本框中的内容写入打开的文件;最后用 Close语句关闭打开的文件。