您现在的位置:首页 >> 在线习题 >> 内容

高校计算机等级考试二级VB上机测试样题

时间:2009-6-19 11:32:09 点击:4391

 

(一)高校计算机等级考试二级VB上机测试样题

1.属性设置及程序改错题

(1)Gc510.frm的功能是:输入圆的半径,求圆面积。在“求圆面积”窗体上建有3个label控件、2个command控件,text1用于输入圆的半径,label1和label2分别用于提示“已知圆的半径:”和“面积为:”,label3用于显示输出圆的面积,以上控件的属性已设置。Command1和command2分别用于“计算”和“结束”(caption属性),它们的快捷键分别是Alt+S和Alt+X,即单击command1开始计算,单击command2退出程序运行。要求:

1)设置command1、command2的属性。

2)在command1_click()和command2_click()二个过程代码中各有一个错误,请调试改正。

调试改正时,每个过程代码只能改一处,并不得增删语句。

Private sub command1_click()

Const pi=3.14

If  text1.text=”” then

R=text1.text

If r=val(text1.text) then

S=pi*r*r

Label3.caption=s

Else

Msgbox  “输入的不是数据,请重新输入”

Text1.setfocus

End if

End if

End sub

Private  sub  command2_click()

exit

End sub

(2)gc317.frm的功能是:设计一个窗体,单击“自动”按钮,标签Label1每0.1秒向右移动一次,当到达窗体右边时自动向左移动,单击“手动”按钮时则单击一次标签移动一次,要求标签中显示文字为“上机测试”。

具体要求:

①设置计时器Timer1和标签Label1的属性。

②在编写的Command2_Click(),Timer1_Timer()中各有一处错误,请调试改正。

调试改正中,每个过程代码只能改一处,并不得增删语句。

Dim Step As Integer

Private Sub Command1_Click()

  Timer1.Enabled = True

End Sub

Private Sub Command2_Click()

  Timer1.Enabled = flase

  Timer1.Timer

End Sub

Private Sub Form_Load()

  Step = 1

End Sub

Private Sub Timer1_Timer()

  Label1.Move Label1.Left + 50 * Step

  If Label1.Left + Label1.Width > Form1.Width Then

     Step = -1

  ElseIf Label1.Left > 0 Then

     Step = 1

  End If

End Sub

2.程序改错题

(1)gc372.frm的功能是:交换两个数(例10,20),要求Swap1用值传递,Swap2用地址传递,使第一个PRINT语句输出:A=10,B=20;第二个PRINT语句输出:A=20,B=10。

请修改程序中2处错误,并调试该程序,使之正确运行,不得增加或删除程序行。

Private Sub Form_click()

    Dim a As Integer, b As Integer

    a = 10: b = 20

    swap1 a, b

    Print "A1="; a, "B1="; b

    a = 10: b = 20

    swap2 a, b

    Print "A1="; a, "B1="; b

End Sub

Public Sub swap1(x As Integer, y As Integer)

    Dim t As Integer

    t = x: x = y: y = t

End Sub

Public Sub swap2(m As Integer, n As Integer)

    Dim t As Integer

    t = m: n = m: n = t

End Sub

(2)gc458.frm的功能是:窗体上有一个文本框,名称为Text1;3个标签,名称分别为“请输入成绩”、“成绩评语”和空白;一个命令按钮,名称为C1,标题为“获得评语”。请修改事件过程,使得在运行时,在Text1中输入0到100间的数字,单击“获得评语”按钮,在Label3中显示的内容。

        成绩范围      Label3中的内容

        [85,100]      该生成绩优良

        [60,85]       该生成绩合格

        [0,60]        该生成绩不合格

   事件过程代码中有2处错误,请改正,不得增加和删除代码行。题中涉及的文件所在位置均指考生目录(即Z:盘)。

Private Sub c1_click()

x = Val(Text1.Text)

If x > 100 And x < 0 Then

MsgBox "输入成绩错误,程序退出!"

End

End If

If x >= 85 Then

strtemp = "该生成绩优秀"

ElseIf x >= 60 Then

strtemp = "该生成绩合格"

Else

strtemp = "该生成绩不合格"

End If

Label3.Caption = "该生成绩"

End Sub

3.程序填空题

(1)tk372.frm的功能是:打印斐波那契(Fibonacci)数列。该数列如下:

   1,1,2,3,5,8,13,21,34,55,89,......

由此可以看出该数列的规律:第一、第二个数为1,从第三个数开始,后面一个数的值为前两个数之和。  

 在(1)和(2)中填入正确的内容,去掉(1)和(2)符号,使之正确运行,不得增加或删除程序行。

Private Sub Form_click()

    Dim n

    n = Val(InputBox("请输入要打印的个数"))

    Print

    For i = 1 To n

    Print (1);

    Next i

    Print

End Sub

Public Function fibo(n) As Integer

    If n = 1 Or n = 2 Then

        fibo = 1

    Else

        fibo = (2)

    End If

End Function

(2)tk458.frm的功能是:窗体上有一个命令按钮Command1,其标题是“计算”;两个文本框,名称为Text1、Text2;4个标签,名称为:Label1、Label2、Label3、Label4,标题分别为“第一个操作数”、“第二个操作数”、“运算结果”和空白;程序运行后,在Text1、text2中输入两个数值,在出现的输入框中输入“+”、“-”、“*”、“/”中的一个符号。单击命令按钮,,相应计算的结果显示在Label4中。程序代码中有两个空(1)和(2),请删除(1)和(2),填上正确内容,不得增加和删除代码行。

题中涉及的文件所在位置均指考生目录(即Z:盘)。

Private Sub Command1_Click()

s$ = InputBox$("请输入你的选择")

Select Case (1)

Case "+"

result = Val(Text1.Text) + Val(Text2.Text)

Case "-"

result = Val(Text1.Text) - Val(Text2.Text)

Case "*"

result = Val(Text1.Text) * Val(Text2.Text)

Case "/"

result = Val(Text1.Text) / Val(Text2.Text)

End Select

Label4.Caption = (2)

End Sub

(3)tk317.frm的功能是:从文本框Text1中输入一串字符,统计各字母出现的次数(大小写不区分),并对出现的字母显示其出现的个数。该程序不完整,请补充空白(1)、(2)处,以便能得到正确答案,但不得增删原语句。

Private Sub Command1_Click()

    Dim a(1 To 26) As Integer

    Dim c As String * 1

    le = (1)

    For i = 1 To le

        c = UCase(Mid(Text1.Text, i, 1))

        If c >= "A" And c <= "Z" Then

            j = Asc(c) - 65 + 1

            a(j) = (2)

        End If

    Next i

    For j = 1 To 26

        If a(j) > 0 Then

            Picture1.Print " "; Chr(j + 64); "="; a(j);

        End If

    Next j

End Sub


(二)全国计算机等级考试二级VB上机测试样题

1.基本操作题

(1)在名称为 Form1的窗体上画一个标签,名称为 L1,标签上显示"请输入 密码",在标签的右边画一个文本框,名称为 Text1,其宽、高分别为 2000和300,设置适当的属性使得在输入密码时,文本框中显示"*"字符,此外再把窗体的标题设置为"密码窗口",以上这些设置都只能在属性窗口中进行设置,运行时的窗体如图所示。

注意:存盘时工程文件名为 sjt1.vbp,窗体文件名为sjt1.frm。



(2)在名称为Form1的窗体上建立一个如下表所示的下拉菜单,其中“设置”菜单项为灰色(不可用),如下图所示。


注意:存盘时工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。

标题

 名称

收藏

m1

工具

m2

选项

a1

设置

a2

帮助

m3

(3)在名称为Form1的窗体上画一个名称为Image1的图象框,利用属性窗口装入图像文件Pic1.jpg,并设置适当属性使其中的图像可以适应图象框大小;再画两个命令按钮,名称分别为Command1、Command2,标题分别为“向右移动”、“向下移动”。请编写适当的事件过程,使得在运行时,每单击“向右移动”按钮一次,图象框向右移动100;每单击“向下移动”按钮一次,图象框向下移动100。运行时的窗体如下图所示。要求程序中不得使用变量,事件过程中只能写一条语句。

注意:存盘时工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。

2.简单应用题

(1)在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个图片框,名称为P1、P2,分别用来表示信号灯和汽车,其中在 P1 中轮流装入"黄灯.ico"、 "红灯.ico"、"绿灯.ico"文件来实现信号灯的切换;还有两个计时器Timer1 和Timer2,Timer1用于变换信号灯,黄灯1秒,红灯2秒,绿灯3秒;Timer2用于 控制汽车向左移动。运行时,信号灯不断变换,单击"开车"按钮后。 汽车开 始移动,如果移动到信号灯前或信号灯下,遇到红灯或黄灯,则停止移动, 当 变为绿灯后再继续移动。在窗体中已经给出了全部控件和程序,但程序不完整,  要求阅读程序并去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实 现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件以原文件名存盘。



Dim a%, b As Boolean

Private Sub C1_Click()

'    Timer2.Enabled = ?

    b = True

End Sub

Private Sub Timer1_Timer()

    a = a + 1

    If a > 6 Then

        a = 1

    End If

    Select Case a

        Case 1

            P1.Picture = LoadPicture("黄灯.ico")

        Case 2, 3

            P1.Picture = LoadPicture("红灯.ico")

        Case 4, 5, 6

'            P1.Picture = LoadPicture("?")

            If b Then Timer2.Enabled = True

    End Select

End Sub

Private Sub Timer2_Timer()

    If (a < 4) And (P2.Left > P1.Left And P2.Left < P1.Left + P1.Width) Or P2.Left <= 100 Then

'        Timer2.Enabled = ?

    Else

'        P2.Move ? - 10, P2.Top, P2.Width, P2.Height

    End If

End Sub

(2)打开工程文件sjt4.vbp(相应的窗体文件名为sjt4.frm),其功能是通过调用过程FindMax求数组的最大值,请装入该文件。程序运行后,在四个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最大值,并在窗体上显示出来(如下图所示)。这个程序不完整,请把它补充完整,并能正确运行。

要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

Option Base 1

Private Function FindMax(a() As Integer)

    Dim Start As Integer

    Dim Finish As Integer, i As Integer

    'Start = ?(a)

    'Finish = ?(a)

    'Max = ?(Start)

    For i = Start To Finish

        'If a(i) ? Max Then Max = ?

    Next i

    FindMax = Max

End Function

Private Sub Command1_Click()

    Dim arr1

    Dim arr2(4) As Integer

    arr1=Array(Val(Text1.Text),Val(Text2.Text),Val(Text3.Text),_

Val(Text4.Text))

    For i = 1 To 4

        'arr2(i) = CInt(?)

    Next i

    'M = FindMax(?)

    Print "最大值是: "; M

End Sub

(3)在考生目录下有一个工程文件sjt3.vbp,窗体中有两个图片框,名称分别为P1、P2,其中的图片分别是一个航天飞机和一朵云彩,还有一个计时器,名称为Timer1,一个命令按钮,名称为C1,标题为"发射"。并给出了两个事件过程,但并不完整,要求:
   1)设置计时器的属性,使其在初始状态下不计时;
   2)设置计时器的属性,使其每隔0.1秒调用Timer事件过程一次。
   3)去掉程序中的注释符,把程序中的 ?改为正确的内容,使得在运行时单击"发射"按钮,则航天飞机每隔0.1秒向上移动一次,当到达P2的下方时停止移动,如下图所示。
注意:不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

代码如下:

Private Sub C1_Click()

'    Timer1.Enabled = ?

End Sub

Private Sub Timer1_Timer()

    Static a%

    a = a + 1

'    If P1.Top > P2.Top + P2.? Then

        P1.Move P1.Left, P1.Top - 5 - a, P1.Width, P1.Height

    Else

'        Timer1.? = False

    End If

End Sub

3.综合应用

(1)在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有一个文本框,名称为Text1;还有两个命令按钮,名称分别为C1、C2,标题分别为"计算"、 "存盘",如图所示。并有一个函数过程 isprime可以在程序中直接调用, 其功能是判断参数 a 是否为素数,如果是素数,则返回 True,否则返回 False。 请编写适当的事件过程,使得在运行时,单击"计算"按钮,则找出小于 18000的最大的素数,并显示在Text1中;单击"存盘"按钮,则把 Text1 中的计算结果存入考生文件夹下的out5.txt文件中。

本题的考查主要有两个,一个是循环,一个是文件的访问。

由于在小于18000中寻找最大素数,并且判断素数的函数已经给出,只要使用一个循环在18000以下寻找,没有找到减一再寻找,找到记录在Text1.Text中,在结构化的程序中不再提倡GoTo以及从结构体中退出(例如Exit For等),使用While判断是一个较好的选择。

程序中已有代码如下:

Private Function isprime(a As Integer) As Boolean

    Dim flag As Boolean

    flag = True

    b% = 2

    Do While b% <= Int(a / 2) And flag

        If Int(a / b%) = a / b% Then

            flag = False

        Else

            b% = b% + 1

        End If

    Loop

isprime = flag

End Function

(2)打开工程文件sjt5.vbp,已给出了所有控件(如下图所示)和部分程序。程序运行时,请按以下顺序操作:

⑴    单击“读入文件”按钮,把考试文件夹下的文件in5.dat中的内容读入内存并显示在上面的文本框(Text1)中;

⑵    单击“加密”按钮,则可对Text1中的内容进行加密并显示在下面的文本框(Text2)中。

⑶    单击“存结果”按钮则把Text2中的内容存到out5.dat文件中。

加密规则:

对于第奇数个字符,若是字母,则把它变为它后面的字符(若为‘Z’则变为‘A’),不是字母则不变;对于第偶数个字符,若是字母,则把它变为它前面的字符(若为‘A’则变为‘Z’),不是字母则不变。大小写字母都遵循此规则。

例如:若原有的字符是:AbbaZG Ha-MnnK Yzx

则加密后的字符是:BaczAF Gb-Nmoj Xaw

已经给出存结果按钮的Click事件过程和函数isletter,函数islerrer(a As String)判断变量a中是否为一个字母,是则返回True,否则返回False,可以直接调用。

请编写“读入文件”按钮和“加密”按钮的Click事件过程,以实现上述功能。(in5.dat文件中只含英文单词和空格,不分段落和行)

注意:不得修改已经存在的程序,必须用“存结果”按钮存储加密结果,否则无成绩。最后,按原文件名把程序存盘。



作者:Admin  
相关文章
  • 没有相关文章
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4