1、二级 VISUAL+BASIC-62 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1 的窗体上添加一个名称为 Picture1 的图片框(PictureBox),高、宽均为 1000。在图片框内再添加一个有边框的名称为 Image1 的图像框(Image)。并通过属性窗口把考生文件夹下的图标文件Point11(香蕉图标)装入图像框 Image1 中,如图所示。(分数:15.00)_2.在名称为 Form1 的窗体上添加一个名称为 Command1、标题为“保存文件”的命令按钮,再添加一个名称为 Commo
2、nDialog1 的通用对话框。要求:运行时单击“保存文件”命令按钮,则以“保存文件”方式打开该通用对话框,如图所示。(分数:15.00)_二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的名称是Line1,还有一个名称为 Label1 的标签和其他一些控件(如图 1 所示)。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图 1 所示);若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置(如图 2 所示);若鼠标左键或右键单击其他位置,则在标签上输出“鼠标位置不对”。(分数:20.0
3、0)_4.在考生文件夹下有一个工程文件 sjt4.vbp,窗体如图所示。其功能是单击“输入数据”按钮,则可输入一个整数 n(要求:8n12);单击“计算”按钮,则计算 1!+2!+3!+n!的值,并将计算结果显示在文本框中;单击“存盘”按钮,则把文本框中的结果保存到考生文件夹下的 out4.dat 文件中。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容,并编写“计算”按钮的 Click 事件过程。注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用“存盘”按钮存储计算结果,否则无成绩。最后将修改后的文件按原文件名存盘。(分数:20.
4、00)_三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp,含三个窗体,标题分别为“启动”、“注册”、“登录”,程序运行时显示“启动”窗体,单击窗体上按钮时弹出对应窗体进行注册或登录。 注册信息放在全局数组 users 中,注册用户数(小于或等于 10 个)放在全局变量 n 中(均已在标准模块中定义)。 注册时用户名不能重复,且“口令”与“验证口令”必须相同,注册成功则在“启动”窗体的标签中提示“注册成功”,否则提示相应错误信息。登录时,检验用户名和口令,若正确,则在“启动”窗体的标签上提示“登录成功”,否则提示相应错误信息。 标准模块中函数
5、 finduser 的功能是:在 users 数组中搜索用户名(参数ch),找到则返回该用户名在 users 中的位置,否则返回 0。 文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把 Form2、Form3 窗体文件中的?改为正确的内容。 注意:不得修改已经存在的程序和控件的属性;最后,程序按原文件名存盘。(分数:30.00)_二级 VISUAL+BASIC-62 (1)答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1 的窗体上添加一个名称为 Picture1 的图片框(PictureBox
6、),高、宽均为 1000。在图片框内再添加一个有边框的名称为 Image1 的图像框(Image)。并通过属性窗口把考生文件夹下的图标文件Point11(香蕉图标)装入图像框 Image1 中,如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:建立界面,添加相应的控件并设置控件的属性。程序中用到的控件及属性见下表。 控件 图片框 图像框属性 Name WidthHeightBorderStyleName Picture设置值 Picture11000 1000 1 Image1Point11步骤 2:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:图片框的 N
7、ame、Width 和 Height 属性以及图像框的 Name、Picture 和BorderStyle 属性。 解析 通过图片框的 Name、Width、Height 属性设置图片框的名称、宽度和高度,图像框的 BorderStyle 属性设置为 1,表示图像框有边框,图像框的 Name 属性设置图像框的名称,通过Picture 属性加载考生文件夹下的图标文件。2.在名称为 Form1 的窗体上添加一个名称为 Command1、标题为“保存文件”的命令按钮,再添加一个名称为 CommonDialog1 的通用对话框。要求:运行时单击“保存文件”命令按钮,则以“保存文件”方式打开该通用对话框
8、,如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:新建一个窗体,按照题目要求建立控件及属性,如表所示。 控件 命令按钮 通用对话框属性 Name Caption Name FileNameDialogTitle设置值 Command1保存文件 CommonDialog1out2 保存文件步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Command1_Click() CommonDialog1.ShowSave 显示“保存文件“对话框 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:命令按钮的 Name
9、 和 Caption 属性,通用对话框的 Name、FileName 和DialogTitle 属性以及通用对话框的 ShowOpen 方法。 解析 通过命令按钮 Name 和 Caption 属性设置命令按钮的名称和标题,通过通用对话框的 Name、FileName 和 DialogTitle 属性设置通用对话框名称、默认文件名和对话框标题,在 Command1_Click 事件过程中,运用通用对话框的 ShowSave 语句弹出“保存文件”对话框。二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的
10、名称是Line1,还有一个名称为 Label1 的标签和其他一些控件(如图 1 所示)。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图 1 所示);若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置(如图 2 所示);若鼠标左键或右键单击其他位置,则在标签上输出“鼠标位置不对”。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 参考答案 Const y0&=1110, x0&=1100, radius&=750 Private Function oncircle(X As Single, Y As
11、 Single)As Boolean precision=55000 If Abs(X-x0)*(X-x0)+(y0-Y)*(y0-Y)-radius*radius)precision Then 判断鼠标单击的位置是否在圆边上 oncircle=True Else oncircle=False End If End Function Private Sub Form_MouseDown(Button As Integer, Shift as Integer, X As Single, Y As Single) Const LEFT_BUTTON=1 If oncircle(X, Y)Then
12、调用 oncircle 函数判断鼠标单击的位置 Line1.X1=x0 Line1.Y1=y0 If Button=LEFT_BUTTON Then Line1.X2=X LiRe1.Y2=Y 直线另一端的 Y 坐标为鼠标当前的 y 值 Else Line1.X2=Line1.X1 直线回到初始位置 x 不变 Line1.Y2=y0-radius& y2 为原先坐标减去半径的值 End If Label1.Caption=“ “ Else 否则 Label1 显示位置不对 Label1=“鼠标位置不对“ End If End Sub B程序结束/B 步骤 3:调试并运行程序,关闭程序后按题目要
13、求存盘。)解析:考点 本题考点有:Const 语句,Abs()函数,坐标值,线条的 X1、Y1、X2 和 Y2 属性,If 判断语句以及 For 循环语句。 解析 Const 用米设置符号常量,Function oncircle()函数则用来判断鼠标单击的位置是否在圆的边界上,通过调用 Function oncircle()函数实现对鼠标单击位置的判断,如果在其他位置,则在标签上显示“鼠标位置不对”,线条的 X1、Y1、X2 和 Y2 属性用来确定指针位置和大小,Button 的值用来判断是右键单击还是左键单击,确定指针指向。4.在考生文件夹下有一个工程文件 sjt4.vbp,窗体如图所示。其
14、功能是单击“输入数据”按钮,则可输入一个整数 n(要求:8n12);单击“计算”按钮,则计算 1!+2!+3!+n!的值,并将计算结果显示在文本框中;单击“存盘”按钮,则把文本框中的结果保存到考生文件夹下的 out4.dat 文件中。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容,并编写“计算”按钮的 Click 事件过程。注意:不得修改已经存在的内容和控件属性,在结束程序运行之前,必须用“存盘”按钮存储计算结果,否则无成绩。最后将修改后的文件按原文件名存盘。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。步骤 2:打开代
15、码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容,并编写相应代码。Dim n As IntegerPrivate Sub Command1_Click()n=Val(InputBox(“请输入整数(8-12)“,“输入“)If n12 Or n8 Then 确定输入值最大为 12,最小为 8,否则提示错误MsgBox(“数据错误,请重新输入“)Command2.Enabled=FalseCommand3.Enabled=False 两按钮不可用ElseCommand2.Enabled=TrueCommand3.Enabled=True 两按钮可用End IfEnd SubPrivate
16、 Sub Command2_Click()Dim s As Long, k As Integer考生应编写的程序s=0For k=1 To ns=s+f(k)Next kText1=s编程结束End SubFunction f(n As Integer)As Longs=1 初始化 s 为 1For k=2 To n 循环求 n 的阶乘s=s * kNextf=s 返回阶乘结果End FunctionPrivate Sub Command3_Click()Open App.Path &“/out4.dat“ For Output As #1Print #1, n, Text1Close #1E
17、nd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘,如图所示。*)解析:考点 本题考点有:Val()函数、InputBox()函数、MsgBox()函数、命令按钮的 Enabled 属性以及文件操作。 解析 在 Command1_Click 事件过程中通过 Val()函数和 InputBox()函数取得输入对话框中的数值,如果输入的数值不在范围内,那么弹出对话框 MsgBox(“数据错误,请重新输入“),并使命令按钮 Command2 和 Command3 不可用,Function f()函数则用来实现阶乘的计算,Command2_Click 事件过程中,运用循环语句的累加实现表达
18、式求和运算,Command3_Click 事件过程通过文件操作实现数据的存盘处理。三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp,含三个窗体,标题分别为“启动”、“注册”、“登录”,程序运行时显示“启动”窗体,单击窗体上按钮时弹出对应窗体进行注册或登录。 注册信息放在全局数组 users 中,注册用户数(小于或等于 10 个)放在全局变量 n 中(均已在标准模块中定义)。 注册时用户名不能重复,且“口令”与“验证口令”必须相同,注册成功则在“启动”窗体的标签中提示“注册成功”,否则提示相应错误信息。登录时,检验用户名和口令,若正确,则在“
19、启动”窗体的标签上提示“登录成功”,否则提示相应错误信息。 标准模块中函数 finduser 的功能是:在 users 数组中搜索用户名(参数ch),找到则返回该用户名在 users 中的位置,否则返回 0。 文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把 Form2、Form3 窗体文件中的?改为正确的内容。 注意:不得修改已经存在的程序和控件的属性;最后,程序按原文件名存盘。(分数:30.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。 Form2 窗体代码 Private Sub
20、 Command1_Click() 清空重置 Text1=“ “ Text2=“ “ Text3=“ “ End Sub Sub writeusers() 向数组 users 中写入新用户信息 n=n+1 用户数目自增 users(n,1)=Text1 保存用户的用户名、密码 users(n,2)=Text2 End Sub Private Sub Command2_Click() If Text1=“ “Then MsgBox(“必须输入用户名!“) Text1.SetFocus Text1 重新获得焦点 ElseIf finduser(Trim $ (Text1)0 Then 如找到相同名
21、,则返回位置一定大于 0 MsgBox(“此用户名已经存在!“) ElseIf Text2Text3 Then 比较口令与验证口令是否相同 MsgBox(“口令验证错误!“) Else writeusers Form1.Label1=“注册成功!“ 当注册成功后 Label1 显示成功信息 Form2.Hide End If End Sub Form3 窗体代码 Private Sub Command1_Click() k=finduser(Trim $ (Text1) If k=0 Then 验证用户名是否存在 MsgBox(“没有注册!“) ElseIf Trim $ (Text2)use
22、rs(k,2)Then 验证输入的密码是否正确 MsgBox(“口令错误!“) Else Form1.Label1.Caption=“登录成功!“ Form3.Hide End If End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:窗体 Show 和 Hide 方法、标签的 Caption 属性、MsgBox()函数、Trim()函数以及文本框 SetFocus 方法。 解析 因为本题的窗体比较多,含有一个模块,所以首先要理清思路,了解每一个窗体的功能。窗体 1 是启动界面,可以选择登录或者注册,窗体 2 是注册窗口实现用户的注册,窗体 3 是登录窗口实现用户的登录,模块中函数的功能是在数组中寻找用户名,并返回其所在的位置。理清了各个窗体和模块的关系,就可以开始分析并编写代码了。