vb第四章选择结构和循环结构编程题

  • 格式:doc
  • 大小:37.00 KB
  • 文档页数:11

第四章编程题

1.查询分数题

Private Sub Form_Load()

x = Val(InputBox("请输入分数", "输入", 0))

Select Case x

Case Is < 0

Label1.Caption = "输入有误"

Case Is > 100

Label1.Caption = "输入有误"

Case Is >= 90

Label1.Caption = "优秀"

Case Is >= 80

Label1.Caption = "良好"

Case Is >= 70

Label1.Caption = "一般"

Case Is >= 60

Label1.Caption = "及格"

Case Is < 60

Label1.Caption = "不及格"

End Select

End Sub

2.求最大公约数题

Private Sub Command1_Click()

Dim m As Integer, n As Integer, p As Integer

m = Val(Text1.Text)

n = Val(Text2.Text)

If m < 0 Or n < 0 Then

MsgBox "数据错误!"

End

End If

p = m Mod n

Do While p <> o

m = n

n = p

p = m Mod n

Loop

Text3.Text = n

End Sub

2.1最小公倍数

Private Sub Command1_Click()

Dim m As Integer, n As Integer, p As Integer, t As Integer

m = Val(Text1.Text)

n = Val(Text2.Text)

t = m * n

If m < 0 Or n < 0 Then

MsgBox "数据错误!"

End

End If

If m = 0 Or n = 0 Then

Text3.Text = 0

Else

Do

p = m Mod n

If p = 0 Then

Exit Do

End If

m = n

n = p

Loop Until False

Text3.Text = t / n

End If

End Sub

3.九九乘法表

Private Sub Command1_Click()

Dim I As Integer, J As Integer, M As Integer, s As String

For I = 1 To 9

s = ""

For J = 1 To I

M = I * J

s = s & J & "*" & I & "=" & M & " "

Next J

List1.AddItem s

Next I

End Sub

4.求ABCD—CDC=ABC题

Private Sub Command1_Click() For a = 1 To 9: For b = 0 To 9

For c = 1 To 9: For d = 0 To 9

x = a * 1000 + b * 100 + 10 * c + d

y = c * 100 + d * 10 + c

z = a * 100 + b * 10 + c

If x - y = z Then

Print x; y; z

End If

Next

Next

Next

Next

End Sub

5.求前100项和,平均数题

Private Sub Form_click()

n = 1: s = 0

Do While n <= 100

s = s + n

n = n + 1

Loop

Print s, n - 1, s / (n - 1), s * (n - 1)

End Sub

6.输入10个数找出正数,负数,零的个数

Private Sub Command1_Click()

Dim i, t, x1, x2, x3 As Integer

For i = 1 To 10

t = Val(InputBox("请输入第" & i & "个数:", "显示", 0))

If t > 0 Then

x1 = x1 + 1

ElseIf t < 0 Then

x2 = x2 + 1

Else

x3 = x3 + 1

End If

Next

Print "正数的个数:" & x1

Print "负数的个数:" & x2

Print "零的个数:" & x3

End Sub

7.Fibonacci数列(用数组做)

Private Sub Form_Load()

For i = 1 To 30

List1.AddItem Fib(i)

Next

End Sub

Private Function Fib(n)

If n < 3 Then

Fib = 1

Else

Fib = Fib(n - 1) + Fib(n - 2)

End If

End Function

Private Sub List1_Click()

List1.AddItem = Fib

End Sub

8.输入十个数打印并找出最大数,最小数

Private Sub Command1_Click()

Dim a(9), i, max, min As Integer

For i = 0 To 9

a(i) = Val(InputBox("请输入第" & i + 1 & "个数:"))

Print a(i);

Next

max = a(0)

For i = 0 To 9

If a(i) > max Then max = a(i)

If a(i) < min Then min = a(i)

Next

Print

Print

Print

Print "最大数为:" & max; "最小数为:" & min

End Sub

9.100元换成40张等值的10,5,2,1的钱的题

Private Sub Command1_Click()

For x = 1 To 10

For y = 1 To 20 For z = 1 To 50

w = 40 - x - y - z

If 10 * x + 5 * y + 2 * z + w = 100 And x * y * z * w > 0 Then

h = Format(x, "@@@@") & Format(y, "@@@@@") _

& Format(z, "@@@@@") & Format(w, "@@@@@")

List1.AddItem h

End If

Next z

Next y

Next x

End Sub

10.找出三位数的回文数并打印,并求其个数

Private Sub Command1_Click()

Dim n As Integer

For n = 101 To 999

a = Int(n / 100)

b = Int((n - a * 100) / 10)

c = n - a * 100 - b * 10

If a = c Then List1.AddItem n

Next

Print List1.ListCount

End Sub

10-2回文字判断

1)按定义判断

先求出字符串的反序字符串,然后和原字符串比较,如果相等则是回文,否则不是回文。

Dim str As String, i As Integer

'以下求Text1中文本的反序串str

For i=1 To Len(Text1)

str=Mid(Text1, i, 1) & str

Next i

If str=Text1 Then MsgBox "是回文" Else MsgBox "不是回文"

(2)首尾字符的成对比较

将字符串折半比较,若每对字符都相等则是回文,否则只要有一对字符不等就不是回文。

Dim i As Integer

For i=1 To Len(Text1) \ 2

If Mid(Text1, i, 1) <> Mid(Text1, Len(Text1) - i + 1, 1) Then Exit For

Next i

If i > Len(Text1) \ 2 Then MsgBox "是回文" Else MsgBox "不是回文"

11.求1-10之间阶乘题