江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2018年春江蘇省計算機二級VB考試真題第1套

 

第1部分  公共基礎

第2部分  VB部分

1(單選題):

可以作為VB應用程序啟動對象的是______
①標準模塊   ②窗體模塊   Sub Main   ④事件過程

A. ①④

B. ①②

C. ③④

D. ②③

D

解析:VB,能作為啟動對象的包括窗體模塊,sub main過程。

3

表達式37.6 Mod 5的結果數據類型為______

A. 整型

B. 長整型

C. 單精度

D. 雙精度

B

解析:Mod運算符的作用是取余數,要求Mod左右兩邊都是整型或長整型,首先將雙精度類型37.6轉換為長整型38,然后再執行38 Mod 5,根據VB約定,兩個不同的類型的數值運算時返回的是占字節多的類型,因為長整型數值384個字節,整型52個字節,所以得到結果長整型3,如果直接寫 37 mod 5因為375都是整型,所以返回結果整型2

3

在多窗體程序中,僅用于將窗體Form2從內存中卸載的語句是______

A. Form2.Unload

B. Unload Form2

C. End

D. Form2.Hide

B

解析:A選項沒有這種寫法,C選項是結束整個程序運行,D選項是Form2隱藏。

2

下列關于Len函數的敘述,錯誤的是________

A. 該函數可以接收數值型常量作為其參數

B. 該函數可以接收數值型變量作為其參數

C. 該函數可以接收字符型常量作為其參數

D. 若該函數的參數為非字符型變量,則其返回該類型變量所占用的存儲空間的大小

A

解析: 該函數不可以接收數值型常量作為其參數

3

Sub過程與Function過程最根本的區別是____

A.  Sub過程使用Call語句或直接使用過程名調用,而Function過程不可以

B.  Function過程可以有參數,Sub過程不可以

C.  兩種過程參數的傳遞方式不同

D.  Sub過程的過程名不能返回值,而Function可以

D

解析: Sub過程的過程名不能返回值,而Function過程名可以返回值是兩者最根本的區別。

7

 

6 (填空題 <2>

執行下面程序,單擊Command1按鈕,則a(1)的值是____________   a(4)的值是____________  

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim a(4) As Integer, i As Integer

    For i = 1 To 4

        a(i) = F1(a, i) + a(i)

    Next i

    For i = 1 To 4

        Print a(i)

    Next i

End Sub

 

Private Function F1(a() As Integer, x As Integer) As Integer

    Dim i As Integer

    If i Mod 2 <> 0 Then

        a(x) = x

    Else

        F1 = F1 + x

    End If

End Function

 

[email protected]

解析: 因為文字描述不如視頻清晰,具體見視頻詳細講解

7

 

7 (填空題 <2>

執行下面程序,單擊Command1按鈕,則窗體上顯示的數組元素a(2)的值是____________   a(3)的值是____________  

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim a(3) As Integer, b As Integer, i As Integer

    For i = 1 To 3

        a(i) = i

    Next i

    b = UBound(a)

    Call sub1(a, b)

    For i = 1 To 3

        Print a(i);

    Next i

End Sub

 

Private Sub sub1(m() As Integer, n As Integer)

    If n > 1 Then

        m(n) = m(n) + n

        Call sub1(m, n - 1)

    End If

End Sub

 

[email protected]

解析: 因為文字描述不如視頻清晰,具體見視頻詳細講解

7

 

 

8 (填空題 <3>

執行下面程序,單擊命令按鈕Command1,窗體上顯示的第一行內容是____________   a數組元素的個數是____________   ,其中a(2)的值是____________  

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim St As String, i As Integer

    Dim a() As String, j As Integer, k As Integer

    St = "abcd"

    Call Sub1(St)

    Print St

    For i = 1 To Len(St)

        For j = i + 1 To Len(St)

            If Mid(St, i, 1) = Mid(St, j, 1) Then Exit For

        Next j

        If j <= Len(St) Then

            k = k + 1

            ReDim Preserve a(k)

            a(k) = Mid(St, i, 1)

            Print a(k)

        End If

    Next i

End Sub

Private Sub Sub1(S As String)

    Dim i As Integer

    For i = 1 To Len(S) \ 2

        Mid(S, i, 1) = Mid(S, Len(S) - i + 1, 1)

    Next i

End Sub

 

[email protected]@c

解析: 因為文字描述不如視頻清晰,具體見視頻詳細講解

7

 

 

9 (填空題 <3>

執行下面程序,單擊命令按鈕Command1,則a(1,2)的值是____________   a(2,3)的值是____________   a(3,3)的值是____________  

 

Option Explicit

Option Base 1

Private a(3, 3) As Integer

Private Sub Form_Activate()

    Dim i As Integer, j As Integer, k As Integer

    k = 1

    For i = 1 To 3

        For j = 1 To 3

            a(i, j) = k

            k = k + 1

        Next j

    Next i

End Sub

Private Sub Command1_Click()

    Dim b(4) As Integer, i As Integer, j As Integer, t As Integer

    b(1) = 2

    For i = 2 To 4

        b(i) = i - 1

    Next i

    t = a(b(1), b(4))

    a(b(1), b(4)) = a(b(2), b(1))

    a(b(2), b(1)) = a(b(3), b(2))

    a(b(3), b(2)) = a(b(4), b(3))

    a(b(4), b(3)) = t

    For i = 1 To 3

        For j = 1 To 3

            Print a(i, j);

        Next j

        Print

    Next i

End Sub

 

[email protected]@9

解析: 因為文字描述不如視頻清晰,具體見視頻詳細講解

7

 

 

1(完善程序):

【要求】

1)打開T盤中P1.vbp文件,完善程序后,直接保存所有文件。

【題目】

下面程序的功能是,隨機生成10個不含數字0且由5位不同數字組成的整數,再將所生成的五位整數轉換為由組成該數的數字構成的最小整數后輸出。

Option Explicit

Private Sub Command1_Click()

    Dim a(1 To 10) As Long, b(0 To 9) As Boolean, c(1 To 5) As Integer

    Dim i As Integer, j As Integer, k As Integer, n As Long

    For i = 1 To 10

        n = Int(Rnd * 90000) + 10000

        Erase b

b(0) = True

        For j = 1 To 5

            c(j) = Mid(n, j, 1)

            If b(c(j)) = False Then

                b(c(j)) = True

            Else

                    (1)   

            End If

        Next j

        If j = 6 Then

            Call Sort(c)

            For k = 1 To 5

                a(i) = a(i) * 10 + c(k)

            Next k

            List1.AddItem a(i)

        Else

                (2)   

        End If

    Next i

End Sub

Private Sub Sort(a() As Integer)

    Dim i As Integer, t As Integer, ub As Integer, f As Boolean

    ub = UBound(a)

    f = True

    Do While f

            (3)   

        ub = ub - 1

        For i = 1 To ub

            If a(i) > a(i + 1) Then

                f = True

                    (4)   

                a(i) = a(i + 1)

                a(i + 1) = t

            End If

        Next i

    Loop

End Sub

 

Exit [email protected][email protected][email protected]=a(i)

 

(1)Exit For

(2)i=i-1

(3)f=false

(4)t=a(i)

因為文字描述不如視頻清晰,請查看自帶的本題目的視頻詳細講解

 

 

2(改錯題):

【要求】

(1)打開T盤中P2.vbp文件按參考界面形式編輯窗體界面改正程序中的錯誤后直接保存所有文件

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

【題目】本程序的功能是:生成一個4×4的數組,并根據數組中元素的大小生成一個標記數組。在標記數組中字母L表示數組的對應位置元素為最大,字母S表示隨組的對應位置元素為最小(若存在多個相等的最大或最小元素也用字母LS標記),其他非最大最小元素均用0表示。

Option Explicit

Dim a(4, 4) As Variant, i As Integer, j As Integer

Private Sub Command1_Click()

    For i = 1 To 4

        For j = 1 To 4

            a(i, j) = Int(Rnd * 90) + 10

        Next j

    Next i

    Call printsz(Picture1)

End Sub

Private Sub Command2_Click()

    Dim Max As Integer, Min As Integer, a(4, 4) As Integer

    Max = 0

    Min = 0

    For i = 1 To 4

        For j = 1 To 4

            If a(i, j) > Max Then Max = a(i, j)

            If a(i, j) < Min Then Min = a(i, j)

        Next j

    Next i

    Call bj(Max, Min)

End Sub

Private Sub bj(m As Integer, n As Integer)

    For i = 1 To 4

        For j = 1 To 4

            If a(i, j) = m Then

                a(i, j) = L

   ElseIf a(i, j) = n Then

                a(i, j) = S

            Else

                a(i, j) = "0"

            End If

        Next j

    Next i

    Call printsz(Picture2)

End Sub

Private Sub printsz(pic As Control)

    pic.Cls

    For i = 1 To 4

        For j = 1 To 4

            pic.Print a(i, j); " ";

        Next j

        pic.Print

    Next i

End Sub

 

Dim Max As Integer, Min As Integer, a(4, 4) As Integer修改為Dim Max As Integer, Min As [email protected] Max = 0修改為Max=a(1,1) Min = 0修改為Min=a(1,1)@ a(i, j) = L修改為a(i, j) = L@ a(i, j) = S修改為a(i, j) = S

 

(1)Dim Max As Integer, Min As Integer, a(4, 4) As Integer修改為Dim Max As Integer, Min As [email protected]

(2)Max = 0修改為Max=a(1,1) Min = 0修改為Min=a(1,1)

(3)a(i, j) = L修改為a(i, j) = L

(4)a(i, j) = S修改為a(i, j) = S

 

因為文字描述不如視頻清晰,請查看自帶的本題目的視頻詳細講解

 

3(編程題):

【要求】

(1)打開T盤中P3.vbp文件,根據題目要求編寫和調試程序后,直接保存所有文件;

(2)程序代碼書寫應呈鋸齒形,否則適當扣分。

【題目】

找出任意給定的兩個自然數的相同因子(因子中不包含1和該數本身)。

【編程要求】

(1)程序參考界面如圖所示,編程時不得增加或減少界面對象或改變對象的種類,窗體及界面元素大小適中,且均可見;

(2)運行程序,單擊查找按鈕,根據文本框1和文本框2中給定的數字,分別求出它們除1和本身外的因子,并最終求出這兩個數的相同因子輸出在文本框3中,若兩個數沒有相同因子,則在文本框3中輸出沒有相同因子;單擊退出按鈕,則結束程序運行;

(3)程序中必須包含一個求因子的通用過程。

 

Option Explicit

Option Base 1

 

Private Sub Command1_Click()

  Dim a() As Integer, b() As Integer, c() As Integer

  Dim n1 As Integer, n2 As Integer

  Dim i As Integer, j As Integer, k As Integer

  n1 = Text1.Text

  n2 = Text2.Text

  Call yinzi(n1, a)

  Call yinzi(n2, b)

  For i = 1 To UBound(a)

     For j = 1 To UBound(b)

         If a(i) = b(j) Then

             k = k + 1

             ReDim Preserve c(k)

             c(k) = a(i)

         End If

     Next j

  Next i

 

  Text3.Text = n1 & "的因子:  "

 

  For i = 1 To UBound(a)

    Text3.Text = Text3.Text & a(i) & "  "

   Next i

 

  Text3.Text = Text3.Text & vbCrLf

  Text3.Text = Text3.Text & n2 & "的因子:  "

 

  For i = 1 To UBound(b)

     Text3.Text = Text3.Text & b(i) & "  "

  Next i

 

  Text3.Text = Text3.Text & vbCrLf

   If k = 0 Then

     Text3.Text = Text3.Text & "沒有相同的因子數:"

  Else

    Text3.Text = Text3.Text & "相同的因子數:"

    For i = 1 To UBound(c)

     Text3.Text = Text3.Text & c(i) & "  "

    Next i

  End If

End Sub

 

Private Sub Command2_Click()

  End

End Sub

 

Private Sub yinzi(n As Integer, c() As Integer)

   Dim i As Integer, k As Integer

   For i = 2 To n - 1

      If n Mod i = 0 Then

         k = k + 1

         ReDim Preserve c(k)

         c(k) = i

      End If

   Next i

End Sub

 

因為文字描述不如視頻清晰,請查看自帶的本題目的視頻詳細講解

 

 

彩票30选5开奖结果