文章出處

導讀:

看文倉網友為您分享以下“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

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()