當前位置:編程學習大全網 - 編程語言 - vb題答案!(內部)

vb題答案!(內部)

1. 編程在窗體上輸出101~500之間的所有能被3或者7整除的奇數,按照壹行5個的方式輸出並最後符合要求的數的和。

解:代碼為

Private Sub form_load()

Show

Dim n, sum As Integer

Print Spc(6); "101~500之間的所有能被3或者7整除的奇數,及各數的和"

i = 0

sum = 0

For n = 101 To 500 Step 2

If n Mod 3 = 0 Or n Mod 7 = 0 Then

sum = sum + n

i = i + 1

Print Spc(6); n;

If i Mod 5 = 0 Then

Print

End If

End If

Next n

Print Spc(7); "sum="; sum

End Sub

2. 在4個TextBox中輸入4個大小不同的數,將它們從大到小排序後的結果用Msgbox函數輸出。

解: 代碼為

Private Sub Command1_Click()

Dim a!, b!, c!, d!

a = Val(Text1.Text)

b = Val(Text2.Text)

c = Val(Text3.Text)

d = Val(Text4.Text)

If a <> b And b <> c And c <> d And a <> c And a <> d And b <> d Then

If a < b Then

t = a: a = b: b = t

End If

If a < c Then

t = a: a = c: c = t

End If

If b < c Then

t = b: b = c: c = t

End If

If d > a Then

t = d: d = a: a = t

End If

If d > b Then

t = d: d = b: b = t

End If

If d > c Then

t = d: d = c: c = t

End If

MsgBox "從大到小排序:" & a & "," & b & "," & c & "," & d

Else

MsgBox "有相同的數"

End If

End Sub

Private Sub Command2_Click()

End

End Sub

3. 在TextBox任意輸入x的值,將f(x)輸出的結果用Msgbox函數輸出。

解: 代碼為

Private Sub Command1_Click()

Dim x As Double

x = Val(Text1.Text)

If x < 0 Then

If x = -3 Then

MsgBox "f(x)=" & x ^ 2 - x - 1

Else: MsgBox "f(x)=" & x ^ 2 + x - 6

End If

End If

If x >= 0 Then

If x < 10 And x <> 2 And x <> 3 Then

MsgBox "f(x)=" & x ^ 2 - 5 * x + 6

Else: MsgBox "f(x)=" & x ^ 2 - x - 1

End If

End If

End Sub

Private Sub Command2_Click()

End

End Sub

4. 找到10000到99999中的所有回文數,並按照壹行10個的格式在窗體上輸出,例如12321是回文數,個位與萬位相同,十位與千位相同。

解:代碼為

Private Sub Form_Load()

Show

Dim x, a, b, c, d, e As Integer

Print Spc(25); "所有的五位回文數:"

Print

i = 0

For x = 10000 To 99999

a = x \ 10000

b = (x - (a * 10000)) \ 1000

c = (x - (a * 10000) - (b * 1000)) \ 100

d = (x - (a * 10000) - (b * 1000) - (c * 100)) \ 10

e = x - (a * 10000) - (b * 1000) - (c * 100) - (d * 10)

If a = e And b = d And c <> a And c <> b And a <> b Then

Print Spc(5); x;

i = i + 1

If i Mod 10 = 0 Then

Print

End If

End If

Next

End Sub

5. 在窗體上輸出所有的“水仙花數”,並按照壹行5個的格式輸出。所謂“水仙花數”是指壹個三位數,其各位數字立方和等於該數本身。例如:153是壹個“水仙花數”,因為153=1*1*1+5*5*5+3*3*3。

解:代碼為

Private Sub form_load() Show Dim a, b, c, i As Integer Print Spc(10); "水仙花數" For i = 100 To 999 a = i Mod 10 b = i \ 100 c = (i - b * 100) \ 10 If a ^ 3 + b ^ 3 + c ^ 3 = i Then Print i; Space(2); If (i + 1) Mod 5 = 0 Then Print End If End If Next i End Sub

6. 編程找出滿足下列條件的所有四位數並在窗體上按照壹行10個的形式輸出:該數第壹、三位數字之和為10,第二、四位數字之積為12。

解:代碼為

Private Sub Form_Load()

Dim i As Integer, a(1 To 4) As Integer, j As Integer

j = 0

Show

For i = 1000 To 9999

a(1) = i Mod 10

a(2) = ((i - a(1)) / 10) Mod 10

a(3) = ((i - i Mod 100) / 100) Mod 10

a(4) = ((i - i Mod 1000) / 1000) Mod 10

If (a(4) + a(2) = 10 And a(1) * a(3) = 12) Then

Print Tab((j Mod 10 + 1) * 7);

Print i;

j = j + 1

If (j Mod 10 = 0) Then Print

End If

Next

End Sub

7.編寫壹個程序,在2個TextBox中輸入某人的身高(cm)和體重(kg),按下式確定其體重是否為標準、過胖或過瘦,將結果用Msgbox輸出。(1)標準體重=身高-110;(2)超過標準體重5kg為過胖;(3)低於標準體重5kg為過瘦。

解: 代碼為

Private Sub Command1_Click()

Dim a, b, c As Single

a = Val(Text1.Text)

b = Val(Text2.Text)

c = a - 110

If b - c > 5 Then

MsgBox "體重過胖"

ElseIf c - b > 5 Then

MsgBox "體重過痩"

ElseIf c - b <> 5 Or c - b = 5 Then

MsgBox "標準體重"

End If

End Sub

Private Sub Command2_Click()

End

End Sub

8.在TextBox中輸入壹個正整數n,計算 的值並在窗體上輸出結果。

解: 代碼為

Private Sub Command1_Click()

Dim n, f, s, i As Integer

n = Val(Text1.Text)

f = 1

s = 0

For i = 1 To n

f = f * i

s = s + f / (i + 2)

Next i

Label2.Caption = "S=" & s

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

End Sub

9.已知abcd+dcba=3456,其中a,b,c,d均為壹位正整數,編程求出滿足條件的a,b,c,d所有組合,在Label上輸出答案。

解: 代碼為

Private Sub Command1_Click()

Dim a, b, c, d, i As Integer

i = 0

For a = 0 To 9

For b = 0 To 9

For c = 0 To 9

For d = 0 To 9

If (a * 1000 + b * 100 + c * 10 + d + d * 1000 + c * 100 + b * 10 + a = 3456) Then

Label1.Caption = "a=" & a & "," & "b=" & b & "," & "c=" & c & "," & "d=" & d

i = i + 1

Else

Label1.Caption = "沒有這樣的數"

End If

Next

Next

Next

Next

End Sub

10.編程輸出所有滿足如下條件的三位正整數:它是某整數的平方,它的三位數碼有兩位是相同的,在窗體上按照壹行5個的格式輸出。(如100是10的平方,它有兩個0,225是15的平方,它有兩個2)。

解:代碼為

Private Sub Form_Load()

Show

Dim x, a, b, c, m As Integer

Print Tab(10); "所有的三位數:"

Print

i = 0

For x = 100 To 999

For m = 10 To 32

a = x \ 100

b = (x - (a * 100)) \ 10

c = x - (a * 100) - (b * 10)

If a = b Or b = c Or c = a Then

If x = m * m Then

Print Spc(5); x;

i = i + 1

If i Mod 5 = 0 Then

Print

End If

End If

End If

Next m

Next x

End Sub

11.求這樣壹個四位數並輸出該數字,該四位數等於其每位數字的階乘之和。即:

abcd = a! + b! + c! + d!,將結果用Msgbox函數輸出。

解: 代碼為

Private Sub Command1_Click()

Dim i As Integer, a(1 To 4) As Integer, j As Integer

j = 0

For i = 1000 To 9999

a(1) = i Mod 10

a(2) = ((i - a(1)) / 10) Mod 10

a(3) = ((i - i Mod 100) / 100) Mod 10

a(4) = ((i - i Mod 1000) / 1000) Mod 10

If (i = fact(a(1)) + fact(a(2)) + fact(a(3)) + fact(a(4))) Then

MsgBox ("其中壹個四位數為:" & i)

j = j + 1

End If

Next

If j = 0 Then MsgBox ("無結果")

End Sub

Private Function fact(n As Integer) As Long

Dim i As Integer

f = 1

For i = 1 To n

f = f * i

Next

fact = f

End Function

12.輸出所有大於1010的4位偶數,且該類偶數的各位數字兩兩不相同,在窗體上按照壹行5個的格式輸出。

解:代碼為

Private Sub form_load()

Show

Dim a, b, c, d As Integer

Print Tab(20); "所有的四位數:"

i = 0

For x = 1010 To 9999 Step 2

a = x \ 1000

b = (x - (a * 1000)) \ 100

c = (x - (a * 1000) - (b * 100)) \ 10

d = x - (a * 1000) - (b * 100) - (c * 10)

If a <> b And b <> c And c <> a And a <> d And b <> d And c <> d Then

Print Spc(5); x;

i = i + 1

If i Mod 5 = 0 Then

Print

End If

End If

Next

End Sub

13.求1-2!+3!-4!...序列,當最後的結果超過2000000停止計算,將該序列的最結果用Msgbox函數輸出。

解: 代碼為

Private Function m(n As Double) As Double

Dim i As Double

f = 1

For i = 1 To n

f = f * i

Next

m = f

End Function

Private Sub Command1_Click()

Dim i As Integer, b As Double, j As Double

b = 0

i = 1

j = 1

Do While (b < 2000000)

b = b + i * m(j)

j = j + 1

i = i * (-1)

Loop

MsgBox ("結果為:" & b)

End Sub

14.壹位司機酒駕撞人逃跑。現場三人目擊事件,但都沒記住車號,只記下車號的壹些特征。甲說:牌照的前兩位數字是相同的;乙說:牌照的後兩位數字是相同的;丙是位數學家,他說:四位的車號剛好是壹個整數的平方。請根據以上線索求出車號。(車號為4位正整數,結果在TextBox中輸出)

解: 代碼為

Private Sub Form_Load()

Dim i As Integer, j As Integer, a(1 To 4) As Integer

j = 0

Show

For i = 1000 To 9999

a(1) = i Mod 10

a(2) = ((i - a(1)) / 10) Mod 10

a(3) = ((i - i Mod 100) / 100) Mod 10

a(4) = ((i - i Mod 1000) / 1000) Mod 10

If (Sqr(i) - Fix(Sqr(i)) = 0) Then

If (a(1) = a(2) And a(3) = a(4)) Then

Text1.Text = i

End If

End If

Next

End Sub

15.用戶利用InputBox函數隨機輸入12個0-100之間的整數,統計出小於60,60到70,70到80,80到90以及90到100範圍的整數各有多少個?用Msgbox函數顯示輸出結果。

解: 代碼為

Private Sub Command1_Click()

Dim a(1 To 12) As Integer, b(1 To 5) As Integer, i As Integer

For i = 1 To 12

a(i) = Val(InputBox("請輸入第" & i & "個數"))

Next

For i = 1 To 12

Select Case a(i)

Case 0 To 59

b(1) = b(1) + 1

Case 60 To 69

b(2) = b(2) + 1

Case 70 To 79

b(3) = b(3) + 1

Case 80 To 90

b(4) = b(4) + 1

Case 90 To 100

b(5) = b(5) + 1

Case Else

End Select

Next

MsgBox ("小於60:" & b(1) & ",60到70:" & b(2) & ",70到80:" & b(3) & ",80到90:" & b(4) & ",90到100:" & b(5))

End Sub

16.在TextBox中輸入壹個正整數n,當n的值為偶數時,求1-1/2-1/4-...-1/n序列的和,當n為奇數時,求1-1/3-1/5...-1/n序列的和,將結果用Msgbox函數輸出。

解: 代碼為

Private Sub Command1_Click()

Dim a As Integer, b As Double, x As Double

a = Val(Text1.Text)

x = 1

Select Case a Mod 2

Case 0

For b = 2 To a Step 2

x = x - 1 / b

Next

Case 1

For b = 3 To a Step 2

x = x - 1 / b

Next

Case Else

End Select

MsgBox ("結果為:" & Format(x, "0.#####"))

End Sub

17.編制程序要求輸入整數a和b,若a2+b2大於100,則輸出a2+b2百位以上的數字,否則輸出兩數字之和。結果利用Msgbox函數輸出 。

解: 代碼為

Private Sub Command1_Click()

Dim a As Long, b As Long, s As Long, n As Long

a = Val(Text1.Text)

b = Val(Text2.Text)

s = a ^ 2 + b ^ 2

n = a + b

If s > 100 Then

i = MsgBox("結果為:" & Int(s / 100))

Else: i = MsgBox("結果為:" & n)

End If

End Sub

Private Sub Command2_Click()

End

End Sub

18.猜數遊戲:由計算機隨機產生壹個2位正整數讓人來猜,只能猜8次,如果人猜對了,則利用Msgbox函數顯示計算機隨機產生的該2位正整數並顯示“You are so clever”,否則利用Msgbox函數給出提示,告訴人所猜的數是太大還是太小,直到人猜對為止,或者8次都猜不對給出提示“Game Over”。

解: 代碼為

Private Sub Command1_Click()

Dim a As Integer, b As Integer, i As Integer

Randomize

a = Fix(Rnd(Time) * 90) + 10

For i = 1 To 8

b = Val(InputBox("請輸入壹個數"))

Select Case b

Case 0 To a - 1

MsgBox ("太小了!")

Case a + 1 To 100

MsgBox ("太大了!")

Case a

MsgBox ("You are so clever!")

Exit For

Case Else

MsgBox ("輸入錯誤!")

End Select

If (i = 8) Then MsgBox ("GAME OVER!")

Next

End Sub

19.征兵的條件是:男性(sex)年齡(age)在18~20之間,身高(size)在1.65米以上;或者女性(sex)年齡(age)在16~18之間,身高(size)在1.60米以上。

用三個文本框控件分別輸入性別、年齡、身高信息,根據這些信息判斷是否符合征兵條件,用Msgbox函數輸出結果。

解: 代碼為

Private Sub Command1_Click()

Dim i As String, j As Single, k As Integer

i = Text1.Text

j = Val(Text2.Text)

k = Val(Text3.Text)

Show

Print i

Select Case i

Case "男"

If (k >= 18 And k <= 20) Then

If (j > 165) Then

MsgBox ("合格,符合征兵條件")

Else

MsgBox ("不合格,不符合征兵條件")

End If

Else

MsgBox ("不合格,不符合征兵條件")

End If

Case "女"

If (k >= 16 And k <= 18) Then

If (j > 160) Then

MsgBox ("合格,符合征兵條件")

Else

MsgBox ("不合格,不符合征兵條件")

End If

Else

MsgBox ("不合格,不符合征兵條件")

End If

Case Else

MsgBox ("輸入錯誤!")

End Select

End Sub

Private Sub Command2_Click()

End

End Sub

20.求出1到1000之內能被5或13整除、但不能同時被5和13整除的所有整數,在窗體上按照壹行5個的格式輸出。

解:代碼為

Private Sub Form_Load()

Show

Dim n As Integer

Print Spc(10); "1到1000之間能被5或13整除,但不能5和13同時整除的所有整數:"

i = 0

For n = 1 To 1000

If n Mod 5 = 0 Or n Mod 13 = 0 Then

If n Mod 65 <> 0 Then

i = i + 1

Print Spc(6); Format(n, "!@@@@");

If i Mod 5 = 0 Then

Print

End If

End If

End If

Next

End Sub

  • 上一篇:數字化的心得體會
  • 下一篇:在天天裏怎麽自己創造壹個機器人
  • copyright 2024編程學習大全網