1、二级 VISUAL+BASIC-39 及答案解析(总分:85.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:15.00)1.在名为 Form1 的窗体上绘制一个名为 HS1 的水平滚动条,请在属性窗口中设置它的属性值,满足以下要求:它的最大刻度值为 200,最小刻度值为 100,在运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动 10 个刻度。再在滚动条下面绘制两个名称分别为 Lab1 和 Lab2 的标签,并分别显示100 和 200,运行时的窗体如下图所示。 (分数:15.00)_二、B2 简单应用题/B(总题数:1,分数:40.00)2.在考
2、生文件夹中有文件 sjt3.vbp 及其窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确的内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件夹和文件名。 本题描述如下: 窗体上有一个名称 Text1 的文本框,两个复选框,名称分别为 Ch1 和 Ch2,标题分别为“足球”和“乒乓球”;一个名称为 C1,标题为“确定”命令按钮。要求程序运行后,如果只选中 Ch1,单击“确定”命令按钮,则在文本框中显示“我喜欢足球”:如果只选中 Ch2,单击“确定”命令按钮,则在文本框中显示“我喜欢乒乓球”;如果同时选中 Ch1 和 Ch2,然后单击“确定”命令按钮
3、,则在文本框中显示“我喜欢足球和乒乓球”;如果 Ch1 和 Ch2 都不选,然后单击“确定”命令按钮,则在文本框中什么都不显示。程序运行界面如图 21 所示。 (分数:40.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有一个工程文件 sjt5.vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。 要求:请在程序中的横线处填写正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体
4、文件。 题目提供的源程序 Dim stepy As Integer 纵向移动增量 Dim stepx As Integer 横向移动增量 Const LEFT_BUTTON=1 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim x0 As Integer, y0 As Integer, a As Single, radius As Integer radius=Shape1.Width/2 圆的半径 If Button=LEFT_BUTTON Then x0
5、=Shape1.Left+radius 圆心的 x 坐标 y0=Shape1.Top+radius 圆心的 y 坐标 If x=x0 Then stepy=Sgn(y-y0)*50 stepx=U U /U/U Else a=(y-y0)/(x-x0) 斜率 stepx=Sgn(x-y0)*50 U U /U /U=a * stepx If Abs(stepy)Abs(stepx) Then stepy=Sgn(y-y0)*50 stepx=stepy/a End If End If U U /U /U=True Else U U /U /U=False End If End Sub Priv
6、ate Sub Timer1_Timer() Shape1.Move Shape1.Left+stepx, Shape1.Top+U U /U /U End Sub(分数:30.00)_二级 VISUAL+BASIC-39 答案解析(总分:85.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:15.00)1.在名为 Form1 的窗体上绘制一个名为 HS1 的水平滚动条,请在属性窗口中设置它的属性值,满足以下要求:它的最大刻度值为 200,最小刻度值为 100,在运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动 10 个刻度。再在滚动条下面绘制两个名
7、称分别为 Lab1 和 Lab2 的标签,并分别显示100 和 200,运行时的窗体如下图所示。 (分数:15.00)_正确答案:(第一步:新建一个名为 Form1 的窗体; 第二步:单击工具箱中的 HScrollBar 控件图标,在窗体上拖拉出一个水平滚动条,在属性窗口设置该水平滚动条名称为 HS1,Max 为 200,Min 为100,LargeChange 为 10; 第三步:单击工具箱中的 Labe1 控件图标,在窗体上拖拉出两个标签,在其属性窗口设置名称分别为 Lab1 和 Lab2,Caption 属性分别为 100 和 200; 第四步:按要求保存文件即完成本题。)解析:解析 本
8、题主要考查 HScrollBar 控件属性的设置。二、B2 简单应用题/B(总题数:1,分数:40.00)2.在考生文件夹中有文件 sjt3.vbp 及其窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确的内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件夹和文件名。 本题描述如下: 窗体上有一个名称 Text1 的文本框,两个复选框,名称分别为 Ch1 和 Ch2,标题分别为“足球”和“乒乓球”;一个名称为 C1,标题为“确定”命令按钮。要求程序运行后,如果只选中 Ch1,单击“确定”命令按钮,则在文本框中显示“我喜欢足球”:如果只选中 Ch2,
9、单击“确定”命令按钮,则在文本框中显示“我喜欢乒乓球”;如果同时选中 Ch1 和 Ch2,然后单击“确定”命令按钮,则在文本框中显示“我喜欢足球和乒乓球”;如果 Ch1 和 Ch2 都不选,然后单击“确定”命令按钮,则在文本框中什么都不显示。程序运行界面如图 21 所示。 (分数:40.00)_正确答案:( 复选框用来表示状态,在程序运行期间可以改变其状态。复选框标题由 Caption 属性来设置,复选框的 value 属性用来表示复选框的状态,其取值有:0:表示复选框未被选中;1:表示复选框被选中;2:表示复选框被禁止使用(灰色)。 解题步骤;第一步:编写程序代码。程序提供的代码:Optio
10、n ExplicitPrivate Sub C1_Click() ? =“If Ch1.Value and Not Ch2.Value Then Text1.Text=“我喜欢足球“ If Ch1. Value=? And Ch2. Value Then Text1.Text=“我喜欢乒乓球“If Ch1. Value And Ch2. ValueThen Text1. Text=“我喜欢足球和乒乓球“End Sub参考代码:Option ExplicitPrivate Sub C1_Click()Text1. Text=“If Ch1. Value And Not Ch2. Value Th
11、en Text1. Text=“我喜欢足球“If Ch1. Value=0 And Ch2. Value Then Text1. Text=“我喜欢乒乓球“If Ch1. Value And Ch2. Value Then Text1. Text=“我喜欢足球和乒乓球“End Sub第二步:调试并运行程序。第三步:按题目要求存盘。2 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 计时器控件作用是以一定的时间间隔激发计时器事件(Timer)执行相应程序代码。当时计时器控件的Enabled 属性为 True 时,计时器计时开始,当为 False 时计时器计时暂停,所以要使小球运动暂停可将
12、Enabled 属性值设置为 False,要使小球运行,则设置该属性值为 True。 解题步骤:第一步:建立界面并设置控件属性。程序中用到的控什及其属性见表 3。表 3 控 件 属 性 设 置 值按钮 NameCaption Command1运行按钮 NameCaption Command2暂停按钮 NameCaption Command3结束滚动条 Name HScroll1图片框 Name Picture1第二步:编写程序代码。程序提供的代码:Option ExplicitDim c As Single, r As Single r 小球到大球的球心的距离,c 为小球的角度.Dim x A
13、s Single, y As Single x, y 为小球移动时的圆心Dim st As SinglePrivate Sub Command1_Click()Timer1. Enabled=TrueEnd SubPrivate sub Command2_Click() ?End SubPrivate Sub Command3_ClickOEndEnd subPrivate Sub Form_Load()r=20c=0st=0.063HScroll1.Min=1 设置最小值HSeroll1.Max=100 设置最大值End SubPrivate Sub HSeroll1_Change() Ti
14、mer1.?=200HScroll1.Value 根据滚动条的数值设置时间间隔,速度越快,间隔越小End SubPrivate Sub Picture1_Paint()Pieture1.FillColor=QBColor (12)Picture1.ForeColor=QBColor (12)Picture1. Circle(0,0), 2x=Cos(c) *ry=Sin(c) *rPicture1.FillColor=QBColor (14)Picture1.ForeColor=QBColor (14)Picture1.? (x,y), 0.5c=c+stIf c=2*3.14159 Then
15、c=c Mod (2*3.14159)End IfEnd SubPrivate Sub Timer1_Timer() ? 重画图片框End Sub参考代码:Option ExplicitDim c As Single, r As Single r 小球到大球的球心的距离,c 为小球的角度.Dim x As Single, y As single x,y 为小球移动时的圆心Dim st As SinglePrivate Sub Command1_Click()Timer1. Enabled=TrueEnd SubPrivate Sub Command2_Click()UTimer1.Enable
16、d=False/UEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()r=20c=0st=0.063HScroll1.Min=1 设置最小值HSeroll1.Max=100 设置最大值End SubPrivate Sub HScroll1_Change()Timer1. UInterva1/U=200HSeroll1.Value 根据滚动条的数值设置时间间隔,速度越快,间隔越小End SubPrivate Sub Pieture1_Paint()Picture1.FillColor=QBColor (12)Pi
17、eture1.ForeColur=QBColor (12)Picture1.Circle (0,0) , 2x=Cos(c) * ry=Sin(c) * rPicture1.FillColor=QBColor (14)Pieture1.ForeColor=QBColor (14)Pieture1.Circle(x, y), 0.5c=c+stIf c=2*3.14159 Thenc=c Mod (2*3.14159)End IfEnd SubPrivate Sub Timer1_Timer()UPicture1.Refresh/U 重画图片框End Sub第三步:调试并运行程序。第四步:按题目
18、要求存盘。)解析:三、B3 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有一个工程文件 sjt5.vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。 要求:请在程序中的横线处填写正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。 题目提供的源程序 Dim stepy As Integer 纵向移动增量 Dim stepx As Integer 横向移动增量 Const LEFT_BU
19、TTON=1 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim x0 As Integer, y0 As Integer, a As Single, radius As Integer radius=Shape1.Width/2 圆的半径 If Button=LEFT_BUTTON Then x0=Shape1.Left+radius 圆心的 x 坐标 y0=Shape1.Top+radius 圆心的 y 坐标 If x=x0 Then stepy=Sgn(
20、y-y0)*50 stepx=U U /U/U Else a=(y-y0)/(x-x0) 斜率 stepx=Sgn(x-y0)*50 U U /U /U=a * stepx If Abs(stepy)Abs(stepx) Then stepy=Sgn(y-y0)*50 stepx=stepy/a End If End If U U /U /U=True Else U U /U /U=False End If End Sub Private Sub Timer1_Timer() Shape1.Move Shape1.Left+stepx, Shape1.Top+U U /U /U End Sub
21、(分数:30.00)_正确答案:(操作步骤 第 1 步:打开工程文件 sjt5.vbp。 第 2 步:分析并编写程序。 第 3 步:调试、运行并保存程序。 1Sgn(x-x0)*50 2stepy 3Timer1.Enabled 4Timer1.Enabled 5stepy)解析:解析 可以使用控件的 Move 方法或改变其 Left 和 Top 属性来实现控件的移动。本题中首先根据鼠标单击位置和实心圆当前位置之间的关系决定移动的步长 stepx 和 stepy,可能是直线运行,也可能是斜线运动;移动步长可为正,也可能为负。其中用到了一个关键函数 sgn(),sgn(x)函数可以检测 x 的正负,如果 x 为正数,则函数值为 1;如果 x 为负数,则函数值为-1;如果 x 为 0,则函数值为 0。例如:在圆的右侧单击时,xx0,sgn(x-x0)=1,计算出 stepx 的值为正,圆会向右移动。 具体的移动由Timer1_Timer 事件过程完成,Form_MouseDown 事件过程负责控制 Timer1 是否有效以及 Stepx 和 Stepy 的计算。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1