江西财经大学数据库书上习题八答案

  • 格式:docx
  • 大小:46.94 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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