<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2011春江蘇省二級VB上機1真題

                      江蘇省二級Visual Basic上機試卷1

                      (本試卷完成時間為70分鐘)

                      考試說明:

                      1.改錯題的界面不作要求,主要用來調試程序,若題目中有參考界面,則僅作參考。

                      2.考試結束后,文件必須存放在指定位置,否則適當扣分;考試盤中若無指定文件,則不予評分。

                      3.程序代碼書寫應呈鋸齒形。

                    一、改錯題(14)

                    【題目】

                    本程序的功能是:找出100999之間的十進制數為升序數,且其對應的八進制數也是升序數的整數。所謂升序數,是指該數的十位數字值大于個位數字值,百位數字值大于十位數字值。

                   

                   

                    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.新建工程,輸入上述代碼,改正程序中的錯誤。

                      2.改錯時,不得增加或刪除語句,但可適當調整語句的位置。

                      3.將窗體文件和工程文件分別命名為F1P1,并保存到T盤根目錄下。

                  二、編程題(26)

                      【題目】

                      編寫程序,對實驗數據進行分組均化處理。處理的方法是:先將實驗數據從小到大排序,然后按排序后的順序每3個數作為一組,再用每組3個數的平均值作為這3個數的表現值。

                    【編程要求】

                    1.程序參考界面如圖所示,編程時不得增加或減少界面對象或改變對象的種類,窗體及

                  界面元素大小適中,且均可見。

                    2.運行程序,單擊"處理"按鈕,出現如圖所示的InputBox函數窗口,輸入數據個數(或使用缺省值)后單擊"確定"按鈕,則生成10-40之間的隨機整數數組并顯示在實驗數據文本框中,然后對實驗數據進行排序并顯示在排序結果文本框中,再進行分組均化并在文本框中輸出數據均化結果;單擊“清除"按鈕,3個文本框清空,焦點置于"處理"按鈕上;單擊"結束"按鈕,結束程序運行。

                    3.程序中應定義一個名為sort的通用過程,用于對一維數組按從小到大排序。

                   

                   

                    【要求】

                    將窗體文件和工程文件分別命名為F2P2,并保存到T盤根目錄下。

                   

                      參考答案

                  一、改錯題

                      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("輸入數據個數:", ,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

                   

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看