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 |