-
1
、随机产生三个
1
00
-
300
之间的整数,判断这三个
整数是否能构成三角形,如果可以,
求三角形的面积。
Dim x As Integer, y As Integer, z As
Integer
Dim c As Single, s As Single
x = Int(Rnd * 201 + 100)
y =
Int(Rnd * 201 + 100)
z = Int(Rnd * 201
+ 100)
If x + y > z And x + z > y And y
+ z > x Then
c = (x + y + z) / 2
s = Sqr(c * (c
- x) * (c - y) * (c - z))
Print
三角形面积是:
Else
Print
构不成三角形
End If
?
10
,
20
?
、
?
20
,
30
?
、
2
、
随机产生
0
-
100
之间的
60
p>
名学生的数学分数,
分别统计分数在
?
p>
0
,
10
?
、
?
30
,
40
?
、
?
40
,
50
?
、
?
50
,
60
?
、
?
60
,
70
?
、
?
70
,
< br>80
?
、
?
80
,
90
?
、
?
90
,
100
?
、之间的学生人数。
Dim a%, b%, c%, d%, e%, f%, g%, h%, i%,
j%
Dim x As Single
For m = 1
To 60
'
产生<
/p>
60
名学生的分数
x = Rnd * 101
'
产生
0<
/p>
-
100
的分数
Print x;
If x >= 90 Then
a = a + 1
ElseIf x >= 80
Then
b = b + 1
ElseIf x >= 70
Then
c = c + 1
ElseIf x >= 60 Then
d = d + 1
ElseIf x >= 50 Then
e = e + 1
ElseIf x >= 40 Then
f = f + 1
ElseIf x >= 30 Then
g = g + 1
ElseIf x >= 20 Then
h =
h + 1
ElseIf x >= 10 Then
i = i + 1
Else
j = j + 1
End
If
1
Next m
Print a, b, c, d, e,
f, g, h, i, j
3
、我国有
13
亿人口,按照人口年增长
0.8%
计算,多少年以后我国人口超过
26
亿。
< br>
Dim x As Double
'
人数一定要定义成双精度的
Dim n As Integer
x =
1300000000
n = 0
Do While x
<= 2600000000#
x =
x * 1.008
n =
n + 1
Loop
Print n;
< br>年以后,我国人口将超过
26
亿
4
、编写一个程序求一元二次方程的根,要求对输入系数的合法
性进行验证,并规范输出结
果(保留两位小数)
。
(上机指导
P44
)
Dim a!, b!, c!, d!, x1!, x2!
a =
b =
c =
d = b * b - 4 * a * c
If a =
0 Then
MsgBox
不能为
0
'
判断是否能构成一元二次方程
ElseIf d >= 0
Then
x1 = (-b +
Sqr(d)) / (2 * a)
'
求方程的两个根
x2 = (b +
Sqr(d)) / (2 * a)
x1 = Format(x1,
'
对根规范化输出
x2 = Format(x2,
End If
Print x1, x2
< br>5
、某次歌手大奖赛,共有
10
名选手,有
10
名评委打分。要求评委给
10
位选手打分,去
掉一个最高分,去掉一个最低分,求出该
选手的平均分。
Dim i As Integer
Dim j As Integer
Dim max As
Single, min As Single, sum As Single, aver As
Single
For i = 1 To 10
'
十个选手的成绩
max = 0
min = 100
sum = 0
For j = 1 To 10
'
十个评委的分数
x = Rnd * 101
'<
/p>
产生
0
-
100
的分数
If x > max Then
max = x
If x < min Then min = x
sum = sum + x
Next j
aver = (sum - max - min) / 8
2
Print aver;
Next
i
6
、求
1
到
100
以内的素数。
Dim i As Integer, j As Integer, prime
As Boolean
For i = 1 To 100
prime = True
For
j = 2 To Sqr(i)
'
判断一个数是否是素数
If i Mod j = 0 Then
prime = False
End
If
Next j
If prime Then
'
如果
prime = True
p>
则
i
是素数
Print i &
是素数
Else
Print i &
不是素数
如果
prime = False
则
i
不是素数
End If
Next i
p>
7
、求出
100
以
内的所有勾股数(勾股数为
a
2
+b<
/p>
2
=c
2
,c<
/p>
为自然数,且
a<>b
)
Dim a As Integer, b As Integer, c
As Integer
For a = 1 To 100
For b = 1 To 100
For
c = 1 To 100
If
c * c = a * a + b * b And a <> b Then
Print a; b; c;
Print
End If
Next c
Next b
Next a
8
、把输入的字符串逆序输出。
Dim str As String, strRe As String
Dim i As Integer
str =
'
原字符串
For i = 1 To Len(str)
strRe = Mid(str, i, 1) & strRe
'
字符串逆序
Next i
= strRe
'
逆序后的字符串
< br>?
10
,
20
< br>?
、
?
20
,
30
?
、
9
、
随机产生
0
-
100
之间的
60
名学生的数学分数,
分别统计分数在
?
0
,
10
?
、
?
30
,
< br>40
?
、
?
40
,
50
?
、
?
50
,
60
?
、
?
60
,
70
?
、
?
70
,
8
0
?
、
?
80
,
90
?
、<
/p>
?
90
,
100
?
、之间的学生人数。
(用数组实现)
Dim i As Integer, s(1 To
10) As Integer, mark(1 To 60) As Integer,
For i = 1 To 60
3
mark(i) =int( Rnd * 101) '
随机
产生
0
-
100
之间的分数
Print mark(i);
'
输出
60
个
分数
Select Case
mark(i)
Case Is < 10
s(1) = s(1) + 1
Case Is < 20
s(2) = s(2) + 1
Case Is < 30
s(3) = s(3) + 1
Case Is < 40
s(4) = s(4) + 1
Case Is < 50
s(5) = s(5) + 1
Case Is < 60
s(6) = s(6) + 1
Case Is < 70
s(7) = s(7) + 1
Case Is < 80
s(8) = s(8) + 1
Case Is < 90
s(9) = s(9) + 1
Case Is < 100
s(10) = s(10) + 1
End Select
Next i
Print
'
换行
For i = 1 To 10
Print s(i);
'
输出各个分数段的人数
Next i
10
、
随机产生
10
个同学的成绩
?
60
,
100
?
随机整数存入数组,
求出数组中的最高分,
< br>最低分。
Dim i As Integer,
mark(10) As Integer, min As Integer, max As
Integer
For i = 1 To 10
mark(i) = Int(Rnd * 41 + 60) '
随机产生
60
-
100
之间的分数
Print mark(i);
'
输出分数
Next i
min = mark(1)
max = mark(1)
For i = 2 To
10
If mark(i) >
max Then max = mark(i)
'
找出最大数
If mark(i) < min Then min =
mark(i) '
找出最小数
Next i
Print
'
换行
Print
4