函数与过程解读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章函数与过程
习题
一、判断题
1.函数过程与Sub过程必须用关键字Private或Public声明。
2.用关键字Public声明的过程可以被其他模块调用。
3.调用过程时的实参必须是与对应形参类型相同的表达式。
4.声明形参处缺省传递方式声明,则为按值传递(Byval)。
5.Sub过程中的语句Exit Sub,使控制返回到调用处。
6.Sub过程名在过程中必须被赋值。
7.用Public声明的数组是全局量。
8.过程中的静态变量是局部变量,当过程再次被执行时,它的值是上一次过程调用后的值。
二、填空题
1.数组名作过程实参,相应的形参传递方式为。
2.一维长整型数组a作过程形参写作“a() As Long”,二维长整型数组b作过程形参写作“”。
3.过程形参为整型,对应实参为5.64,传递给形参的值为。
4.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用(按值传递/按地址传递)方式。
5.调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用(按值传递/按地址传递)方式。
6.声明Single类型全局变量x,写作。
7.声明Integer类型静态变量x,写作。
8.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作。
三、程序阅读题(写出下列程序的运行结果)
程序1. 请写出单击窗体后,窗体上的显示结果。
Dim i As Integer,n As Integer
Private Sub Form_Click()
Dim i As Integer
For i = 1 To 3
s = sum(i): Print "s ="; s
Next i
End Sub
Private Function sum(n As Integer)
Static j As Integer
j = j + n + 1: sum = j
End Function
程序2. 请写出单击窗体、输入5后,窗体上的显示结果。
Private Sub Form_Click()
Dim i As Integer, j As Integer, m As Integer
m = InputBox("请输入数组的行、列数")
ReDim a(m, m) As Integer
Call P(a, m)
For i = 1 To m
For j = 1 To i: Print Tab(j * 3); a(i, j); : Next j
Next i
End Sub
Private Sub P( b() As Integer, n As Integer)
Dim i As Integer, j As Integer
For i = 1 To n
b(i, 1) = 1: b(i, i) = 1
Next i
For i = 3 To n
For j = 2 To i - 1
b(i, j) = b(i - 1, j - 1) + b(i - 1, j)
Next j,i
End Sub
程序3. 请写出单击窗体后,窗体上的显示结果。
Dim i As Integer, j As Integer, k As Integer, h As Integer Private Sub Form Click()
i = 0: j = 1: k = 2
Call q(1, i): Print i; j; k,
Call q(2, j): Print i; j; k,
Call q(3, k): Print i; j; k,
End Sub
Private Sub p(i)
i = i + 1: Print i; j; k,
End Sub
Private Sub q(ByVal h, j)
i = j
If h = 0 Then
Call p(j)
Else
If h = 1 Then Call p(i) Else j = j + 1
End If
End Sub
四、程序填空题
1.【程序说明】单击窗体后输出6~100之间所有整数的质数因子。
Private Sub pp( (1) k As Integer)
Dim i As Integer
i = 2
While k > 1
If (2) = 0 Then
Print i;
(3)
Else
i = i + 1
End If
Wend
End Sub
Private Sub Form_Click()
For i = 6 To 100 : (4) :Next i
End Sub
2.【程序说明】下列过程用选择法对double类型数组按值从小到大排序。Private Sub Sort( (1) )
Dim i As Integer, j As Integer, k As Integer, t As Double For i = 1 To (2)
k=i
For j = i + 1 To n
If (3) Then k = j
Next j
t=a(i): a(i)=a(k): a(k)=t
Next i
End Sub
3.【程序说明】下列过程用于求一元n-1次代数多项式的值。
Private Function f( (1) , x As Double) As Double
Dim s As Double, i As Integer, t As Double