2012年春江蘇省計算機二級VB上機考試真題1 |
2012年春江蘇省高校計算機等級考試 二級Visual Basic上機試卷1 (本試卷完成時間為70分鐘) 考試說明: 1.改錯題的界面不作要求,主要用來調試程序,若題目中有參考界面,則僅作參考。 2.考試結束后,文件必須存放在指定位置,否則適當扣分;考試盤中若無指定文件,則不 予評分。 3.程序代碼書寫應呈鋸齒形。 一、改錯題(14分) 【題目】 本程序的功能是在六位正整數中查找超級自戀數。如果將一個六位正整數從高位到低 位,每兩位分為一組,共分為三組,三組數據的立方的和正好等于其本身,則稱該六位正整數為 超級自戀數。 1 Option Explicit 2 Private Sub CmdFind_Click() 3 Dim k As Long,num()As Integer,fg As Boolean 4 Dim i As Integer,st As String 5 st="" 6 For k=100000 To 999999 7 fg=False j Call judge(k,num,fg) 9 If fg Then 10 For i=UBound(num) To 1 Step -1 11 st=st & num(i) & "^3+" 12 Next i 13 List1.Additem Left(st,Len(st)-1) & "=" & k 14 End If 15 Next k 16 End Sub 17 Private Sub judge(n As Long,a()As Integer,fg As Boolean) 18 Dim k As Integer,nt As Long,sum As Long 19 nt=n 20 Do 21 k=k+1 22 ReDim a(k) 24 n=n\100 25 Loop Until n=0 26 For k=1 To UBound(a) 27 sum=sum+a(k)^3 28 Next k 29 If sum=nt Then fg=True 30 End Sub
【要求】 1.新建工程,按參考界面形式創建窗體,再從T盤根目錄下的err.txt文件中將有錯誤的程序代碼復制到代碼編輯器窗口中或自行輸入上述代碼,改正程序中的錯誤。 2.改錯時,不得增加或刪除語句,但可適當調整語句的位置。 3.將窗體文件和工程文件分別命名為F1和P1,并保存到T盤的根目錄下。 二、編程題(26分) 【題目】 編寫程序,找出給定范圍內所有滿足以下條件的整數:該整數的平方數的各位數字之和為素數。 【編程要求】 1.程序參考界面如圖所示,編程時不得增加或減少界面對象或改變對象的種類,窗體及界面元素大小適中,且均可見。 2.運行程序,在文本框"A:"中輸入查找整數范圍的起始值,在文本框"B:"中輸入終止值后按"查找"按鈕,則將符合要求的整數按參考界面的格式輸出到列表框中;按"清除"按鈕,將兩個文本框與列表框清空,焦點置于文本框"A:"上。 3.程序中至少應定義一個通用過程,用于求一個整數各位數字之和或判斷一個整數是否是素數(注意:1不是素數)。 【要求】 將窗體文件和工程文件分別命名為F2和P2,并保存到T盤的根目錄下。 參考答案 一、改錯題 第5行 st="" 改為挪動至 For循環內 ,如fg=False之后 第17行Private Sub judge(n As Long,a()As Integer,fg As Boolean) 改為ByVal n 第22行 ReDim a(k) 改為Redim Preserve a(k) 二、編程題 Option Explicit Private Sub CmdFind_Click() Dim a As Integer,b As Integer,ss As Long Dim n As Integer,st As String,k As Integer a=Text1: b=Text2 For n=a To b ss=n*n st="" k=nsum(ss,st) If prime(k) Then List1.AddItem n & "^2=" & ss & ":" & st & "=" & k End If Next n End Sub Private Function nsum(n As Long,st As String) As Integer Dim p As String,q As String,i As Integer p=CStr(n) For i=1 To Len(P) q=Mid(p,i,1) nsum=nsum+Val(q) st=st & q & "+" Next i st=Left(st,Len(st)-1) 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="" List1.Clear Text1.SetFocus End Sub |