2011秋江苏省计算机二级VB上机真题1 |
2011秋二级Visual Basic上机试卷 (本试卷完成时间为70分钟) 考试须知: 1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考。 2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。 3.程序代码书写应呈锯齿形。 一、改错题(14分) 【题目】 本程序的功能是:找出100~999之间的回文数,且其对应的8进制数也是回文数的整数。所谓回文数,是指正读与倒读都相同的数。 1 Option Explicit 2 Private Sub Command1_Click() 3 Dim i As Integer,m As Integer 4 For i=100 To 999 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盘根目录下的err.txt文件中将有错误的程序代码复制到代码编辑器窗口中或自行输入上述代码,改正程序中的错误。 2.改错时,不得增加或删除语句,但可适当调整语句位置。 3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。 二、编程题(26分) 【题目】 编写程序,求出巴都万数列(Padovan Sequence)的第n1项到第n2项中的素数数据项。巴都万数列的计算公式如下: P 【编程要求】 1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。 2.运行程序,在两个文本框中分别输入起始项与终止项的序号后按"查找"按钮,则在多行文本框中,按每 行10个元素输出数列项数据,并在列表框中输出其中的素数数据项及其序号;按"清除"按钮,将三个文本框 与列表框清空,焦点置于第一个文本框上;按"结束"按扭,结束程序运行。 3.程序中应定义一个判断素数的通用过程。 【要求】 将窗体文件和工程文件分别命名为F2和P2,并保存到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 |