专题七 过程(讲义)-《Visual Basic 程序设计》高考备考讲练测(内蒙古)

2025-10-29
| 12页
| 66人阅读
| 0人下载
精品

内容正文:

专题七 过程(讲义) ---《Visual Basic 程序设计》专题复习讲练测 [考纲要求] 1.事件过程 2.子过程 3.过程间参数的传递 4.过程的嵌套与递归 5.常用算法实例 [课时安排] 2课时 [知识梳理] 一:事件过程 1. 事件过程的运行机制 事件过程由VB自行声明,用户不能增加或删除。当用户对某个对象发出一个动作时,windows 会通知Vb产生了一个事件,VB会自动地调用与该事件相关的事件过程。 2. 事件过程的语法格式 (1)控件事件过程的语法格式 Private Sub<控件名>_<事件名>([形参表]) [语句组] End Sub (2) 窗体事件过程的语法格式 Private Sub Form_<事件名>([形参表]) [语句组] End Sub 二:子过程 过程是完成特定功能的一组程序代码,这组程序代码是由若干个语句构成的。在Visual Basic中,用户自定义过程分为两类,即子过程(Sub 过程)和函数过程(Function 过程)。 1. 子过程的语法格式 [Private|Public][Static] Sub 过程名 ( [形参表] ) [语句组] [Exit Sub] [语句组] End Sub 说明: (1) <过程名>命名与变量相同,仅为调用标识。 (2) <形参表> 类似于参数说明,指明从主过程传递给Sub子过程的个数和类型,各变量间用逗号分隔。 (3) Public: 缺省值。使用Public时表示所有模块的所有其他过程都可以调用该Sub过程。 (4) Private: 使用Private时表示只有本模块中的其他过程才可以调用该Sub过程。 (5) Static: 使用Static时表示将过程中的所有局部变量说明为静态变量。 (6) 最后一行End Sub是过程结束语句。过程首部与End Sub之间的语句称为过程体。过程体内可以用Exit Sub语句强制结束过程的执行。 2. 调用子过程 (1)格式1:Call Sub子过程名 [(实参表)] (2)格式2:Sub子过程名 实参表 说明: (1)<实参表>:可以是常量、变量或表达式,各参数之间用逗号分隔。 与Sub子过程定义中的形参类型和个数一般要求一致。 (2)用Call语句调用一个Sub子过程时,如果过程本身没有参数,则省略<实参表>和括号。格式二省略了Call关键字,同时<实参表>两边也不能带括号。 三:函数过程 函数过程也是用特定格式组织起来的一组代码。函数过程在调用结束时带回一个值,该值称为函数过程的返回值。这个值的类型称为函数过程的类型。 1. 语法格式 Function函数过程定义格式 [Public|Private][Static] Function 函数过程名([形参表]) [As 类型] [语句组] [Exit Function] [语句组] [函数过程名=返回值] End Function 说明: (1) 在函数过程体内至少对函数名赋值一次,来获得返回值(函数结果) (2) 函数值返回语句有两种形式:向函数名赋予表达式的值和通过Return返回表达式的值。 (3) 函数有返回值,以第一个语句最后的As <类型>指明返回值的数据类型,<类型>可以是任何VB.NET基本数据类型和用户定义类型; 2. 函数过程的调用 主过程调用Function函数过程语句:与内部函数方法一样 (1)格式1:变量名=函数过程名(参数表) (2)格式2:Print 函数过程名(参数表) 说明:其中函数过程名用标识符表示。实际参数表中的参数一般为常数、常量、变量等,更一般为表达式,它们必须在数目、类型和排列次序上与相应函数过程定义的形式参数表中参数一致。 3. 函数过程与子过程的异同 调用 Function函数过程 Sub子过程 不能独立成行,必须放在表达式中 独立的语句(单行) 变量名=函数名(参数表) Print 函数名(参数表) Call 过程名(参数表) 过程名 参数表 返回值 函数名有一个返回值,有类型;在函数体内至少赋值一次 子过程名不返回值,无类型,在子过程体内不能对子过程名赋值;(通过其参数返回值。) 一般过程有一个返回值时使用 一般过程无返回值,或有多个返回值时使用 四:过程间参数的传递 当调用子过程或函数过程时,先要进行参数的传递。具体一点讲,调用过程时要把需处理的原始数据传送给形式参数。另外,执行过程中的语句之后的计算或处理结果也需要传递回调用程序。主过程中的参数叫实参,被调用的过程中的参数叫形参。 过程的参数传递有两种方式:一种是值传递方式,其形式参数称为传值参数,采用这种方式的调用称为传值调用; 另一种是地址传递方式,其形式参数称为引用参数,采用这种方式的调用称为传址调用。 1. 传地址ByRef 当调用一个过程时,它将实参的地址传给形参。是默认的参数传递方法。形参得到的是实参的地址,形参值的改变同时也改变实参的值。 2. 传值ByVal 当调用一个过程时,系统将实参的值复制给形参,形参得到的是实参的值,形参值的改变不会影响实参的值。 五:过程的嵌套与递归调用 1. 过程的嵌套 在一个过程执行期间又调用另一个过程,称为过程的嵌套调用。 2. 递归 利用一个过程或一个函数自己调用自己,来完成程序,这种方法被称为递归。递归主要可以用来解决这样一些问题,如:求n!问题;求最小公倍数问题;排列组合问题;各种数列问题等。 (1)构成递归的结构如下: ①递归结束条件及结束时的值; ②能用递归形式表示,并且递归向终止条件发展。 [真题练讲] 1.假定已定义一个过程 public sub cir(a as integer,b as integer),则正确的调用语句是( ) A. call cir 3,8 B.call cir(3,8) C. call cir 2*x,y D.call cir (3,8,y) 【答案】B 【解析】使用 Call 关键字,并且参数用括号括起来。 2.下面程序段运行后的输出结果是( ) Private sub command1_click() Dim k as integer,m as integer,p as integer K=4 M=1 P=pid(k,m) print p End sub Private function pid(a as integer,b as integer) as integer Static m as integer,I as integer M=5 I=2 I=I+m+1 M=I+a+b pid =m/2 End function A.6 B.7 C.5 D.4 【答案】A 【解析】主过程中,k=4,m=1,调用函数pid(k, m),即传递实参a=4,b=1。函数中声明了静态变量m和i(静态变量只初始化一次,后续调用保留上次值)。 3.设有如下程序: Sub f(x As Integer, ByVal y As Integer) x=2*x y=y+x End Sub Private Sub Command1_Click() Dim a As Integer, b As Integer a=6:b=35 Call f(a, b) Print a, b End Sub 程序运行后,单击命令按钮Command1,输出结果为( )。 A.6 47 B.12 47 C.6 35 D.12 35 【答案】D 【解析】主过程中,a=6,b=35,调用子过程f(a, b),即传递参数x=a(按地址传递),y=b(按值传递,由ByVal指定)。 4.在Visual Basic中,实参与形参的结合有两种方法,即传值和____________。 【答案】传址 【解析】在 Visual Basic 中,实参与形参的结合方式有两种:传值(ByVal):将实参的值复制一份一份形参,形参的修改不会影响实参。传址(ByRef,默认方式):将实参的内存地址传递给形参,形参和实参指向同一块内存,形参的修改会同步影响实参。 5.求 s=1!+1/2!+1/3!+……1/10!请完善程序。 Private Sub command1_click() Dim s As single, i As Integer For i = 1 To 10 _______(1)_____________ Next i Print s End Sub Function fact(x As Integer) As single Dim p As Long, i As Integer p = 1 For i = 1 To x p = p * i Next i __________(2)_______________ End Function 【答案】 (1)s = s + fact(i) (2)fact = 1/p 【解析】程序的功能是计算数列1! + 1/2! + 1/3! + … + 1/10!的和,通过自定义函数fact计算阶乘的倒数,再在主过程中累加求和。 [限时练习] 1.以下关于过程及过程参数的描述中,错误的是( )。 A.过程的参数可以是控件名称 B.用数组作为过程的参数时,使用的是“传地址”方式 C.只有函数过程能够将过程中处理的信息传回到调用的程序中 D.窗体可以作为过程的参数 【答案】C 【解析】不仅函数过程可以返回信息(通过函数名),子过程(Sub)也可以通过 “传地址” 参数将处理结果传回调用程序。 2.使用过程编写程序主要是为了( )。 A.使程序模块化 B.使程序易于阅读 C.提高程序运行速度 D.便于系统的编译 【答案】A 【解析】在程序设计中,使用过程(如 Sub 过程、Function 函数)的主要目的是将复杂的程序分解为多个独立的、功能单一的模块。每个模块(过程)负责完成特定的任务,从而实现程序的模块化设计。 3.设有子过程Pro1,有一个虚参变量。下列调用语句中,按传址方式传递数据的语句是( )。 A.Call Pro1(a) B.Call Prol(12) C.Call Pro1(a*a) D.Call Prol(12+a) 【答案】A 【解析】在 Visual Basic 中,过程参数的传递方式默认是 “传址”(ByRef),但当实参为常量、表达式或函数时,会自动按 “传值”(ByVal)方式传递。 4.在窗体上添加一个命令按钮Command1和一个文本框Text1,然后编写如 下事件过程: Private Sub Command1_Click() Dim x As Integer, y As Integer, z As Integer x = 5 y = 7 z = 0 Text1.Text = "" Call p1(x, y, z) Text1.Text = Str(z) End Sub Private Sub p1(ByVal a As Integer, ByVal b As Integer, c As Integer) c = a + b End Sub 程序运行后,单击命令按钮得到的结果是( )。 A.12 B.0 C.Str(z) D.没有显示结果 【答案】A 【解析】主过程中,x=5,y=7,z=0,文本框Text1初始为空。调用子过程p1(x, y, z),传递参数:a = x(按值传递,ByVal),b = y(按值传递,ByVal),c = z(默认按地址传递)。 5.以下关于过程的叙述中,错误的是( )。 A.事件过程是由某个事件触发而执行的过程 B.函数过程可以有多个返回值 C.可以在事件过程中调用通用过程 D.不能在事件过程中定义函数过程 【答案】B 【解析】函数过程(Function)只能通过函数名返回一个值,无法直接返回多个值。若需返回多个结果,可通过传址参数(ByRef)实现。 6.在以下事件过程中,Private表示( )。 Private Sub txtName_Change() …… End Sub A. 此过程可以被任何其它过程调用 B. 此过程只可以被本窗体模块中的其它过程调用 C. 此过程不可以被任何其它过程调用 D. 此过程是一个不可用过程 【答案】B 【解析】Private过程的作用域限于本窗体模块,可被模块内其他过程调用。 7.窗体上有一个命令按钮Command1,编写如下事件过程: Sub fun(x As Integer) Static y As Integer y = y + 1 x = x + y End Sub Private Sub Command1_Click() Dim x As Integer x = 0 For i = 1 To 2 x = x + 1 Call fun(x) Print x; Next i End Sub 运行时,单击命令按钮,窗体将显示( )。 A.2 3 B.2 4 C.2 5 D.2 6 【答案】C 【解析】主过程中,x初始化为 0,循环变量i从 1 到 2,每次循环先执行x = x + 1,再调用fun(x),最后打印x的值。 8.阅读如下程序: Private Sub Command1_Click() Dim x, y%, z As Integer x = 6 y = 9 z = 0 Text1.Text = "" Call p1(x, y, z) Text1.Text = z End Sub Sub p1(ByVal a$, ByVal b$, c%) c = a + b End Sub 运行上面的程序,单击命令按钮Command1,则在文本框中显示的内容是( )。 A.0 B.15 C.69 D.程序出错 【答案】C 【解析】调用p1(x, y, z)时,实参x(数值 6)和y(数值 9)被传递给要求字符串类型的形参a和b,导致类型不匹配。 9.在Visual Basic中,设子程序过程定义的首部为:Public Sub m(X As Integer,Y As Single),则以下正确的调用形式为( ) A. Call m 5,4.2 B. Call Sub(5,4.2) C. Sub 5,4.2 D.m 5,4.2 【答案】D 【解析】使用Call语句时,实参必须用括号括起,格式为 Call 过程名(实参列表);省略Call时,直接写过程名和实参,实参不加分号,格式为 过程名 实参列表。 10.在Visual Basic中,调用Sub过程时,使用______语句,该语句用于把程序控制传送到一个Sub过程。 【答案】Call 【解析】在 Visual Basic 中,Call语句用于调用 Sub 过程,其作用是将程序的控制权转移到指定的 Sub 过程。调用格式为:Call 过程名(实参列表)。 [内容小结] 1.本章节关于过程调用的相关内容,关于过程调用的执行过程,可以利用流程图对本章知识点进行梳理总结。 2.本章节的重点在于过程的定义及调用的基本概念,如子过程和函数定义及调用。 3.本章节的难点在于在实际应用中,过程的使用以及参数传递的方式。 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

专题七 过程(讲义)-《Visual Basic 程序设计》高考备考讲练测(内蒙古)
1
专题七 过程(讲义)-《Visual Basic 程序设计》高考备考讲练测(内蒙古)
2
专题七 过程(讲义)-《Visual Basic 程序设计》高考备考讲练测(内蒙古)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。