77范文网 - 专业文章范例文档资料分享平台

第06章 模块化程序设计(5)

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

x = 2 * x y = 3 * y End Sub

(A) A=1 B=2 (B) A=1 B=2 (C) A=1 B=2 (D) A=1 B=2 A=1 B=2 A=1 B=2 A=2 B=6 A=2 B=2 9.假定有如下通用过程:

Public Sub fun(a(), ByVal x As Integer) For i = 1 To 5 x = x + a(i) Next i End Sub

在窗体上添加一个命令按钮和一个文本框,然后编写如下事件过程: Private Sub Command1_Click() Dim arr(5) As Variant For i = 1 To 5 arr(i) = i Next i n = 10

Call fun(arr(), n) Text1.Text = n End Sub

程序运行时,单击命令按钮,则文本框中显示内容是 。 (A) 10 (B) 15 (C) 25 (D) 24 10.以下程序段的运行结果是 。

Private Sub Form_Click() Dim nx% nx = 3

Call abcd(nx) Print nx End Sub

Public Sub abcd(n As Integer) n = n + 5 End Sub

(A) 3 (B) 5 (C) 8 (D) 10

11.一个工程中包含两个名称分别为Form1和Form2的窗体,一个名称为mdlfunc的标准模块。假定Form1,Form2和mdlfunc中分别建立了自定义过程,其定义格式为:

Form1中定义的过程: Private sub frmFunction1() … End Sub

Form2中定义的过程: Pubilc sub frmFunction2() … End Sub

-159-

Md1func中定义的过程: Public sub md1Function () … End Sub

在调用上述过程的程序时,若不指明窗体或模块名称,则以下叙述中正确的是 。 (A) 上述三个过程都可以在工程中的任何窗体或模块中被调用

(B) frmFunction2和md1Function过程能够在工程中各个窗体或模块中被调用 (C) 上述三个过程都只能在各自被定义的模块中调用

(D) 只有md1Function过程能够被工程中各个窗体或模块调用 12.以下程序段的运行结果是 。

Function abc(n As Integer) As Integer abc = n * 2 + 1 End Function

Private Sub Form_Click() Dim x As Integer x = abc(3) * abc(4) Print x End Sub

(A) 63 (B) 0 (C) 1 (D) 空 13.以下程序段的运行结果是 。

Private Sub Form_Click() Dim x As Integer x = 4 Print x; Call test(x) Print x End Sub

Public Sub test(ByVal i As Integer) i = i + 1 End Sub

(A) 4 6 (B) 4 4 (C) 4 5 (D) 5 4

14.要想从过程调用后通过参数返回两个结果,下面过程说明合法的是 。

(A) Sub f2(ByVal n%,ByVal m%) (B) Sub f1(n%,ByVal m%) (C) Sub f1(n%,m%) (D) Sub f1(ByVal n%,m%) 15.下面过程运行后显示的结果是 。

Public Sub F1(ByVal n%, m%) Private Sub Command1_Click() n=n Mod 10 Dim x%,y% m=m\\10 x=12:y=34 End Sub Call F1(x,y) Print x,y End Sub

(A) 2 34 (B) 12 34 (C) 2 3 (D) 12 3 16.下列叙述错误的是 。

(A) Sub过程可以递归调用

-160-

(B) Sub过程不可以由其过程名返回结果值 (C) 表达式中可以调用Function过程 (D) 表达式中可以调用Sub过程

17.以下关于过程及过程参数的描述中,错误的是 。

(A) 过程的参数可以是控件名称 (B) 过程的参数可以是窗体

(C) 只有函数过程能够将过程中处理的信息传回到调用的程序中 (D) 用数组作为过程的参数时,使用的是\传地址\方式

18.模块中采用以下方式定义的过程,能被其它模块调用的是 。

(A) Private Sub S1() (B) Public Sub S2() (C) Private Function F1() (D) 均不能被其它模块调用

19.为了在同一模块中的不同过程之间互相传递数据,下述方法中错误的是 。

(A) 利用全局变量

(B) 利用传地址方式的变量作为过程参数 (C) 利用静态变量 (D) 利用模块级变量

20.在窗体模块的声明段中声明变量时,不能使用的关键字是 。

(A) Private (B) Public (C) Dim (D) Static 21.以下叙述中错误的是 。

(A) 打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件 (B) 保存Visual Basic程序时,应分别保存窗体文件及工程文件 (C) Visual Basic应用程序只能以解释方式执行 (D) 事件可以由用户引发,也可以由系统引发

22.在窗体上画一个名称为Command1的命令按钮,并编写如下程序:

Private Sub Command1_Click() Dim x As Integer Static y As Integer x=10 y=5

Call f1(x,y) Print x,y End Sub

Private Sub f1(ByRef x1 As Integer, ByVal y1 As Integer) x1=x1+2 y1=y1+2 End Sub

程序运行后,单击命令按钮,在窗体上显示的内容是 。 (A) 10 5 (B) 12 5 (C) 10 7 (D) 12 7

23.设一个工程由两个窗体组成,其名称分别为Form1和Form2,在Form1上有一个名称为Command1的命令按钮。窗体Form1的程序代码如下:

Private Sub Command1_Click() Dim a As Integer

-161-

a=10

Call g(Form2,a) End Sub

Private Sub g(f As Form,x As Integer) f.Show

f.Caption=IIf(x>10,\End Sub

运行以上程序,正确的结果是 。 (A) Form1的Caption属性值为\(B) Form2的Caption属性值为\(C) Form1的Caption属性值为\(D) Form2的Caption属性值为\二、简答题

1. Sub过程和Function过程的异同点是什么? 2. 值传递与地址传递特点是什么?如何选择?

3. 在VB中,形参若是数组,问在过程体内如何表示其数组的上、下界?

4. 在Form1窗体通用声明部分声明的变量,可否在Form2窗体中的过程被访问? 5. 为了使某变量在所有的窗体中都能使用,应在何处声明该变量? 6. 在同一模块、不同过程中声明的相同变量名,两者是否表示一个变量?有没有联系? 三、编程题

1.自定义一个与VB内部函数Abs功能完全相同的函数过程MyAbs,要求函数过程中不能调用VB内部函数Abs。

2.编写程序,求S=A!+B!+C!,阶乘的计算分别用Sub过程和Function过程两种方法实现。

3.编写函数过程Gdc求两个数的最大公约数。调用此函数试求1260、198、72三个数的最大公约数。

4.编写一个产生随机整数过程,输出n个指定范围的随机整数。 5.编写过程求M*M方阵两个对角线元素之和。

6.编写判断一个整数是否为素数的过程,并调用该过程输出100~200之间所有素数。 7.编程输出10000~99999之间的全部回文式素数。

8.有一个数列前两项为1,从第三项开始,每一项均为前两项之和,求这个数列的第20个数,用递归实现。

9.思考将本章所有Sub过程用Funtion过程如何实现,而Function过程又如何用Sub过程实现呢?

-162-

实习指导

1.实习目的

(1) 通过实习理解过程基本概念;

(2) 创建过程的作用、方法和过程调用方法; (3) 理解Sub过程和Function过程的异同;

(4) 掌握过程调用时参数传递的两种方式及特点; (5) 理解过程、变量的作用域;

(6) 具备使用过程编写简单程序的能力; (7) 理解递归的概念及编程方法特点。

2.实习内容

(1)验证教材所有例题,理解过程中形参的类型、作用,并将例1、3、5、6、10-14题中涉及到的过程,仿照下面给出的示例写出相关信息。

示例:下面给出求N!的Function过程和Sub过程,过程名分别为funfact和subfact。 Function过程代码为:

Function funfact(ByVal n As Integer) As Double Dim f#, i% f = 1

For i = 2 To n f = f * i Next i funfact = f End Function 相关信息描述如下:

过 程 名:funfact 类 型:函数过程

参数说明:参数n为值参数,类型为整型,因为只能为整型数求阶乘 传出结果:通过函数名funfact返回结果

结果类型:双精度型,因为双精度型表示的数的范围最大 Sub过程代码为:

Sub subfact(ByVal n As Integer, f As Double) Dim i% f = 1

For i = 2 To n f = f * i Next i End Sub

相关信息描述如下:

-163-

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第06章 模块化程序设计(5)在线全文阅读。

第06章 模块化程序设计(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/607688.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: