![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2011秋江蘇省計(jì)算機(jī)二級(jí)VB上機(jī)真題1 |
2011秋二級(jí)Visual Basic上機(jī)試卷 (本試卷完成時(shí)間為70分鐘) 考試須知: 1.改錯(cuò)題的界面不作要求,主要用來調(diào)試程序,若題目中有參考界面,則僅作參考。 2.考試結(jié)束后,文件必須存放在指定位置,否則適當(dāng)扣分;考試盤中若無指定文件,則不予評(píng)分。 3.程序代碼書寫應(yīng)呈鋸齒形。 一、改錯(cuò)題(14分) 【題目】 本程序的功能是:找出100~999之間的回文數(shù),且其對(duì)應(yīng)的8進(jìn)制數(shù)也是回文數(shù)的整數(shù)。所謂回文數(shù),是指正讀與倒讀都相同的數(shù)。 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.新建工程,按參考界面形式創(chuàng)建窗體,再從T盤根目錄下的err.txt文件中將有錯(cuò)誤的程序代碼復(fù)制到代碼編輯器窗口中或自行輸入上述代碼,改正程序中的錯(cuò)誤。 2.改錯(cuò)時(shí),不得增加或刪除語句,但可適當(dāng)調(diào)整語句位置。 3.將窗體文件和工程文件分別命名為F1和P1,并保存到T盤的根目錄下。 二、編程題(26分) 【題目】 編寫程序,求出巴都萬數(shù)列(Padovan Sequence)的第n1項(xiàng)到第n2項(xiàng)中的素?cái)?shù)數(shù)據(jù)項(xiàng)。巴都萬數(shù)列的計(jì)算公式如下: P 【編程要求】 1.程序參考界面如圖所示,編程時(shí)不得增加或減少界面對(duì)象或改變對(duì)象的種類,窗體及界面元素大小適中,且均可見。 2.運(yùn)行程序,在兩個(gè)文本框中分別輸入起始項(xiàng)與終止項(xiàng)的序號(hào)后按"查找"按鈕,則在多行文本框中,按每 行10個(gè)元素輸出數(shù)列項(xiàng)數(shù)據(jù),并在列表框中輸出其中的素?cái)?shù)數(shù)據(jù)項(xiàng)及其序號(hào);按"清除"按鈕,將三個(gè)文本框 與列表框清空,焦點(diǎn)置于第一個(gè)文本框上;按"結(jié)束"按扭,結(jié)束程序運(yùn)行。 3.程序中應(yīng)定義一個(gè)判斷素?cái)?shù)的通用過程。 【要求】 將窗體文件和工程文件分別命名為F2和P2,并保存到T盤的根目錄下。 參考答案 一、改錯(cuò)題 第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 |