1、VB第+7课函数过程练习答案第6章 过程与函数一、填空题 1数组名作为过程或函数实参,相应的形参传递方式为_ _。2一维长整型数组a作过程形参写作:a() As Long,二维长整型数组b作过程形参写作:_ _。 3过程形参为整型,对应实参为5.64,传递给形参的值为_。 4调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用_ _方式。 5调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用_ _方式。 6声明Single类型全局变量x,写作_ _;声明Integer类型静态变量x,写作_ _。 7在窗体Form1的过程中引用窗体Form2中的全局变量y,写作_ _。 8阅
2、读如下代码,单击窗体后,窗体上的显示结果为_ _。 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 二、选择题 1.VB程序设计语言中,函数过程与子过程必须分别用关键字( )声明。 (A)Private,Pu
3、blic (B)Public,Private (C)Function, Sub (D)Sub, Function 2.要调用一个已经定义好的函数myfunction( ),用语句的方式调用函数,下列写法哪个是正确的( )(A)Call myfunction (B)myFunction (C)myFunction ( ) (D)Call myFunction( ) 3.定义过程时,如果在过程名前加关键字Private,则该过程为( )。 (A)它是私有过程,仅在定义该过程的模块内有效,模块内的过程可以调用该过程 (B)它是公有过程,在整个工程内有效,模块外的过程可以调用该过程 (C)它是私有过程
4、,在整个工程内有效,模块外的过程可以调用该过程 (D)它是公有过程,仅在定义该过程的模块内有效,模块内的过程可以调用该过程 4.在过程中用Dim保留字定义的变量是( ) (A)全局变量 (B)局部变量 (C)静态变量 (D)以上都不是 5.防止递归函数进入死锁的机制是( )(A)在适当的条件下返回 (B)通过Stop语句终止递归调用 (C)通过End语句终止递归函数 (D)不需要返回 6.关于函数与子程序的关系,下面说法正确的是( ) (A) 函数执行完后将得到一个返回值,而子程序只是执行一系列动作 (B) 函数可以不带参数,而子程序必须带参数 (C) 在函数中只用到传地址的方式,而子程序只能
5、用到传值方式 (D)子程序可以被其他子程序调用,而函数不能被其他函数调用 7.Visual Basic 6.0 中缺省的参数传递机制是( ) (A) 传值 (B) 传址 (C) 传值和传地址 (D)从实参到形参 8.使用( )语句可以实现过程的特殊出口。 (A) Public Sub/Function (B) Call 过程名 (C) Exit Sub/Function (D)Private Sub/Function 三、思考题 1.静态变量和动态变量的区别是什么? 2.函数过程与子程序过程有什么区别? 3.子过程调用有哪几种形式? 4.什么是形参?什么是实参?什么是值引用?什么是地址引用?对
6、应的实参有没有限制? 5.怎样引用其他模块的过程和变量? 6.编制通用函数过程,计算Double类型一维数组所有元素的平均值。 7.编制通用Sub过程,将Single类型一维数组反序排放(如实参数组元素依次为6、5、9、7,调用后为7、9、5、6;若为-3.2、4、2.6、31、7.3,调用后为7.3、31、2.6、4、-3.2)。 8编制通用Sub过程,在一个m行n列二维数组中查找绝对值最大的元素,以及该元素的行号、列号(提示:Sub过程的形参列表如x() As Single, m As byte, n As Byte, xmax As Single,ki As Byte,kj As Byt
7、e)。 9.输出100300间的素数,要求:(1) 用函数判断素数。(2) 每行输出10个数。10 设计一个将一维数组按降序排列的子过程(假设数据个数不知道),然后编程:(1) 自动产生并输出100个100,999间的正整数,并要求每行输出10个数据。(2) 调用该过程对数据按降序排列后再按每行10个输出。1 按地址传递2. b() As Long 3. 6 4. 按值传递 5. 按地址传递6. Public x As Single(或 Public x!) 、 Static x As Integer (或 Static x%) 7. Form2.y 8. s = 2 s = 5 s = 9
8、2 选择题:1.C 2.D 3.A 4.B 5.A 6.A 7.B 8.C6-3-7解答:Private Sub Form_Click()Dim a() As SingleReDim a(10)Print 反序前:For i = 1 To 10 a(i) = Rnd * 201 - 100 Print Format(a(i), #.# );Next iPrintCall inver(a(), 10)Print 反序后:For i = 1 To 10Print Format(a(i), #.# );Next iPrintEnd SubPrivate Sub inver(a() As Single
9、, n As Integer) Dim i As Integer, t As Single For i = 1 To n 2 t = a(n - i + 1) a(n - i + 1) = a(i) a(i) = t Next iEnd Sub6-3-8解答:6-3-9解答:Private Sub Form_Click()s = 0For i = 100 To 300 If prime(i) Then Print i;: s = s + 1 If s Mod 10 = 0 Then Print End IfNext iEnd SubPrivate Function prime(x) As Bo
10、olean If x 2 Then prime = False Exit Function End If k = Sqr(x) For i = 2 To k If x Mod i = 0 Then prime = False Exit Function End If Next prime = TrueEnd Function6-3-10解答:Private Sub Form_Click() Dim i As Integer, n As Integer Dim a(100) As Integer Print 排序前: For i = 1 To 100 a(i) = Int(900 * Rnd()
11、 + 100) Print a(i); If i Mod 10 = 0 Then Print Next i Print Print 排序后: Call ss(a(), 100) For i = 1 To 100 Print a(i); If i Mod 10 = 0 Then Print Next iEnd SubPrivate Sub ss(a() As Integer, n As Integer) For i = 1 To n - 1 For j = i + 1 To n If a(i) a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Next iEnd Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1