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

2011秋二级Visual Basic上机试卷

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

  考试须知:

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

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

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

一、改错题(14)

  【题目】

  本程序的功能是:找出100999之间的回文数,且其对应的8进制数也是回文数的整数。所谓回文数,是指正读与倒读都相同的数。

1    Option Explicit

2    Private Sub Command1_Click()

3      Dim i As Integer,m As Integer

4      For i=100 To 999

5        m=d2Q(i)

6        If m And Reverse(i)Then

7          List1.AddItem CStr(i)

8          List2.AddItem CStr(m)

9        End If

10     Next i

11   End Sub

12   Private Function d2Q(n As Integer)As String

13     Dim P As Integer

14     Do

15       P=n Mod 8

16       d2Q=CStr(p) & d2Q

17       n=n\8

18     Loop Until n=0

19   End Function

20   Private Function Reverse(n As Integer)As Boolean

21     Dim i As Integer,s As String

22     s=CStr(n)

23     For i=1 To Len(s)/2

24       If Mid(S,i,1)<>Mid(S,Len(s)-i+1,1) Then Exit For

25     Next i

26     Reverse=True

27   End Function

  【要求】

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

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

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

二、编程题(26)

  【题目】

  编写程序,求出巴都万数列(Padovan Sequence)的第n1项到第n2项中的素数数据项。巴都万数列的计算公式如下:

P =       

【编程要求】

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

  2.运行程序,在两个文本框中分别输入起始项与终止项的序号后按"查找"按钮,则在多行文本框中,按每

10个元素输出数列项数据,并在列表框中输出其中的素数数据项及其序号;"清除"按钮,将三个文本框

与列表框清空,焦点置于第一个文本框上;"结束"按扭,结束程序运行。

  3.程序中应定义一个判断素数的通用过程。

 

【要求】

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

 

参考答案  

一、改错题

    6  If m And Reverse(i) Then    改为Reverse(m)

    12 Private Function d2Q(n As Integer)As String    改为ByVal n

    24  Exit For    改为Function

二、编程题

Option Explicit

Private Sub CmdFind_Click()

  Dim n1 As Integer, n2 As Integer, i As Integer

  Dim k As Integer, js As Integer, st As String

  n1 = Text1: n2 = Text2

  For i = n1 To n2

    k = Padovan(i)

    st = st & Str(k)

    js = js + 1

    If js Mod 10 = 0 Then

      st = st & vbCrLf

    End If

    If prime(k) Then

      List1.AddItem k & "--(" & i & ")"

    End If

  Next i

  Text3 = st

End Sub

Private Function Padovan(n As Integer) As Integer

  If n = 0 Or n = 1 Or n = 2 Then

    Padovan = 1

  Else

    Padovan = Padovan(n - 2) + Padovan(n - 3)

  End If

End Function

Private Function prime(n As Integer) As Boolean

  Dim i As Integer

  If n = 1 Then Exit Function

  For i = 2 To Sqr(n)

    If n Mod i = 0 Then Exit Function

  Next i

  prime = True

End Function

Private Sub CmdClear_click()

  Text1 = "": Text2 = "": Text3 = ""

  List1.Clear

  Text1.SetFocus

End Sub

Private Sub CmdExit_click()

  End

End Sub