第8章习题解答

更新时间:2023-12-20 14:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

习题 8

1. 简答题

1)什么是算法?算法有什么特性?如何表示一个算法?

2)什么是结构化程序设计?它的三种基本结构是什么?它们有什么特点? 3)分支和循环语句中的条件是什么表达式表示?

4)Do While型循环结构的程序构造中,对循环结构的要求是什么?

5)VBA过程有哪四种?过程与函数的定义、调用有哪些不同,调用的传值与传址有哪些不同?

6)什么是全局变量、私有变量、静态变量,如何使用? 2. 求程序运行结果题

1)试写出下列程序运行结果

Public Sub Fig1() Dim i As Integer

Debug.Print Tab(10); \ For i = 1 To 5

Debug.Print Tab(10 - i); \ Next i

For i = 4 To 1 Step -1

Debug.Print Tab(10 - i); \ 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 \ Debug.Print \ Debug.Print \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 \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

解:n=10

1 1 2 3 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 = 1 ‘s=0 Do While i < n ‘i<=n s = s + i i = i + 1 Loop

Debug.Print \End Sub

(2)程序的功能是计算公式Y=1-1/3!+1/5!-1/7!…,式中除第1项外,其余各项可用1/(2N+1)表示。

Public Sub 作业5()

Dim mm, n, p, y, k As Double

mm = Val(InputBox(\请输入计算公式中1后面的项目个数\ n = 1: p = 1: y = 1 Do While n <= mm k = 2 * n + 1

p = p * (k - 1) * k y = y + (-1) / p

n = n + 1 Loop

Debug.Print \End Sub 4. 编程题

1)已知

ì?X+Y当XY 且 Y?0??

试编成求Z的值,请分别使用Select Case和If…ElseIf…EndIf编写程序。 解1:

Public Sub P172_4_1if1 () Dim x,y,z As Integer

x = Val(InputBox(\请输入一个整数给X:\ y=Val(InputBox(\请输入一个整数给Y\ if x

if x=y then

z=x*y*sgn(y) end if

if x>y and y<>0 then z=x/y end if

msgbox(“z=”&str(z)) end sub 解2:

Public Sub P172_4_1if2() Dim x, y, z As Integer

x = Val(InputBox(\请输入一个整数给X:\ y = Val(InputBox(\请输入一个整数给Y\ If x < y Then z = x + y

ElseIf x = y Then z = x * y * Sgn(y)

ElseIf x > y And y <> 0 Then z = x / y End If

MsgBox (\End Sub

解3:

Public Sub P172_4_1Select Case () Dim x,y,z As Integer

x = Val(InputBox(\请输入一个整数给X:\

y=Val(InputBox(\请输入一个整数给Y\ Select Case XY AND Y<>0 Case X

Case X=Y

Z=X*Y*SGN(Y)

Case X>Y AND Y<>0

Z=X/Y END SELECT

MSGBOX(“Z=”& STR(Z)) END SUB

2)编写程序,求一元二次方程Ax2+Bx+C = 0的解,输入为系数A,B和C。 Public Sub P172_4_2() '求方根

Dim a, b, c As Integer

a = Val(InputBox(\输入系数a:\ b = Val(InputBox(\输入系数b:\ c = Val(InputBox(\输入系数c:\ d = b ^ 2 - 4 * a * c If d > 0 Then

x1 = (-b + Sqr(d)) / (2 * a) x2 = (-b - Sqr(d)) / (2 * a) MsgBox (\ MsgBox (\ ElseIf d = 0 Then x1 = -b / (2 * a) x2 = -b / (2 * a)

MsgBox (\ MsgBox (\ Else

MsgBox (\无解\ End If End Sub

3)用整数0-6依次表示星期日、星期一、……、星期六,编程实现下列功能: 用键盘输入一个整数,在显示器上输出对应的中文表示星期几,如果键入的整数范围不在-1到6之内,则显示“输入数据错误”,返回要求再次键入正确数字。当键入-1时,程序终止。

解1:

P=2*N?1

FOR I=1 TO P IF I<=N

?SPACE(N?I+1)

FOR J=1 TO 2*I?1

??CHR(ASC(\?1) ENDFOR ELSE

?SPACE(I?N+1) FOR K=1 TO 2*(2*N?I)-1 ??CHR(ASC(\?I?1) ENDFOR ENDIF ENDFOR

SET TALK ON

任务2 if-else-endif

Public Sub 求函数()

X=val(inputbox('请输入x的值:')) if abs(x)>=1 then if x<=-1 then y=1/(3-x) else

y=1/exp(x) end if else

y=1/(2+x*x) end if

debug.prnit’f(x)='& str(y)

end sub

*任务2 do case/endcase

clear

input'请输入x的值:' to x do case case x<=-1

?'f(x)=',str(1/(3-x),9,7) case x>=1

?'f(x)=',str(1/exp(x),9,7) otherwise

?'f(x)=',str(1/(2+x*x),9,7) endcase return

本文来源:https://www.bwwdw.com/article/h6w5.html

Top