江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2013秋江苏省二级VB上机真题第1套

江苏高等学校非计算机专业学生

计算机基础知识和应用能力等级考试上机试卷(2013秋)

二级 Visual Basic语言(试卷代号VB01

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

【考试须知】

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

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

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

 

一、改错题(14分)

【题目】

本程序的功能是生成由nn通过InputBox函数输入)个3位升序数构成的随机数组,所谓升序数是指从高位到低位数字值依次增加的整数

(本程序界面由1TextBox1CommandButton组成,所有对象均采用缺省名)

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

  Dim n as long, a() As Integer, k as Integer, p as Integer

  n=InputBox(“输入数据个数;,”升序数数组”,10)

  Redim a(n)

  Do

     p= Int(Rnd*900)+101

     If judge(p) Then

       k=k+1

       a(k)=p

       Text1.text=Text1.text & Str(a(k))

       If K Mod 5=0 Then Text1.text = Text1.text & vbcrlf

     End If

  Loop Until k>n

End Sub

 

public Function judge(n as integer) As Boolean

  Dim i as integer, a(3) as integer

  For i=3 To 1 Step -1

      a(i)= n Mod 10

      n=n\10

  Next i

  For i=1 to 2

    If a(i)>=a(i+1) Then Exit For

  Next i

  judge=True

End Function

1.新建工程,按参考界面形式创建窗体,再从T盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。

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

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

二、编程题(26)

【题目】

   编写程序,找出给定范围内所有不是素数的亏数。所谓亏数是指除本身外其所有因子之和小于自身的正整数。例如,106的因子为1253,和为56,106是亏数。(注意:凡因子和为1的即为素数)

【编程要求】

    1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。

2.运行程序,”a:”文本框中输入数据范围的起始值,”b:”文本框中输入数据范围的终止值后,单击查找按钮,若数据范围内存在亏数”,则将它们按附图参考界面所示的格式输出到列表框中,否则在列表框中输出指定范围内无亏数的信息,单击清除按钮,将文本框与列表框清空,焦点置于”a:”文本框上

 3.程序中至少应定义一个通用过程,用于求一个整数的因子和或判断其是否为亏数

【要求】将窗体文件和工程文件分别命名为F2P2,并保存到T盘的根目录下

一、改错题

15  Loop  Until  k>n       改为   k=n

17  Private Function judge(n as integer) As Boolean   改为 Byval   n

24  If  a(i)>=a(i+1)  Then  Exit  Function        改为Exit  Function

 

二、编程题

Option Explicit

Option Base 1

 

Private Sub CmdClear_Click()

  Text1.Text = "": Text2.Text = ""

  List1.Clear

  Text1.SetFocus

End Sub

 

Private Sub CmdFind_Click()

  Dim a As Integer, b As Integer, i As Integer

  Dim st As String, flg As Boolean, sum As Integer

  a = Val(Text1.Text)

  b = Val(Text2.Text)

  For i = a To b

    flg = False: st = "": sum = 0

    Call judge(i, flg, st, sum)

    If flg Then

       List1.AddItem i & ":" & st & "=" & sum

    End If

  Next i

  If List1.ListCount = 9 Then List1.AddItem "指定范围内无亏数"

End Sub

 

Private Sub judge(n As Integer, fg As Boolean, st As String, sum As Integer)

  Dim i As Integer

  For i = 1 To n - 1

    If n Mod i = 0 Then

       sum = sum + i

       st = st & i & "+"

    End If

  Next i

  If sum < n And sum <> 1 Then

    fg = True

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

  End If

End Sub