当前位置:文档之家› 江西财经大学数据库书上习题八答案

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

习题8解答2. 求程序运行结果题1)试写出下列程序运行结果Public Sub Fig1()Dim i As IntegerDebug.Print Tab(10); "*"For i = 1 To 5Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*" Next iFor i = 4 To 1 Step -1Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*" Next iDebug.Print Tab(10); "*"End Sub解答:***** * ** * ** * ** * ** * ** * ** * *****2)求下列程序运行结果Public Sub 作业2()Dim x, y, i As Doublex = 0: y = 0For i = 1 To 8If i Mod 2 <> 0 Thenx = x - iElsey = y + iEnd IfNextDebug.Print "i="; iDebug.Print "x="; xDebug.Print "y="; yEnd Sub解答:i= 9x=-16y= 203)求下列程序的运行结果Public Sub 作业3()Dim m, s, k As Doublem = 28s = 0k = 1Do While k <= Int(m / 2)If Int(m / k) = m / k ThenDebug.Print ks = s + kEnd Ifk = k + 1LoopDebug.Print "s="; sEnd Sub解答:124714s= 284)当n=10时,求下列程序运行结果Public Sub 作业4()Dim n, a1, a2, a3, i As Doublen = Val(InputBox("请输入n,要求n>=3")) If n <= 2 ThenExit SubEnd Ifa1 = 1a2 = 1Debug.Print a1; a2For i = 2 To n - 1a3 = a1 + a2a1 = a2a2 = a3Debug.Print a3 Next End Sub解答:1 123 5 8 13 21 34 55 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 LoopDebug.Print "S="; s End Sub(2)程序的功能是计算公式Y=1-1/3!+1/5!-1/7!…,式中除第1项外,其余各项可用1/(2N+1)表示。

4. 编程题1)已知**()/ 0X Y X Y Z X Y S gn Y X YX 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 DoubleDim delta, r1, r2 As DoubleA = Val(InputBox("请输入A的值"))B = Val(InputBox("请输入B的值"))C = Val(InputBox("请输入C的值"))delta = B * B - 4 * A * CIf delta < 0 ThenDebug.Print "无解"ElseIf delta = 0 Thenr1 = -B / (2 * A)Debug.Print "唯一解为:" & Str(r1)Elser1 = (-B + Sqr(delta)) / (2 * A)r2 = (-B - Sqr(delta)) / (2 * A)Debug.Print "解为:"; Str(r1); Spc(1); Str(r2)End IfEnd Sub3)用整数0-6依次表示星期日、星期一、……、星期六,编程实现下列功能:用键盘输入一个整数,在显示器上输出对应的中文表示星期几,如果键入的整数范围不在-1到6之内,则显示“输入数据错误”,返回要求再次键入正确数字。

当键入-1时,程序终止。

4)乘火车旅行的行李收费标准如下:成年人可免费携带重量20公斤的行李,未成年人可免费携带10公斤的行李,超出这个重量,火车站将加收费用,收费标准是每公斤每百公里收费为0.20元,不足百公里按百公里记。

试编程按不同类型的人和行李重量来记收费用。

解答:Public Sub exer844()Dim person As IntegerDim weight, charge As Doubleperson = Val(InputBox("1: 成年人;" & Chr(13) & Chr(10) & " 2: 未成年人", "选择乘客类型", 1))weight = Val(InputBox("输入行李重量"))If person = 1 And weight > 20 Thencharge = 0.2 * (weight - 20)ElseIf person = 2 And weight > 10 Thencharge = 0.2 * (weight - 10)Elsecharge = 0End IfDebug.Print "收费标准:"; chargeEnd Sub5)编写程序完成求和S=1+(1+2)+(1+2+3)+…+(1+2+…+10)。

如果求S=1! + 2! + 3! + …+ 10!,试编写程序并比较其同异。

解答:Public Sub exer845()Dim i As IntegerDim s, sum As Longs = 0sum = 0For i = 1 To 10s = s + isum = sum + sDebug.Print s, sumNextEnd SubPublic Sub exer845()Dim i As IntegerDim s, sum As Longs = 1sum = 0For i = 1 To 10s = s * isum = sum + sDebug.Print s, sumNextEnd Sub6)编程求100到200之间即能被3整除又能被5整除的正整数的个数,并显示这些数。

解答:Public Sub exer846()Dim i, count As Integercount = 0For i = 100 To 200If i Mod 15 = 0 Thencount = count + 1End IfNextDebug.Print countEnd Sub7)编程完成下列图形的打印。

其中第一个*所在列为第10行,第20列。

********* ********************************************************8)使用数组输入十个评委的评分,要求去除最高分、最低分,求应试者的最后得分。

解答:Public Sub exer848()Dim score(1 To 10) As DoubleDim i As IntegerDim min, max, sum As DoubleFor i = 1 To 10score(i) = Val(InputBox("输入分数"))Nextmin = score(1)max = score(1)For i = 1 To 10sum = sum + score(i)If score(i) > max Thenmax = score(i)End IfIf score(i) < min Thenmin = score(i)End IfNextsum = sum - max - minDebug.Print "最后得分为" & Str(sum / 8)End Sub9)编程求2到100间的所有素数,并求它们的和。

10)使用循环嵌套语句编程求:在0至999的范围内,找出所有这样的数,其值等于该数中各位数字的立方和。

如:153 = 12+52+32解答1:Public Sub exer8410()Dim a, b, c As IntegerDim num, sum As IntegerFor num = 1 To 999a = num \ 100 '也可用int(num/100)b = (num Mod 100) \ 10c = num Mod 10If a ^ 3 + b ^ 3 + c ^ 3 = num ThenDebug.Print numEnd IfNext numEnd Sub解答2:Public Sub exer8410b()Dim a, b, c As IntegerDim num, sum As IntegerFor a = 0 To 9For b = 0 To 9For c = 0 To 9num = 100 * a + 10 * b + cIf num > 0 And num = a ^ 3 + b ^ 3 + c ^ 3 ThenDebug.Print numEnd IfNext cNext bNext aEnd Sub11)有一个分数数列:23581321,,,,,,求出这个数列前20项之和。

相关主题