江西财经大学数据库书上习题八答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题8解答
2. 求程序运行结果题
1)试写出下列程序运行结果
Public Sub Fig1()
Dim i As Integer
Debug.Print Tab(10); "*"
For i = 1 To 5
Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*" Next i
For i = 4 To 1 Step -1
Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*" Next i
Debug.Print Tab(10); "*"
End Sub
解答:
*
***
* * *
* * *
* * *
* * *
* * *
* * *
* * *
***
*
2)求下列程序运行结果
Public Sub 作业2()
Dim x, y, i As Double
x = 0: y = 0
For i = 1 To 8
If i Mod 2 <> 0 Then
x = x - i
Else
y = y + i
End If
Next
Debug.Print "i="; i
Debug.Print "x="; x
Debug.Print "y="; y
End Sub
解答:
i= 9
x=-16
y= 20
3)求下列程序的运行结果
Public Sub 作业3()
Dim m, s, k As Double
m = 28
s = 0
k = 1
Do While k <= Int(m / 2)
If Int(m / k) = m / k Then
Debug.Print k
s = s + k
End If
k = k + 1
Loop
Debug.Print "s="; s
End Sub
解答:
1
2
4
7
14
s= 28
4)当n=10时,求下列程序运行结果
Public Sub 作业4()
Dim n, a1, a2, a3, i As Double
n = Val(InputBox("请输入n,要求n>=3")) If n <= 2 Then
Exit Sub
End If
a1 = 1
a2 = 1
Debug.Print a1; a2
For i = 2 To n - 1
a3 = a1 + a2
a1 = a2
a2 = a3
Debug.Print a3 Next End Sub
解答:
1 1
2
3 5 8 13 21 3
4 5
5 3. 改错题
1)程序改错,下面的每个程序均有两个错误,试调试修改正确。 (1)计算1+2+3+…+N 的值。
Public Sub Sum()
Dim i, n, s, y, k As Double n = Val(InputBox("请输入n")) i = 1: s = 0 Do While i <=n s = s+ i i = i + 1 Loop
Debug.Print "S="; s End Sub
(2)程序的功能是计算公式Y=1-1/3!+1/5!-1/7!…,式中除第1项外,其余各项可用1/(2N+1)表示。 4. 编程题
1)已知
**()
/ 0
X Y X Y Z X Y S gn Y X Y
X Y X Y Y ìï+<ïïï
==íïï
ï>
ïî
当当当且
试编成求Z 的值,请分别使用Select Case 和If …ElseIf …EndIf 编写程序。
2)编写程序,求一元二次方程Ax 2
+Bx+C = 0的解,输入为系数A,B 和C 。 解答:
Public Sub exer841() Dim A, B, C As Double
Dim delta, r1, r2 As Double
A = Val(InputBox("请输入A的值"))
B = Val(InputBox("请输入B的值"))
C = Val(InputBox("请输入C的值"))
delta = B * B - 4 * A * C
If delta < 0 Then
Debug.Print "无解"
ElseIf delta = 0 Then
r1 = -B / (2 * A)
Debug.Print "唯一解为:" & Str(r1)
Else
r1 = (-B + Sqr(delta)) / (2 * A)
r2 = (-B - Sqr(delta)) / (2 * A)
Debug.Print "解为:"; Str(r1); Spc(1); Str(r2)
End If
End Sub
3)用整数0-6依次表示星期日、星期一、……、星期六,编程实现下列功能:
用键盘输入一个整数,在显示器上输出对应的中文表示星期几,如果键入的整数范围不在-1到6之内,则显示“输入数据错误”,返回要求再次键入正确数字。当键入-1时,程序终止。
4)乘火车旅行的行李收费标准如下:成年人可免费携带重量20公斤的行李,未成年人可免费携带10公斤的行李,超出这个重量,火车站将加收费用,收费标准是每公斤每百公里收费为0.20元,不足百公里按百公里记。试编程按不同类型的人和行李重量来记收费用。
解答:
Public Sub exer844()
Dim person As Integer
Dim weight, charge As Double
person = Val(InputBox("1: 成年人;" & Chr(13) & Chr(10) & " 2: 未成年人", "选择乘客类型", 1))
weight = Val(InputBox("输入行李重量"))
If person = 1 And weight > 20 Then
charge = 0.2 * (weight - 20)
ElseIf person = 2 And weight > 10 Then
charge = 0.2 * (weight - 10)
Else
charge = 0
End If
Debug.Print "收费标准:"; charge
End Sub