30道编程题
(1)选择结构(1~6)  (2)循环结构(7~18)  (3)数组(19~25)  (4)过程(26~30)
1.输入3个数,输出最大的数
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, max As Integer
a = Text1.Text
b = Text2.Text
c = Text3.Text
If a > b Then
max = a
Else
max = b
End If
If c > max Then
max = c
End If
Print max
End Sub
2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = InputBox("a")
b = InputBox("b")
c = InputBox("c")
If (b * b - 4 * a * c) >= 0 Then
Print "yes"
Else
Print "no"
End If
End Sub
3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”,若小于60,则弹出消息框,显示“抱歉!成绩没有通过!”
Private Sub Command1_Click()
Dim n%
n = Val(Text1)
If n >= 60 Then
MsgBox "恭喜!成绩通过!"
Else
MsgBox "抱歉!成绩没有通过!"
End If
End Sub
4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)
Private Sub Command1_Click()
Dim y%
y = InputBox("请输入年数")
If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then
  MsgBox (y & "年是闰年")
Else
  MsgBox (y & "年是平年")
End If
End Sub
5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
Private Sub Command1_Click()
a = Val(InputBox("请输入成绩"))
If a > 100 Then Print "超出范围"
If a >= 90 And a <= 100 Then Print "优秀"
If a >= 80 And a < 90 Then Print "良好"
If a >= 70 And a < 80 Then Print "中等"
If a >= 60 And a < 70 Then Print "及格"
If a < 60 Then Print "不及格"
End Sub
6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。
Dim sum, a, b, c As Integer, i As Integer
Private Sub Command1_Click()
Randomize
i = Int(Rnd * 900 + 100)
Print i
a = i \ 100
b = (i Mod 100) \ 10c编程必背100题
c = i Mod 10
sum = c & b & a
Print sum
End Sub
7.输入两个整数,求它们的最大公约数。
Private Sub Command1_Click()
  n1 = InputBox("输入n")
  m1 = InputBox("输入m")
  If m1 > n1 Then
            m = m1: n = n1
  Else
        m = n1: n = m1
  End If
    r = m Mod n
    Do While r <> 0
            m = n
            n = r
            r = m Mod n
  Loop
Print "m n 的最大公约数是:"; n
End Sub
8.编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。
Private Sub Command1_Click()
    Dim s1%, s2%, s3%, i%
    s1 = 0
    s2 = 0
    For i = 200 To 400
      If i Mod 5 = 0 Or i Mod 7 = 0 Then
          s1 = s1 + i
      End If
    Next i
    For i = 200 To 400
      If i Mod 5 = 0 And i Mod 7 = 0 Then
          s2 = s2 + i
      End If
    Next i
    s3 = s1 - s2
    Print s3
End Sub
9.计算100~300之间所有能被3和7整除的数之和。
Private Sub Command1_Click()
Dim i
Sum = 0
For i = 100 To 300
If i Mod 3 = 0 And i Mod 7 = 0 Then
Sum = Sum + i
End If
Next i
Print Sum
End Sub
10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少。
Private Sub Command1_Click()
Dim i, s3, s7
s3 = 0
s7 = 0
For i = 1 To 100
If i Mod 3 = 0 Then
s3 = s3 + 1
End If
Next i
For i = 1 To 100
If i Mod 7 = 0 Then
s7 = s7 + 1
End If
Next i
Print "3的倍数"; s3
Print "7的倍数"; s7
End Sub
11.某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
Private Sub Command1_Click()
Dim max, a(1 To 7), min, s
For i = 1 To 7
a(i) = Val(InputBox("输入第" & i & "个数"))
Next i
max = a(1)
min = a(1)
s = a(1)
For i = 2 To 7
If a(i) > max Then max = a(i)
If a(i) < min Then min = a(i)
s = s + a(i)
Next i
s = s - min - max
s = s / 5
Print "平均分"; s
End Sub
12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。
Private Sub Command1_Click()
Dim c As String, a As Integer
b = InputBox("请输入字符")
For i = 1 To Len(b)
        c = UCase(Mid(b, i, 1))
        If c = "A" Then
        a = a + 1
        End If
        Next i
        Print "a出现的次数:"; a
End Sub
13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
Private Sub Command1_Click()
Dim a, i
a = 13
i = 0
Do While a < 26
a = a * (1.008)
i = i + 1
Loop
Print i
End Sub
14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?
Private Sub Command1_Click()
Dim a, i
a = 1
For i = 1 To 6
a = 2 * (a + 1)
Next i
Print "小猴原有桃"; a; "只"
End Sub
15.求100以内的素数。
Private Sub Command1_Click()
Dim i, j
For i = 2 To 100
For j = 2 To i - 1
If i Mod j = 0 Then Exit For
Next j
If j = i Then Print i
Next i
End Sub
16、百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。
Private Sub Command1_Click()
Print "小鸡"; "  "; "母鸡"; "    "; "公鸡"
Print ""
For x = 1 To 100
For y = 1 To 100
For z = 1 To 100
If 0.5 * x + 2 * y + 3 * z = 100 Then
Print ""; x; "    "; y; "    "; z
End If
Next z
Next y
Next x
End Sub
17、编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1,  F(n)=F(n-1)+F(n-2) n>=2
Private Sub Command1_Click()
Dim F(11), i As Long

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。