江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
vb上机09秋季试题1

        二级Visual Basic上机试卷

    (本试卷完成时间为70分钟)

    考试说明:

    1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;

    2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,j

予评分;

    3.程序代码书写应呈锯齿形。

    一、改错题(14)

 

    【题目】

    本程序的功能是,24位真彩色图像的一个像素的颜色值,转换成用十进制表示的

绿、蓝三基色的亮度值。

   

 Option Explicit

 Option Base 1

 Private Sub Command1_Click()

   Dim st As String,C(3) as String*8

   Dim k As Integer,color(3) As String

   color(1)="红色"

   color(2)="绿色"

   color(3)="蓝色"

   st=text1

   Do

     k=k+1

     c(k)=Left(st,8)

     st=Right(st,Len(st)-8)

   Loop Until k>3

   For k=1 To 3

     Text2=Text2 & color(k) &":" & b2d(C) & vbCrLf

   Next k

 End Sub

Private Function b2d(s As String) As Integer

    Dim k As Integer

    Do

      b2d=b2d+Val(Right(s,1))*2^k

      s=Left(s,Len(s)-1)

      k=K+1

    Loop Until k=Len(s)

End Function

【要求】

  1.新建工程,输入上述代码,改正程序中的错误;

  2.改错时,不得增加或删除语句,但可适当调整语句位置;

  3.将窗体文件和工程文件分别命名为F1P1,并保存到T:盘的根目录下。

  二、编程题(26)   

  【题目】

  编写程序,随机生成mn列由1位非零整数组成的数组;并分别求出数组中所有周边

元素之和与非周边元素(内部)之和。(mnInputBox函数输入,缺省值分别为45)

  【编程要求】

  1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及

界面元素大小适中,且均可见;

  2.运行程序,"运行"按钮,出现如图的InputBox函数窗口,分别输入数组行、列数(

使用缺省值)后按"确定",则生成随机数组并显示在图片框中,并在文本框12中分别输出

数组周边元素之和与非周边元素(内部)之和;按"清除"按钮,将所有文本框和图片框清空;按

"结束"按钮,结束程序运行;  

  3.程序中应定义一个通用过程,用于求二维数组的周边元素之和与非周边元素之和。

  【要求】

  将窗体文件和工程文件分别命名为砣和P2,并保存到T:盘的根目录下

 

    参考答案   

  一、改错题

  (1)Loop Until k>3     改为Loop Until k=3

  (2)Text2=Text2 & color(k) & ":" & b2b(c) & vbCrLf

    改为Text2=Text2 & color(k) & ":" & b2b(c(k)) & vbCrLf

  (3)Loop Until k=len(s) 

    改为Loop Until s=""或改为Loop Until Len(s)=0

:编程题

    Option Explicit

    Option Base 1

    Dim a() As Integer, n As Integer, m As Integer

    Private Sub Command1_Click()

      Dim i As Integer, j As Integer

      Dim ext As Integer, ins As Integer

      n = InputBox("数组行数m:", "数组处理", 4)

      m = InputBox("数组列数n:", "数组处理", 5)

      ReDim a(n, m)

      For i = 1 To n

        For j = 1 To m

          a(i, j) = Int(Rnd * 9) + 1

          Picture1.Print a(i, j);

        Next j

        Picture1.Print

      Next i

      Call comput(ext, ins)

      Text1 = ext

      Text2 = ins

    End Sub

    Private Sub comput(ext As Integer, ins As Integer)

      Dim i As Integer, j As Integer

      For i = 1 To n

        For j = 1 To m

          If i = 1 Or j = 1 Or i = n Or j = m Then

            ext = ext + a(i, j)

          Else

            ins = ins + a(i, j)

          End If

        Next j

      Next i

    End Sub

    Private Sub Command2_Click()

       Picture1.Cls

       Text1 = "": Text2 = ""

    End Sub

    Private Sub Command3_Click()

      End

    End Sub