![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2013秋江蘇省二級(jí)VB上機(jī)真題第1套 |
江蘇高等學(xué)校非計(jì)算機(jī)專業(yè)學(xué)生 計(jì)算機(jī)基礎(chǔ)知識(shí)和應(yīng)用能力等級(jí)考試上機(jī)試卷(2013秋) 二級(jí) Visual Basic語言(試卷代號(hào)VB01) (本試卷完成時(shí)間 70分鐘) 【考試須知】 1. 改錯(cuò)題的界面不作要求,主要用來調(diào)試程序,若題目中有參考界面,則僅作參考; 2. 考試結(jié)束后,文件必須存放在指定位置,否則適當(dāng)扣分;考試盤中若無指定文件,則不予評(píng)分; 3. 程序代碼書寫應(yīng)呈鋸齒形。 一、改錯(cuò)題(14分) 【題目】 本程序的功能是生成由n(n通過InputBox函數(shù)輸入)個(gè)3位升序數(shù)構(gòu)成的隨機(jī)數(shù)組,所謂升序數(shù)是指從高位到低位數(shù)字值依次增加的整數(shù) (本程序界面由1個(gè)TextBox和1個(gè)CommandButton組成,所有對(duì)象均采用缺省名) Option Explicit Option Base 1 Private Sub Command1_Click() Dim n as long, a() As Integer, k as Integer, p as Integer n=InputBox(“輸入數(shù)據(jù)個(gè)數(shù);”,”升序數(shù)數(shù)組”,10) Redim a(n) Do p= Int(Rnd*900)+101 If judge(p) Then k=k+1 a(k)=p Text1.text=Text1.text & Str(a(k)) If K Mod 5=0 Then Text1.text = Text1.text & vbcrlf End If Loop Until k>n End Sub public Function judge(n as integer) As Boolean Dim i as integer, a(3) as integer For i=3 To 1 Step -1 a(i)= n Mod 10 n=n\10 Next i For i=1 to 2 If a(i)>=a(i+1) Then Exit For Next i judge=True End Function 1.新建工程,按參考界面形式創(chuàng)建窗體,再從T盤根目錄下的err.txt文件中將有錯(cuò)誤的程序代碼復(fù)制到代碼編輯器窗口中或自行輸入上述代碼,改正程序中的錯(cuò)誤。 2.改錯(cuò)時(shí),不得增加或刪除語句,但可適當(dāng)調(diào)整語句的位置。 3.將窗體文件和工程文件分別命名為F1和P1,并保存到T盤的根目錄下。 二、編程題(26分) 【題目】 編寫程序,找出給定范圍內(nèi)所有不是素?cái)?shù)的虧數(shù)。所謂虧數(shù)是指除本身外其所有因子之和小于自身的正整數(shù)。例如,106的因子為1、2、53,和為56,故106是虧數(shù)。(注意:凡因子和為1的即為素?cái)?shù)) 【編程要求】 1.程序參考界面如圖所示,編程時(shí)不得增加或減少界面對(duì)象或改變對(duì)象的種類,窗體及界面元素大小適中,且均可見。 2.運(yùn)行程序,在”a:”文本框中輸入數(shù)據(jù)范圍的起始值,在”b:”文本框中輸入數(shù)據(jù)范圍的終止值后,單擊”查找”按鈕,若數(shù)據(jù)范圍內(nèi)存在”虧數(shù)”,則將它們按附圖參考界面所示的格式輸出到列表框中,否則在列表框中輸出”指定范圍內(nèi)無虧數(shù)”的信息,單擊”清除”按鈕,將文本框與列表框清空,焦點(diǎn)置于”a:”文本框上 3.程序中至少應(yīng)定義一個(gè)通用過程,用于求一個(gè)整數(shù)的因子和或判斷其是否為”虧數(shù)” 【要求】將窗體文件和工程文件分別命名為F2和P2,并保存到T盤的根目錄下 一、改錯(cuò)題 第15行 Loop Until k>n 改為 k=n 第17行 Private Function judge(n as integer) As Boolean 改為 Byval n 第24行 If a(i)>=a(i+1) Then Exit Function 改為Exit Function 二、編程題 Option Explicit Option Base 1 Private Sub CmdClear_Click() Text1.Text = "": Text2.Text = "" List1.Clear Text1.SetFocus End Sub Private Sub CmdFind_Click() Dim a As Integer, b As Integer, i As Integer Dim st As String, flg As Boolean, sum As Integer a = Val(Text1.Text) b = Val(Text2.Text) For i = a To b flg = False: st = "": sum = 0 Call judge(i, flg, st, sum) If flg Then List1.AddItem i & ":" & st & "=" & sum End If Next i If List1.ListCount = 9 Then List1.AddItem "指定范圍內(nèi)無虧數(shù)" End Sub Private Sub judge(n As Integer, fg As Boolean, st As String, sum As Integer) Dim i As Integer For i = 1 To n - 1 If n Mod i = 0 Then sum = sum + i st = st & i & "+" End If Next i If sum < n And sum <> 1 Then fg = True st = Left(st, Len(st) - 1) End If End Sub |