![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2011春江蘇省二級VB上機(jī)1真題 |
||
江蘇省二級Visual Basic上機(jī)試卷1 (本試卷完成時(shí)間為70分鐘) 考試說明: 1.改錯(cuò)題的界面不作要求,主要用來調(diào)試程序,若題目中有參考界面,則僅作參考。 2.考試結(jié)束后,文件必須存放在指定位置,否則適當(dāng)扣分;考試盤中若無指定文件,則不予評分。 3.程序代碼書寫應(yīng)呈鋸齒形。 一、改錯(cuò)題(14分) 【題目】 本程序的功能是:找出100~999之間的十進(jìn)制數(shù)為升序數(shù),且其對應(yīng)的八進(jìn)制數(shù)也是升序數(shù)的整數(shù)。所謂升序數(shù),是指該數(shù)的十位數(shù)字值大于個(gè)位數(shù)字值,百位數(shù)字值大于十位數(shù)字值。 Option Explicit Private Sub CmdFind_Click() Dim n As Integer,s8 As String For n=100 To 999 s8=d2Q(n)
If sx(n) And sx(Val(s8)) Then List1.AddItem n & "D==>" & s8 & "Q" End If Next n End Sub Private Function d2Q(n As Integer) As String Dim p As Integer Do p=n Mod 8 d2Q=d2Q & CStr(P) n=n\8 Loop Until n=0 End Function Private Function sx(ByVal n As Integer)As Boolean Dim num() As Integer,k As Integer,t As Integer Dim i As Integer t=Len(CStr(n)) ReDim num(t) For k=1 To t num(k)=Val(Mid(CStr(n),k,1)) next k For i=1 To UBound(num)-1 If num(i)>=num(i+1) Then Exit For Next i sx=True End Function 【要求】 1.新建工程,輸入上述代碼,改正程序中的錯(cuò)誤。 2.改錯(cuò)時(shí),不得增加或刪除語句,但可適當(dāng)調(diào)整語句的位置。 3.將窗體文件和工程文件分別命名為F1和P1,并保存到T盤根目錄下。 二、編程題(26分) 【題目】 編寫程序,對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分組均化處理。處理的方法是:先將實(shí)驗(yàn)數(shù)據(jù)從小到大排序,然后按排序后的順序每3個(gè)數(shù)作為一組,再用每組3個(gè)數(shù)的平均值作為這3個(gè)數(shù)的表現(xiàn)值。 【編程要求】 1.程序參考界面如圖所示,編程時(shí)不得增加或減少界面對象或改變對象的種類,窗體及 界面元素大小適中,且均可見。 2.運(yùn)行程序,單擊"處理"按鈕,出現(xiàn)如圖所示的InputBox函數(shù)窗口,輸入數(shù)據(jù)個(gè)數(shù)(或使用缺省值)后單擊"確定"按鈕,則生成10-40之間的隨機(jī)整數(shù)數(shù)組并顯示在實(shí)驗(yàn)數(shù)據(jù)文本框中,然后對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行排序并顯示在排序結(jié)果文本框中,再進(jìn)行分組均化并在文本框中輸出數(shù)據(jù)均化結(jié)果;單擊“清除"按鈕,將3個(gè)文本框清空,焦點(diǎn)置于"處理"按鈕上;單擊"結(jié)束"按鈕,結(jié)束程序運(yùn)行。 3.程序中應(yīng)定義一個(gè)名為sort的通用過程,用于對一維數(shù)組按從小到大排序。
【要求】 將窗體文件和工程文件分別命名為F2和P2,并保存到T盤根目錄下。 參考答案 一、改錯(cuò)題 Private Function d2Q(n As Integer) As String 改為ByVal n As Integer d2Q=a2Q & cstr(p) 改為cstr(p) & d2Q If num(i)>=num(i+1) Then Exit For 改為Exit Function 二、編程題 Option Explicit Option Base 1 Private Sub CmdRun_Click() Dim a() As Integer,n As Integer,i As Integer Dim sum As Integer,av As Integer,k As Integer n=InputBox("輸入數(shù)據(jù)個(gè)數(shù):", ,12) ReDim a(n) For i=1 To n a(i)=Int(Rnd*41)+10 Text1=Text1 & Str(a(i)) Next i Call sort(a) For i=1 To UBound(a) Step 3 sum=0 For k=i To i+2 sum=sum+a(k) Next k av=sum/3 For k=1 To 3 Text3=Text3 & Str(av) Next k Next i End Sub Private Sub sort(a()As Integer) Dim i As Integer,j As Integer,t As Integer For i=1 To UBound(a)-1 Forj=1 To UBound(a)-i If a(j)>a(j+1)Then t=a(j) a(j)=a(j+1) a(j+1)=t End If Next j Next i For i=1 To UBound(a) Text2=Text2 & Str(a(i)) Next i End SUb Private Sub CmdClear_click() Text1="" Text2="" Text3="" CmdRun.SetFocus End Sub Private Sub CmdExit_click() End End Sub
|
||