導讀:
看文倉網友為您分享以下“2008年秋VB”的資訊,希望對您有所幫助,感謝您對92to.com的支持!
Else
j = j + 1
End If
Loop Until x = 1 'err x = 0
End Sub
二、編程題
【題目】編寫程序,求一個隨機生成的4行5列由兩位整數組成的數組的標記數組。標記數組中每個元素的值表示原數組對應元素的大小特性。若某元素大于原數組所有元素的平均值,則標記為“G”;小于原數組所有元素的平均值,則標記為“L”;等于原數組所有元素的平均值,則標記為“E”。
Option Explicit
Dim a(4, 5) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
For i = 1 To 4
For j = 1 To 5
a(i, j) = Int(Rnd * 90) + 10
Picture1.Print a(i, j);
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Dim sign(4, 5) As String * 1, i As Integer, j As Integer
Dim av As Single
av = avr(a)
For i = 1 To 4
For j = 1 To 5
If a(i, j) > av Then
sign(i, j) = "G"
ElseIf a(i, j) < av Then
sign(i, j) = "L"
Else
sign(i, j) = "E"
End If
Picture2.Print sign(i, j); " ";
Next j
Picture2.Print
Next i
End Sub
Private Function avr(a() As Integer) As Single
Dim sum As Integer, i As Integer, j As Integer
For i = 1 To 4
sum = sum + a(i, j)
Next j
Next i
avr = sum / (4 * 5)
End Function
Private Sub Command3_Click()
Picture1.Cls: Picture2.Cls
End Sub
VB06答案
一、改錯
【題目】本程序的功能是在自然數序列中依次找出指定個數連續的合數。例如,輸入n=5,則可得到24、25、26、27、28。所謂合數是指除了可被1和自身以外整除之外,還可被其他數整除的數(函數np的功能是判斷一個數是否是合數)。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim k As Integer, n As Integer, i As Integer
Dim hs() As Integer
n = Text1
k = 2
Do Until i = n
If np(k) Then
i = i + 1
ReDim Preserve hs(i) 'err 無
Preserve
hs(i) = k
ElseIf i <> n Then
i = 0 '在Erase hs之后也對
Erase hs
End If
' Erase hs 'err 位置錯
k = k + 1
Loop
For i = 1 To n
Text2 = Text2 & Str(hs(i))
Next i
End Sub
Private Function np(n As Integer) As Boolean
Dim i As Integer
For i = 2 To n - 1
If n Mod i = 0 Then Exit For 'err Exit Function
Next i
If i <= n - 1 Then np = True
End Function
二、編程題
【題目】編寫程序,查找指定范圍[m, n]中所有的凸點數。所謂凸點數是一個不含0數字的5位整數,若表示為abcde,則有則有a < b 、b< c、c > d、d > e。例如12431就是一個凸點數。
Option Explicit
Private Sub Command1_Click()
Dim M As Long, N As Long, I As Long, Js As Integer
M = Text1
N = Text2
For I = M To N
If Validate(I) Then
List1.AddItem I
Js = Js + 1
End If
Next I
If Js = 0 Then List1.AddItem "無凸點數"
End Sub
Private Function Validate(N As Long) As Boolean
Dim S As String, A(5) As Integer, I As Integer
Dim K As Boolean
S = N
For I = 1 To Len(S)
A(I) = Val(Mid(S, I, 1))
If A(I) = 0 Then Exit Function
Next I
K = A(1) < A(2) And A(2) < A(3) And A(3) > A(4) And A(4) > A(5)
If K Then Validate = True
End Function
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
List1.Clear
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
Visual Basic 程序設計(2008秋)
一、 選擇題(用答題卡答題,答案依次填在21~30答題號內)
21.窗體上有若干命令按鈕和一個文本框,程序運行時焦點置于文本框中,為了在按下回車鍵時執行某個命令按鈕的Click事件過程,需要將該按鈕的 21 屬性設置為True。
A.Enabled B.Default
C.Cancel D.Visible
22.執行以下語句時,會出現錯誤提示的是
A.Print “2b3” + 12.5 B.Print “12.5” + 12
C.Print “12.5” & 12.5 D.Print “2e3”+ 12
23.數學表達式ex?sin330?
x?y對應的VB表達式是 23 。
A.Abs(e ^ x + Sin(30) ^ 3) / Sqr(x + y))
B.Abs(Exp(x) + Sin(30) ^ 3) / (Sqr(x + y))
C.Abs(e ^ x + Sin(30 * 3.14159 / 180) ^ 3) / (Sqr(x + y))
D.Abs((Exp(x) + Sin(30 * 3.14159 / 180) ^ 3) / Sqr(x + y))
24.下面的表達式中,有個能夠對Single類型變量x的第3位小數,正確地進行四舍五入計算。
Format(x, "#.00") Int(100 * (x + 0.005)) / 100
CInt(100 * (x + 0.005)) / 100 Fix(100 * (x + 0.005)) / 100
A.1個 B.2個 C.3個 D.4個
25.下面有關數組處理的敘述中,正確的是
A.在過程中使用ReDim語句可以改變動態數組數據的類型
B.在過程中,可以使用Dim、Private和Static語句來定義數組
C.用ReDim語句重新定義動態數組時,可以改變數組的大小,但不能改變數組的維數
D.不可以用Public語句在窗體模塊的通用處說明一個全局數組。
26.下列關于菜單的說法中,錯誤的是。
A.每一個菜單項就是一個對象,并且可設置自己的屬性和事件
B.菜單項不可以響應DblClick事件
C.VB6.0允許創建超過四級的子菜單
D.程序執行時,如果要求菜單項是灰色,不能被用戶選擇,則應設置菜單項的Enabled屬性為False
27. 以下關于Function過程的說法中,錯誤的是。
A. Function過程名可以有一個或多個返回值
B. 在Function過程內部不得再定義Function過程
C. Function過程中可以包含多個Exit Function語句
D. 可以像調用Sub過程一樣調用Function過程
28.以下Case語句中,錯誤的是。
A. Case 0 To 10 B. Case Is > 10
C. Case Is > 10 And Is < 50 D. Case 3, 5, Is > 10
29.下面的表達式中,運算結果為True的是
A."abcrd" <= "ABCRD" B.Int(134.69) <= CInt(134.69)
C.3 > 2 > 1 D.Mid("Visual", 1, 4) = Right("lausiV", 4)
30.設計界面時,要使一個文本框具有水平和垂直滾動條,應先將其 True,再將ScrollBar屬性設置為3。
A.MultiLine B.AutoSize C.Alignment D.RightToLeft
二、 填空題(請將答案填寫在答題紙的相應答題號內,每個答案只占一行)
1. 執行下面程序,單擊Command1,則數組元素a(1,2)的數值是,a(3,3)的數值是
。
Option Explicit
Private Sub Command1_Click()
Dim a(4, 4) As Integer, i As Integer, j As Integer
Dim k As Integer, num As Integer
num = 0
For k = 1 To 4
For i = 1 To k - 1
num = num + 1
a(i, k) = num
Next i
For j = k To 1 Step -1
num = num + 1
a(k, j) = num
Next j
Next k
For i = 1 To 4
For j = 1 To 4
Picture1.Print Right(" " & a(i, j), 3);
Next j
Picture1.Print
Next i
End Sub
2.執行下面程序,單擊Command1,窗體上顯示的第一行是,第二行是
(5) ,第四行是 (6) 。
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer, i As Integer
a = 2: b = 5
For i = a To a * b Step a
Call sub1(i, a, b)
Print a, b
Next i
Print a, b, i
End Sub
Private Sub sub1(i As Integer, a As Integer, b As Integer)
i = i + 1
a = a + 1
b = b + 1
End Sub
3. 運行下面的程序,單擊Command1,在窗體上顯示的變量a的值為,變量b的值為
c的值為。
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = 5: b = 10: c = 15
Print fun(a, b, c) + fun(a, b, c)
Print a, b, c
End Sub
Private Function fun(x As Integer, y As Integer, z As Integer) As Integer
z = x
x = x + y
y = y + z
fun = x + y
End Function
4.執行下面的程序,單擊Command1,窗體上顯示的第一行是
(11) ,第四行是 (12) 。
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 1 : b = 1
Call sub1(a, b)
Print a, b
End Sub
Private Sub sub1(a As Integer, b As Integer)
a = a + b: b = b + a
Print a, b
If a > 10 Then
a = a + b
b = b + a
Else
Call sub1(a, b)
End If
End Sub
5.運行下列程序,單擊Command1,在窗體上顯示的第一行內容是行的內容是
Option Explicit
Private Sub Command1_Click()
Dim s As String
s = "Basic"
Call trans(s)
End Sub
Private Sub trans(s As String)
Dim j As Integer, t As String
Dim k As Integer
k = 3
Do
j = InStr(s, "a")
t = LCase(Right(s, j))
s = Right(t, Len(s) - k) & Left(s, Len(t))
k = k - 1
Print s
Loop Until k = 0
End Sub
6.下面程序的功能是計算s?1?111??...?22333nn...nn?9的值。請完善如下程序:
Option Explicit
Private Sub Command1_Click()
Dim n As Integer, st As String, i As Integer
Dim k As Single, s As Single, j As Integer
n = Text1
s = 1
For i = 2 To n
For j = 1 To i
st = st & CStr(i)
Next j
k =
s = s + k
Next i
Text2 = s
End Sub
7.下面程序的功能是:將輸入的2位16進制數的每一位轉換為一個四位的2進制數,再組合成為一個8位的2進制數。
Option Explicit
Private Sub Command1_Click()
Dim h As String, h1 As String * 1, h2 As String * 1
h = Text1
h1 = Left(h, 1): h2 = Right(h, 1)
Text2 = h2b(h1) & h2b(h2)
End Sub
Private Function h2b(p As String) As String
Dim st As String, i As Integer
st = "0123456789ABCDEF"
For i = 1 To Len(st)
If
Next i
i = i - 1
Do
h2b =
i = i \ 2
Loop Until i <= 0
h2b =
End Function
8.下面程序的功能是:輸入一個n位的整數(n≤10),求出由這n個數字組成的最大整數和最小整數。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim n As Long, a() As Integer, i As Integer
Dim large As String, small As String
n = Text1
Call change(n, a)
Call sort(a)
For i = 1 To UBound(a)
large = a(i) & large
small =
Next i
Text2 = large
For i = 1 To Len(small)
If Then Exit For
Next i
If i <> 1 Then
small = Mid(small, i, 1) & Left(small, i - 1) & Right(small, Len(small) - i) End If
Text3 = small
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
For j = 1 To UBound(a) - i
If Then
t = a(j)
a(j) = a(j + 1)
a(j + 1) = t
End If
Next j
Next i
End Sub
Private Sub change( )
Dim k As Integer
Do
k = k + 1
ReDim Preserve a(k)
a(k) = n Mod 10
n =
Loop Until n = 0
End Sub
9.下面程序的功能是:在文本框1中輸入若干以空格分隔的整數(末尾無空格),程序自動將輸入的數據分解并存儲到一個一維數組,再把數組中所有重復的元素刪除(只保留一個),并輸出到文本框2。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a() As Integer, i As Integer, st As
String
Dim k As Integer, p As Integer
st = Text1
Do
p = InStr(st, " ")
If p <> 0 Then
ReDim Preserve a(k)
a(k) = Val(Left(st, p - 1))
st = Right(st, Len(st) - p)
Else
a(k + 1) = Val(st)
End If
Loop Until
Call del(a)
For i = 1 To UBound(a)
Text2 = Text2 & Str(a(i))
Next i
Text2 = LTrim(Text2)
End Sub
Private Sub del(a() As Integer)
Dim i As Integer, j As Integer, k As Integer
Do
i = i + 1
j = i + 1
Do While j <= UBound(a)
If Then
For k = j To UBound(a) - 1
a(k) = a(k + 1)
Next k
ReDim Preserve a(UBound(a) - 1)
Else
(30)
End If
Loop
Loop Until i > UBound(a)
End Sub
2008秋上機VB01
【考試須知】
1. 改錯題的界面不作要求,主要用來調試程序,若題目中有參考界面,則僅作參考;
2. 考試結束后,文件必須存放在指定位置,否則適當扣分;考試盤中若無指定文件,則不
予評分;
3. 程序代碼書寫應呈鋸齒形。
一、改錯題(14分)
【題目】本程序的功能是:隨機生成一個有n個元素的數組(n由InputBox函數輸入),找出其中的最大元素并將它刪除,再輸出刪除后的數組。
Option Explicit
Option Base 1
Dim a() As Integer, n As Integer
Private Sub Command1_Click()
Dim i As Integer
n = InputBox("請輸入數組個數", , 10)
ReDim a(n)
For i = 1 To n
a(i) = Int(Rnd * 100) + 1
Text1 = Text1 & Str(a(i))
Next i
Call Lookup(a)
For i = 1 To n
Text2 = Text2 & Str(a(i))
Next i
End Sub
Private Sub Lookup(a() As Integer)
Dim Maxv As Integer, maxp As Integer, i As Integer
Maxv = a(1): maxp = 1
For i = 2 To n
If a(i) > Maxv Then
Maxv = a(i) : maxp = i
End If
Next i
Call move_f(a, maxp)
End Sub
Private Sub move_f(a() As Integer, k As Integer)
Dim i As Integer
For i = k + 1 To UBound(a)
a(i) = a(i+1)
Next i
ReDim a(UBound(a) - 1)
End Sub
【要求】
1. 新建工程,輸入上述代碼,改正程序中的錯誤;
2. 改錯時,不得增加或刪除語句,但可適當調整語句位置;
3. 將窗體文件和工程文件分別命名為F1和P1,并保存到T盤的根目錄下。
二、編程題(26分)
【題目】編寫程序,找出指定范圍[a, b]之間所有能構成幻影素數的數。所謂幻影素數是指自身為素數,其反序數也是素數的數。例如107與701都是素數,所以107是幻影素數。
【編程要求】
1. 程序參考界面如圖所示,編程時不得增加或減少界面對象或改變對象的種類,窗體及界
面元素大小適中,且均可見;
2. 運行程序,在文本框A和文本框B中輸入指定數據范圍,再按“運行”按鈕,將找出
的幻影素數存放在列表框中(若指定區間無幻
影素數,則輸出“本區間無幻影素數”)。按“清
除”按鈕,將文本框和列表框清空,焦點置于
文本框A上;
3. 程序中應定義一個名為prime的函數過程,用
于判斷一個整數是否為素數;再定義一個求一
個整數的反序數的通用過程。
【要求】
將窗體文件和工程文件分別命名為F2和P2,并保
存到T盤的根目錄下。
VB02
【考試須知】
1. 改錯題的界面不作要求,主要用來調試程序,若題目中有參考界面,則僅作參考;
百度搜索“看文倉”,專業資料,生活學習,盡在看文倉網92to.com,您的在線圖書館
歡迎轉載:http://www.kanwencang.com/xuexi/20161216/72261.html
文章列表