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 "最大数为:" & 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之间阶乘题