1、二级 VISUAL+BASIC-67 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1 的窗体上添加一个名称为 Shape1 的圆角矩形,高、宽分别为 1000、2000。请利用属性窗口设置适当的属性以满足下列要求:圆角矩形中填满绿色(颜色值为: Next j For j=i To 2*i-1 观察图像每行*的个数 Print “*“; Next j Print Next i For i=1 To 4 For j=1 To i+1 同问题 1 Print “ “; Next j For j=1 To (9-
2、2*i) 同问题 2 Print “*“; Next j Print Next i End Sub B程序结束/B 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Print 语句和 For 循环语句。 解析 本题主要考查的是对循环语句的理解,以及对于循环上限的判断。首先看一下两个主要的 For 循环语句实现什么样的功能,先看第 1 个 For 语句,在循环语句中嵌套两个循环语句,第 1 个语句实现输入空格,当 i=1 时,即当输入第 1 行时,进行 For j=1 To 6 - i 的循环,即在第 1 行打印出 5 个空字符,也可以理解为打印出 5 个空格。第
3、2 个 for 循环实现的是*的打印,还以 i = 1 为例,要打印出一个*,同时要注意行数 i 和输入空格及*符号个数之间的关系,也就是找出表达式的运算规律,从而得到循环上限。4.在考生文件夹下有一个工程文件 sjt4.vbp,窗体中有一个矩形和一个圆,程序运行时,单击“开始”按钮,圆可以横向或纵向运行(通过选择单选按钮来决定),碰到矩形的边时,则向其相反方向运动,单击“停止”按钮,则停止运动,如图所示。可以通过选择单选按钮随时改变运动方向。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。 D
4、im d As Integer Private Sub Command1_Click() Timer1.Enabled=True 当单击“开始“按钮时,Timer 生效 End Sub Private Sub Command2_Click() Timer1.Enabled=False 当单击“停止“按钮时,Timer 失效 End Sub Private Sub Form_Load() d=1 End Sub Private Sub Timer1_Timer() If Option1 Then 判断 Option1 是否被单击 Shape2.Top=Shape2.Top+d*50 实现圆垂直移
5、动 If Shape2.Top =Shape1.Top Or Shape2.Top+Shape2.Width =Shape1.Top+Shape1.Height Then 判断 Shape2 与 Shape1 的位置 d=-d 当圆移出 Shape1 时,改变移动方向 End If ElseIf Option2 Then Shape2.Left=Shape2.Left+d*50 实现水平移动 If Shape2.Left =Shape1.Left Or Shape2.Left+Shape2.Width =Shape1.Left+Shape1.Width Then d=-d 当圆移出 Shape
6、1 时,则改变移动方向 End If End If End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:计时器的 Enabled 属性,形状控件的 Top、Left 和 Width 属性以及 If 选择判断语句。 解析 在 Timer1_Timer 事件过程中,通过判断单选按钮“纵向”或“横向”是否被选中来决定圆运动的方向,如果是纵向,则通过 Shape2 的 Top 和 Width 属性值的改变实现圆的移动,并通过判断Top 属性值来确定是否到达上或下界,使圆向相反方向运动。如果是横向,则通过 Shape2 的 Left 和Width 属性值的改变实
7、现圆的移动。在 Command2_Click 事件过程中通过将 Timer1 的 Enabled 属性设置为False,使圆停止运动,在 Command1_Click 事件过程中通过将 Timer1 的 Enabled 属性设置为 True,使圆开始运动。 在窗体载入时设置 d 的值,是为了方便编辑圆向相反方向的运动过程语句。三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp。程序运行时,单击“装入数据”按钮,则从考生文件夹下的 in5.txt 文件中读入所有城市名称和距离,城市名称按顺序添加到列表框 List1 中,距离放到数组 a 中;当
8、选中列表框中的一个城市时,它的距离就在 Text1 中显示,如图所示;此时,单击“计算运费”按钮,则计算到该城市的每吨运费(结果取整,不四舍五入),并在 Text2 中显示。(分数:30.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容,并编写相应的代码。 Dim a(10) As Integer, n As Integer Private Sub Command1_Click () Open App. Path & “/in5.txt“ For Input As #1 While Not EOF (1) n=
9、n+1 下标循环加 1 Input #1, ch $, a(n) 将文件依次读入 ch,a(n)中 List1.AddItem ch 将城市名添加到List1 中 Wend Close #1 End Sub Private Sub Command2_Click() 需要考生编写的内容 b=Val(Text1) If b =0 And b 500 Then 判断 b 的范围 m=0.3*b ElseIf b =500 And b 1000 Then m=0.3*b*0.98 ElseIf b =1000 And b 1500 Then m=0.3*b*0.95 ElseIf b =1500 An
10、d b 2000 Then m=0.3*b*0.92 ElseIf b =2000 Then m=0.3*b*0.9 End If Text2=int(m) End Sub Private Sub List1_Click() 需要考生编写的内容 Text1=a(List1.ListIndex+1) 通过 List1.ListIndex+1 来确定所选城市对应的距离 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Val()函数、int()函数、列表框的 ListIndex 属性、列表框的 AddItem 方法、While 语句、If 选择判断语句以
11、及文件操作。 解析 单击“装入数据”按钮,从考生文件夹下的in5.txt 文件中读入所有城市名称和距离,通过 List1 的 AddItem 方法把城市名称 ch 按顺序添加到列表框 List1 中,将距离放到数组 a 中,在读入数据时,同时注意 While 语句,其中数组下标 n 的下限为 1,即数组中第 1 个元素为 a(1);Command2_Click 事件过程实现单选列表框中的一个城市时,使它的距离显示在 Text1 中,a(List1.ListIndex+1)表示的是所选城市对应的距离,通过 List1 的 ListIndex 属性确定数组的下标,但是 ListIndex 属性是从 0 开始的,因此要加 1 才能与之对应。通过 Val()函数使 Text1 中的字符转化为数值型,运用表达式,计算结果。因为题目要求“结果取整,不四舍五入”,所以是截尾取整,可以用 int()函数实现。 对于数组 a 的数组下标以及 ListIndex 属性是从 0 开始的理解是本题解题的关键。