1、国家二级 VB机试(上机操作)模拟试卷 307及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画一个名称为 Picture1的图片框(PictureBox),高、宽均为 1000。在图片框内再画一个有边框的名称为Image1的图像框(Image)。并通过属性窗口把考生目录下的图标文件 POINTl1(香蕉图标)装入图像框Image1中,如图 3170所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为
2、 sjt1frm。 (2)在名称为 Form1的窗体上画一个名称为 Command1、标题为“保存文件”的命令按钮,再画一个名称为 CommonDialog1的通用对话框。要求:通过属性窗口设置适当的属性,使得运行时对话框的标题为“保存文件”,且默认文件名为 out2;运行时单击“保存文件”按钮,则以“保存对话框”方式打开该通用对话框。如图 3171所示。 (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在考生目录下有一个工程文件 sjt3vbp。窗体上有个钟表图案,其中代表指针的直线的名称是Line1,还有一个名称为 Label1的标签,和其他一些控件,如图 317
3、2(a)所示。在运行时,若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置,如图 3172(b)所示;若用鼠标右键单击圆的边线,则指针恢复到起始位置,如图 3172(a)所示;若鼠标左键或右键单击其他位置,则在标签上显示“鼠标位置不对”。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?”改为正确的内容。程序中的 oncircle函数的作用是判断鼠标单击的位置是否在圆的边线上(判断结果略有误差),是则返回 True,否则返回 False。符号常量 x0、y0 是圆心距窗体左上角的距离;符号常量radius是圆的半径。注意:不能修改程序中的其他部分和各控件的属性。
4、最后把修改后的文件按原文件名存盘。 (2)在考生目录下有一个工程文件 sjt4vbp,窗体如图 3173所示。其功能是单击“输入数据”按钮,则可输入一个整数,n(要求:8n12);单击“计算”按钮,则计算 1!+2!+3!+n!,并将计算结果显示在文本框中;单击“存盘”按钮,则把文本框中的结果保存到考生目录下的 out4dat文件中。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?”改为正确的内容,并编写“计算”按钮的 Click事件过程。注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用“存盘”按钮存储计算结果,否则无成绩。最后把修改后的文件
5、按原文件名存盘。 (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp,含三个窗体,标题分别为“启动”、“注册”、“登录”,运行时显示“启动”窗体,单击其上按钮时弹出对应窗体进行注册或登录。注册信息放在全局数组 users中,注册用户数(最多 10个)放在全局变量 n中(均已在标准模块中定义)。注册时用户名不能重复,且“口令”与“验证口令”须相同,注册成功则在“启动”窗体的标签中显示“注册成功”,否则显示相应错误信息。登录时,检验用户名和口令,若正确,则在“启动”窗体的标签上显示“登录成功”,否则显示相应错误信息。标准模块中函数 fi
6、nduser的功能是:在 users数组中搜索用户名(即参数 ch),找到则返回该用户名在 users中的位置,否则返回 0。已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把 Form2、Form3 窗体文件中的“?”改为正确的内容。注意:不得修改已经存在的程序和控件的属性,最后程序按原文件名存盘。(分数:2.00)_国家二级 VB机试(上机操作)模拟试卷 307答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画一个名
7、称为 Picture1的图片框(PictureBox),高、宽均为 1000。在图片框内再画一个有边框的名称为Image1的图像框(Image)。并通过属性窗口把考生目录下的图标文件 POINTl1(香蕉图标)装入图像框Image1中,如图 3170所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为 sjt1frm。 (2)在名称为 Form1的窗体上画一个名称为 Command1、标题为“保存文件”的命令按钮,再画一个名称为 CommonDialog1的通用对话框。要求:通过属性窗口设置适当的属性,使得运行时对话框的标题为“保存文件”,且默认文件名为 out
8、2;运行时单击“保存文件”按钮,则以“保存对话框”方式打开该通用对话框。如图 3171所示。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:新建一个“标准 ExE”工程,按要求画出控件并设置属性。 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:新建一个“标准 EXE”工程,选择工程部件命令,在弹出的“部件”对话框的列表中选中“MicroSoft Common Dialog Control60”项目,单击“确定”按钮。 步骤 2:在窗体 Form1上画一个通用对话框和一个命令按钮并设置相关属性。 步骤3:打开的代码编辑窗口中,编写命令按钮的单击事件过程。 P
9、rivate Sub Command1_Click() CommonDialog1Action=2 或 CommonDialog1ShowSave End Sub 步骤 4:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:本题只需按照要求画出控件并设置属性即可,注意图像框要画在图片框内部。 第 2小题:通用对话框的默认文件名由 FileName属性设置,标题由 DialogTitle属性设置。本题可在“保存文件”的单击事件过程中,用语句通过调用通用对话框的 ShowSave方法或通过设置其 Action属性值为 2,使其以“保存对话框”方式打开。二、简单应用题(总题数:1,分数:2.
10、00)2.(1)在考生目录下有一个工程文件 sjt3vbp。窗体上有个钟表图案,其中代表指针的直线的名称是Line1,还有一个名称为 Label1的标签,和其他一些控件,如图 3172(a)所示。在运行时,若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置,如图 3172(b)所示;若用鼠标右键单击圆的边线,则指针恢复到起始位置,如图 3172(a)所示;若鼠标左键或右键单击其他位置,则在标签上显示“鼠标位置不对”。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?”改为正确的内容。程序中的 oncircle函数的作用是判断鼠标单击的位置是否在圆的边线上(判断结
11、果略有误差),是则返回 True,否则返回 False。符号常量 x0、y0 是圆心距窗体左上角的距离;符号常量radius是圆的半径。注意:不能修改程序中的其他部分和各控件的属性。最后把修改后的文件按原文件名存盘。 (2)在考生目录下有一个工程文件 sjt4vbp,窗体如图 3173所示。其功能是单击“输入数据”按钮,则可输入一个整数,n(要求:8n12);单击“计算”按钮,则计算 1!+2!+3!+n!,并将计算结果显示在文本框中;单击“存盘”按钮,则把文本框中的结果保存到考生目录下的 out4dat文件中。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?
12、”改为正确的内容,并编写“计算”按钮的 Click事件过程。注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用“存盘”按钮存储计算结果,否则无成绩。最后把修改后的文件按原文件名存盘。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:打开本题工程文件 sjt3vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: Line1Y2=Y Line1X2=Line1X1 Line1Y2=y0-750 Label1Caption=“鼠标位置不对“ 步骤 2:按要求将文件保存至考生文件夹中。 第2小题 步骤 1:打开考生文件夹中的本题工程文
13、件 sjt4vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: s=1 f=s 步骤 2:双击“计算”按钮,编写该按钮的单击事 件过程。 参考代码: Private Sub Command2_Click() Dim s As Long,k As Integer 考生应编写的程序 s=0 For k=1To n s=s+f(k) Next Text1=s End Sub 步骤 3:按F5键运行程序,单击“输入数据”按钮,通过输入框输入一个 812 之间的整数,然后单击“计算”按钮计算结果,最后单击“存盘”按钮保存结果。 步骤 4:按要求将文件保存至考生文件夹
14、中。)解析:解析:第 1小题:本题源程序在 Form MouseDown事件过程中,先通过调用函数 oncircle(X,Y)以判断鼠标单击的位置是否在圆的边线上,若在边线上,则接着判断当前按下的是否为鼠标左键,若为左键,则将直线 Line1的终点位置设置为当前鼠标单击的位置,故第一个?处应改为:Y;若当前按下的不是左键,则直线 Line1的终点位置设置为其原始位置,即 Line1X2=Line1X1、Line1Y2=y0-750。若鼠标单击的位置不在圆的边线上,则在标签上显示相关信息,故第 4个?处应改为:Label1Caption。 第 2小题:本题源程序中,自定义函数 f的功能是进行 n
15、!阶乘运算,它通过 For循环连续 n次将循环变量 k的值乘以累积变量 s(第一个?处 s初值应为 1)来实现,作为函数返同值第二个?处应改为:s。 在“计算”按钮的单击事件过程中,根据程序所要计算表达式的特点,源程序利用一个 For循环依次计算表达式中各项的值并将其累加入变量 s,计算表达式中各项的值通过调用白定义函数 f(k)来实现的,最终计算结果显示在文本框中。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp,含三个窗体,标题分别为“启动”、“注册”、“登录”,运行时显示“启动”窗体,单击其上按钮时弹出对应窗体进行注册或登录。注册信息放在全局数
16、组 users中,注册用户数(最多 10个)放在全局变量 n中(均已在标准模块中定义)。注册时用户名不能重复,且“口令”与“验证口令”须相同,注册成功则在“启动”窗体的标签中显示“注册成功”,否则显示相应错误信息。登录时,检验用户名和口令,若正确,则在“启动”窗体的标签上显示“登录成功”,否则显示相应错误信息。标准模块中函数 finduser的功能是:在 users数组中搜索用户名(即参数 ch),找到则返回该用户名在 users中的位置,否则返回 0。已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把 Form2、Form3 窗体文件中的“?”改为正确的内容。注意:不得修改已经
17、存在的程序和控件的属性,最后程序按原文件名存盘。(分数:2.00)_正确答案:(正确答案:步骤 1:打开考生文件夹中的本题工程文件 sjt5vbp,在代码编辑窗口,去掉程序中的计释符“”, 将问号“?”改为正确的内容。 参考代码: -注册窗体 Form2- n=n+1 Else If finduser(Trim$(Text1)0Then Form1Label1Caption=“注册成功!“ -登录窗体 Form3- If k=0Then Else If Trim$(Text2)users(k,2)Then 步骤 2:按要求将文件保存至考生文件夹中。)解析:解析:本题源程序在“注册”窗体的“确定
18、”按钮的单击事件过程中,先判断是否输入用户名,若没有输入则弹出提示信息,否则通过调用标准模块中的 finduser函数,检查输入用户是否存在于 users数组中(条件表达式为:finduser(Trim$(Text1)0),若该用户存在则弹出提示信息,否则进一步检查前后两次输入的密码是否一致,若前后不一致则弹出提示信息,否则通过调用过程 wfiteusers将该用户名及密码写入数组 users中,并在“启动”窗体的标签(Form1Label1)中显示“注册成功”。每调用一次过程 writeusers,全局变量 n将记录新增一个用户,即 n=n+1。 在“登录”窗体的“登录”按钮的单击事件过程中,通过调用标准模块中的 finduser函数,检查输入用户是否存在于 users数组中,若不存在(条件表达式为;k=0)则弹出提示信息,否则进一步检查该用户的密码输入是否正确(条件表达式为:Trim$(Txt2)users(k,2),若不正确则弹出提示信息,否则在“启动”窗体的标签(Form1Label1)中显示“登录成功”。