ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:98.50KB ,
资源ID:500113      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-500113.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级VB机试(过程)模拟试卷2及答案与解析.doc)为本站会员(jobexamine331)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级VB机试(过程)模拟试卷2及答案与解析.doc

1、国家二级 VB机试(过程)模拟试卷 2及答案与解析 一、选择题 1 以下关于 VB特点的叙述中,错误的是 ( )。 ( A) VB采用事件驱动的编程机制 ( B) VB程序能够以解释方式运行 ( C) VB程序能够以编译方式运行 ( D) VB程序总是从 Form_load事件过程开始执行 2 如果把程序的启动对象设置为 Sub Main,则 Sub Main过程 ( )。 ( A)只能写在 Form1 窗体中代码的最前面 ( B)可以写在 Form1窗体中代码的任何位置 ( C)只能写在某个标准模块的代码中 ( D)可以写在任何窗体或标准模块的代码中 3 设窗体上有 3个图像框: Image

2、1、 Image2、 Image3,并有下面的程序代码: Private Sub Form_Load() Image1 Picture=LoadPicture(“LEAF bmp“) Image2 Picture=LoadPicture(“OPEN bmp“) Image3 Visible=False End Sub Private Sub Image1_Click() Image2 Picture=Image1 Picture End Sub Private Sub Image2_Click() Image3 Picture=Image2 Picture Image2 Picture=Ima

3、ge1 Picture Image1 Picture=Image3 Picture End Sub 在程序运行期间单击 Image2,则在窗体上看到的结果是 ( )。 ( A)在 Image3中显示 Image2中的图片 ( B) nnage1,ImageZ中原有图片被交换了 ( C) Image1、 Image2 中都是原来 Imegel中的图片 ( D) Image1、 Image2 中都是原来 Imege2中的图片 4 以下过程定义中正确的过程首行是 ( )。 ( A) Private Sub Proe(Optional a as Integer, b as Integer) ( B)

4、Private Sub Proc(a as Integer)as Integer ( C) Private Sub Proc(a()As Integer) ( D) Private Sub Proc(ByVal a()As Integer) 5 以下过程的功能是从数组中寻找最大值: Private Sub FindMax(a()As Integer, ByRef Max As Integer) Dim s As Integer, f As Integer Dim i As Integer s=LBound(a) f=UBound(a) Max=a(s) For i=s To f If a(i)

5、 Max Then Max=a(i) Next End Sub 以下关于上述过程的叙述中,错误的是 ( )。 ( A)语句 Call FindMax(a, m)可以调用该过程,其中的 a是数组, m是 Integer类型变量 ( B) For循环次数等于 a数组的元素数 ( C)过程末尾应该增加一条返回最大值的语句 FindMax=Max ( D)参数 Max用于存放找到的最大值 6 设有如下 Command1按钮的单击事件过程及 fun过程: Private Sub Command1_Cliek() Dim x As Integer x=Val(InputBox(“请输入一个整数 “) fu

6、n(x) End Sub Private Sub fun(x As Integer) If x Mod 2=0 Then fun(x 2) Print x; End Sub 执行上述程序,输入 6,结果是 ( )。 ( A) 3 6 ( B) 6 3 ( C) 6 ( D)程序死循环 7 窗体上有一个名称为 Commd1的命令按钮,并有如下程序代码: Option Base 1 Private Sub Commd1_Click() Dim a(4, 4)As Integer Dim b As Integer Dim i As Integer, j As Integer For i=1 To 4

7、 For j=1 T0 4 a(i, j)=i+j Next j Next i Call f(a, b) Print b End Sub Private Sub f(x()As Integer, ByRef y As Integer) y=0 For i=1 To 4 y=y+x(i, i) Next End Sub 运行程序,单击命令按钮后,窗体上显示的是 ( )。 ( A) 0 ( B) 2 ( C) 8 ( D) 20 8 设子程序过程定义的首 部为: Publie Sub S(X A暑 Imeger, Y As Single) 则以下正确的调用形式为 ( )。 ( A) Call S

8、5, 4 8 ( B) Call Sub(5, 4 8) ( C) Sub 5, 4 8 ( D) S 5, 4 8 9 阅读程序: Option Base 1 Sub P(b()As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Form_Click() Dim a(4) As Integer For i=1 To 4 a(i) =i +4 Next i P a For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击窗体,输出结果为 ( )。 ( A) 2 4 6 8 ( B)

9、5 6 7 8 ( C) 10 12 14 16 ( D) 4 8 12 10 设有以下过程: Private Sub proc(x As Integer, Optional y As Integer) Print x, y End Sub 针对此过程,下面正确的过程调用语句是 ( )。 ( A) Call proc(a!, 23) ( B) Call proc x, 12 ( C) proc b ( D) x=proc(12) 11 以下说法中正确的是 ( )。 ( A)事件过程也是过程,只能由其他过程调用 ( B)事件过程的过程名是由程序设计者命名的 ( C)事件过程通常 放在标准模块中

10、( D)事件过程是用来处理由用户操作或系统激发的事件的代码 12 设窗体名称为 frm1。以下叙述中正确的是 ( )。 ( A)运行程序时,能够加载窗体的事件过程是 frm1_Load ( B)运行程序时,能够加载窗体的事件过程是 Form1L0ad ( C)程序运行中用语句 frm1 Name=“New“可以更改窗体名称 ( D)程序运行中用语句 frm1 Caption=“新标题 “可以改变窗体的标题 13 窗体上有一个名称为 Command1的命令按钮,一个名称为 Text1的文本框。编写如下程序: Private Sub Command1_Click() Dim x As Intege

11、r x=Val(InputBox(“输入数据 “) Text1=str(x+fun(x)+fun(x) End Sub Private Function fun(ByRef n As Integer) If n Mod 3=0 Then n=n+n Else n=n * n End If fun=n End Function 对于上述程序,以下叙述中错误的是 ( )。 ( A)语句 fun=n有错,因为 n是整型, fun没有定义类型 ( B)运行程序,输入值为 5时,文本框中显示 655 ( C)运行程序,输入值为 6时,文本框中显示 42 ( D) ByRef表示参数按址传递 14 在窗体

12、上画一个命令按钮和一个文本框,其名称分别为 Command1和 Text1,然后编写如下程序: Function Fun(x As Integer, y As Integer)As Integer Fun=IIf(x y, x, y) End Function Private Sub Form_Load() Command1 Default=Tme End Sub Private Sub Command1_Click() Dim a As Integer b As Integer a=20 b=12 Text1 Text=Str(Fun(a, (b) End Sub 程序运行后,按 Enter

13、键,文本框中显示的内容为 ( )。 ( A) 12 ( B) 20 ( C) 24 ( D) 40 15 以下关于函数过程的叙述中,正确的是 ( )。 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 16 下面是求最大公约数的函数的首部: Function ged(ByVal x As Integer, ByVal y As Integer)As Integer 若要输出 8、 12、 16这 3个数的最大公

14、约数,下面正确的语句是 ( )。 ( A) Print gcd(8, 12), gcd(12, 16), gcd(16, 8) ( B) Print gcd(8, 12, 16) ( C) Print ged(8), ged(12), god(16) ( D) Print gcd(8, ged(12, 16) 17 求 1! +2! +10 !的程序如下: Private Function s(x As Integer) f=1 For i=1 To x f=f*i Next s=f End Function Prirate Sub Command1_Click() Dim i As Inte

15、ger Dim y As Long For i=1 To 10 _ Next Print y End Sub 为实现功能要求,程序的横线处应该填入的内容是 ( )。 ( A) Call s(i) ( B) Call s ( C) y=y+s(i) ( D) y=y+s 18 假定有以下通用过程: Function Fun(n As Integer)As Integer x=n * n Fun=x-11 End Function 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程。 Prirate Sub Command1_Click() Dim i As Integer

16、For i=1 To 2 y=Fun(i) Print y; Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是 ( )。 ( A) 1 3 ( B) 10 8 ( C) -10 -7 ( D) 0 5 19 在窗体上画一个命令按钮 (名称为 Command1),并编写如下代码: Function Fun1(ByVal a As Integer, b As Integer)As Integer Dim t As Integer t=a-b b=t+a Funl=t+b End Function Private Sub Command1_Click() Dim x As

17、 Integer x=10 Print Fun1(Fun1(x, (Fun1(x, x-1), x-1) End Sub 程序运行后, 单击命令按钮,输出结果是 ( )。 ( A) 10 ( B) 0 ( C) 11 ( D) 21 20 窗体上有一个名称为 Command1的命令按钮,其单击事件过程及相关的函数过程如下: Private Sub Command1_Click() Dim i As Integer For i=1 To 500 If p(i)Then s=s+1 Next Print s End Sub Private Function P(x As Integer)As Bo

18、olean If x Mod 7 0 Then p=True Else p=False End If End Function 关于上述程序,以下叙述中正确的是 ( )。 ( A)程序功能是统计 1 500范围内能被 7整除的整数个数 ( B) Command1_Click事件过程中 If语句的条件表达式不完整 ( C) Function过程定义有误 ,函数过程 p的名称与该过程中的变量名 p相同 ( D)函数过程 p的返回值为 Boolean类型 21 窗体上有一个名称为 Command1的命令按钮,其单击事件过程及相关的代码如下: Private Sub Command1_Click()

19、Dim x As Integer, y As Integer x=Val(InputBox(“输入整数 “) y=Val(InputBox(“输入整数 “) Print sty(flun(x, y) +x+y) End Sub Private Function fun(ByRd m As Integer, ByVal n As Integer) m=m * m n=n+n fun=m+n End Function 运行程序,单击命令按钮时,出现输入对话框,分别输入 3、 5,则窗体上显示的是 ( )。 ( A) 27 ( B) 28 ( C) 33 ( D) 38 22 某人编写了下面的程序:

20、 Private Sub Command1=1_Click() Dim a As Integer, b As Integer a=InputBox(“请输入整数 “) b=InputBox(“请输入整数 “) pro a pro b Call pro(a+b) End Sub Private Sub pro(n As Integer) While(n 0) Print n Mod 10; n=n 10 Wend Print End Sub 此程序功能是:输入 2个正整数,反序输出这 2个数的每一位数字,再反序输出这 2个数之和的每一位数字。例如:若输入 123和 234,则应该输出: 3 2

21、1 4 3 2 7 5 3 但调试时发现只输出了前 2行 (即 2个数的反序 ),而未输出第 3行 (即 2个数之和的反序 ),程序需要修改。下面的修改方案中正确的是 ( )。 ( A)把过程 pro的形式参数 n As Integer改为 ByVal n As Integer ( B)把 Call pro(a+b)改为 pro a+b ( C)把 n=n 10改为 n=n 10 ( D)在 pro b语句之后增加语句 c =a+b,再把 Call pro(a+b)改为 pro c 23 命令按钮 Command1的单击事件过程如下: Private Sub Command1_Click()

22、x=10 Print f(x) End Sub Private Function f(y As Integer) f=y * y End Function 运行上述程 序,如下叙述中正确的是 ( )。 ( A)程序运行出错, x变量的类型与函数参数的类型不符 ( B)在窗体上显示 10 ( C)函数定义错,函数名 f不能又作为变量名 ( D)在窗体上显示 10 24 编写如下程序: Private Sub Command1_Click() Dim x As Integer, y As Integer x=InputBox(“输入第一个数 “) y=InputBox(“输入第二个数 “) Cal

23、l f(x, y) Print x, y End Sub Sub f(a As Integer, ByVal b As Integer) a=a*2 x=a+b b=b+100 End Sub 程序运行后,单击命令按钮 Command1,并输入数值 10和 15,则输出结果为( )。 ( A) 10 115 ( B) 20 115 ( C) 35 15 ( D) 20 15 25 窗体上有一个名称为 Command1的命令按 钮,并有如下程序代码: Private Sub Command1_Click() Static a a=1: b=2: c=3 Call f(a, b, c) Print

24、 a; b; c End Sub Sub f(ByVal x, ByRef y, z) x=x+1 y=y+1 z=z+1 End Sub 运行程序,单击命令按钮,窗体上显示的是 ( )。 ( A) 1 3 3 ( B) 1 3 4 ( C) 2 3 3 ( D) 2 3 4 26 以下关于过程的叙述中,错误的是 ( )。 ( A)在 Sub过程中不能再定义 Sub过程 ( B)事件过程也是 Sub过程 ( C)过程调用语句的形参个数必须与实参个数相同 ( D)函数过程一定有返回值 27 窗体上有一个名称为 Command1的命令按钮,其单击事件过程如下: Private Sub Comrna

25、nd1_Click() Dim x As Integer, y As Integer Static z As,Integer x=3: y=5: z=y Call f(x, y, z) Print x; y; z End Sub Private Sub f(ByVal a As Integer, ByRef b As Integer, c As Integer) a=a+a: b=b+b: c=c+c End Sub 运行程序,单击命令按钮时, 3个标签中显示的内容分别是 ( )。 ( A) 3, 5, 5 ( B) 3, 5, 10 ( C) 3, 10, 5 ( D) 3, 10, 10

26、28 设有如下程序: Private Sub sV(ByVal in As Integer, 11 As Integer) m=m*2 n=n-5 Print m; n End Sub Private Sub Form_Click() Dim x As Integer, y As Integer x=10 y=15 sV x, Y Print x; y End Sub 运行程序,单击窗体,输出结果为 ( )。 ( A) 20 10 10 10 ( B) 10 15 20 10 ( C) 20 15 10 15 ( D) 20 10 20 10 29 以下关于过程及过程参数的描述中,错误的是 (

27、 )。 ( A)调用过程时可以用控件名称作为实际参数 ( B)用数组作为过程的参数时,使用的是 “传地址 ”方式 ( C)只有函数过程能够将过程中处理的信息传回到调用的程序中 ( D)窗体 (Form)可以作为过程的参数 30 以下关于过程及过程参数的描述中,错误的是 ( )。 ( A)过程的参数可以是控件名称 ( B)调用过程时使用的实参的个数应与过程形参的个数相同 (假定不含可变参数 ) ( C)只有函数过程能够将过程中处理的信息返回到调用程序中 ( D)窗体可以作为过程的参数 31 为了通过传值方式来传送过程参数,在函数声明部分应使用的关键字为 ( )。 ( A) Value ( B)

28、ByVal ( C) ByRef ( D) Reference 32 窗体上有一个名称为 Picture1的图片框控件,一个名称为 Label1 的标签控件,如图所示。 现有如下程序: Public Sub display(x As Control) If TypeOf x Is Label Then x Caption=“计算机等级考试 “ Else xPicture=LoadPicture(“pic jPg“) End IfEnd SubPrivate Sub Label1_Click() Call display(Label1)End SubPrivate Sub Picture1_Cl

29、ick() Call display(Pieture1)End Sub对以上程序,下列叙述中错误的是 ( )。 ( A)程序运行时会出错 ( B)单击图片框,在图片框中显示一幅图片 ( C)过程中的 x是控件变量 ( D)单击标签,在标签中显示一串文字 33 在窗体上画两个标签和一个命令按钮,其名称分别为 Labdl1、 Label2和Command1,然后编写如下程序: Private Sub func(L As Label) L Caption=“1234“ End Sub Private Sub Form_Load() Label1 Caption=“ABCDE“ Lbel2 Capti

30、on=10 End Sub Private Sub Command1_Click() a=Val(Label2 Caption) Call func(Label1) LabeLl Caption=a End Sub 程序运行后,单击命令按钮,则在两个标签中显示的内容分别为 ( )。 ( A) ABCD和 10 ( B) 1234和 100 ( C) ABCD和 100 ( D) 1234和 10 国家二级 VB机试(过程)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 在一般情况下,整个应用程序从设计时的第一个窗体开始执行,需要首先执行的程序代码放在 Form Load

31、 事件过程中。如果需要从其他窗体开始执行应用程序,则可通过 “工程 ”菜单中的 “工程属性 ”命令 (“通用 ”选项卡 )指定启动窗体。但是,如果有 Sub Main 过程,则可以 (注意,是 “可以 ”,而不是 “必须 ”)首先执行 Sub Main过程。 【知识模块】 过程 2 【正确答案】 C 【试题解析】 在运行窗体程序之前先执行一些操作,此时可以通过在标准模块中创建一个 Sub Main的子过程,不能在窗体模块中创建 Sub Main的子过程,然后在创建的 SubMain过程中编写启动时要执行的代码,每个工程只能有一个 Sub Main 的子过程。 【知识模块】 过程 3 【正确答案

32、】 B 【试题解析】 Form_Load 过程执行在图相框里载入相应图片。单击 Image2时,激发 Image2_Click 事件,在事件中图片进行 了交换。选 B。 【知识模块】 过程 4 【正确答案】 C 【试题解析】 A选项错误原因: Sub 过程的第 1个参数 a用 Optiona1 关键字声明,说明为可选参数,那么后面的参数 b也必须是可选参数,用 Optiona1声明。B 选项错误原因: Sub过程无返回值,不用指明返回值数据类型。 D选项错误原因:可以用 ByVal 关键字声明变量,不能声明数组。 C选项正确。 【知识模块】 过程 5 【正确答案】 C 【试题解析】 过程定义语

33、句中第 1个参数是数组,调用是实参应该是一个数组变量或元素,第 2个参数是整型变量。过程中 LBound函数获取了数组下标的下限, UBound函数获取了数组下标的上限,在 For i=s to f 语句的循环中就可以访问数组中的各个元素。本过程是用 Sub 定义的过程不需要返回值。程序中找到的最大值由参数 Max返回,因为它是按址传递的参数,它的值会带给实参。因此 C选项的说法错误。 【知识模块】 过程 6 【正确答案】 A 【试题解析】 题目中 fun过程是一个递归过程,它的结束条件是参数值为奇数。第一次调用,参数值为 6,是偶数所再次调用 fun 过程,这次参数为 6 2=3,是奇数,不

34、再调用自身,接着执行下一句输出参数值,即 3,然后返回第一次调用过程中执行下一句输出第一次调用参数值,即 6。因此程序会输出 3 6。 【知识模块】 过程 7 【正确答案】 D 【试题解析】 Command1_Click()事件中通过嵌套循环给数组 a元素赋初值,执行完后 a(1, 1)=2, a(2, 2)=4, a(3, 3)=6, a(4, 4)=8; Call f(a, b)语句调用子函数 Sub f(x()As Integer, ByRef y As Integer)。该函数内 For循环把 a数组中一 维下标和二维下标相同的元素值相加,值为 20,选 D。 【知识模块】 过程 8

35、【正确答案】 D 【试题解析】 (1)用 Call语句调用 Sub过程。语法: Call过程名 (实参表列 ),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。 (2)把过程名作为一个语句来用。语法:过程名 实参 1,实参2 ,它与 (1)的不同点是去掉了关键字和实参列表的括号。 【知识模块】 过程 9 【正确答案】 A 【试题解析】 Form_Click 过程中首先对 a数 组用 For循环赋值。然后调用过程P。注意 P参数传递是引用传递,因此数组 a的元素值在执行 P过程后会被改变。之后的 For会输出变量值是过程 P中对数组元素的赋值。选 A。 【知识

36、模块】 过程 10 【正确答案】 C 【试题解析】 (1)用 Call语句调用 Sub过程:语法: Call过程名 (实参表列 ),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。 (2)把过程名作为一个语句来用:语法:过程名 实参 1,实参2 ,它与 (1)的不同点是:去掉了关键字和实参列表的 括号。根据题意,选项 C正确。 【知识模块】 过程 11 【正确答案】 D 【试题解析】 事件过程也是过程,其他过程或系统都可以调用它。故 A选项错误。 事件过程的过程名是由系统命名的。故 B 选项错误。 通常事件过程放在窗体模块中。故 C选项错误。 事件过程是用来

37、处理由用户操作或系统激发的事件的代码。只有当用户或系统触发事件后,才执行相应的事件过程。故 D选项正确。 【知识模块】 过程 12 【正确答案】 D 【试题解析】 一个控件的事件过程由控件的实际名字 (Name属性 )、下画线和事件名称组成,而窗体事件过程由 “Form”、下画线和事件名组成。因此,不管窗体名称是什么,窗体加载事件过程总是 Form_Load。窗体的名称即 Name属性在程序运行时不可以更改,窗体的标题即 Caption属性则可以在程序运行时更改。 【知识模块】 过程 13 【正确答案】 A 【试题解析】 过程 fun 的功能是将传入的值运算后返回,当传入数值为 3的整数倍时返

38、回该值的 2倍,否则返回该值的平方。过程 fun的参数指定为 ByRef 方式,即按址传递,因此会影响实参的值。 Str函数是 将数值转换为字符串。过程fun定义时没有指明返回类型,因此默认为 Variant类型,它可以表示任何值,因此 A选项的说法不正确。 【知识模块】 过程 14 【正确答案】 A 【试题解析】 Form_Load()过程中, Command1 获得焦点。当按 Enter键时,触发 Command1_Click()事件。该事件中给定 a和 b 的值,并调用函数 Fun。函数Fun 返回整型数据。 IIf(x y, x, y)表示的意思是 x y成立时,返回 x,否则返回 y

39、。函数调用时传过来的参数是 x=20, y=12。因此 IIf(x y, x, y)返回的值是12。选 A。 【知识模块】 过程 15 【正确答案】 A 【试题解析】 定义函数过程的格式: Function 函数过程名 (形参表 )As函数返回值的数据类型函数过程名 =表达式 End Function 说明: 形参的类型可以是任何数据类型,函数返回值的类型是调用函数后返回的数据类型,它们没有关系,互不影响。故选项 A正确。 选项 B错误的原因是函数过程中可以有多个 “函数过程名 =表达式 ”这样的语句,但是最终函数只能有一个返回值 。如果省略这条语句,函数过程则返回一个默认值,数值函数过程返回

40、 0,字符串函数过程返回空字符串。 选项 C错误的原因是数组作为函数过程的参数时,这时数组名看作是一个符号地址,实参和形参之间传递的是地址。所以以传址方式传递。 选项 D错误的原因是:形参如果没指明数据类型,默认为 Variant类型。 【知识模块】 过程 16 【正确答案】 D 【试题解析】 调用函数过程时的实参与函数过程的形参必须是类型、顺序、个数相同。 本题中函数过程的形参有 2个,调用时实参也要是 2个,故排除 选项 B和C。 选项 A虽然语法没错误,但不符合题意。 选项 D是正确的。调用函数过程时可以嵌套调用。 【知识模块】 过程 17 【正确答案】 C 【试题解析】 题目中过程 s

41、的功能是实现一个数的阶乘,而题目是求 1到 10的阶乘的和,则程序空缺处应该是过程 s返回值的累加,因此就应该为 y=y+s(i)。 【知识模块】 过程 18 【正确答案】 C 【试题解析】 i=1 时,执行 Fun(i),返回值为 -10, i=2时,执行 Fun(i),即Fun(2),返回值为 2*2-11=-7。因此 程序会输出 -10和 -7。 【知识模块】 过程 19 【正确答案】 B 【试题解析】 本题是过程的嵌套调用,过程嵌套调用时要先计算最内层的过程,然后由里向外执行。因此 Fun1(Fun1(x, (Fun1(x, x-1), x-1)执行过程如下: 先执行 Fun1(x,

42、x-1),由于形参 a是按值传递,因此不会影响 x的值, x=10,即 Fun1(10, 9)。 t=1, b=1+10=11,则函数返回值为 1+11=12。 再执行 Fun1(x, (Fun1(x, x-1),由于内层过程返回 12, 因此又可写成。Fun1(x, (12),由于 x仍为原值,因此过程即 Fun1(10, 12)。 t=-2, b=-2+10=8,则函数返回值为 -2+8=6。 最后执行 Fun1(Fun1(x, (Fun1(x, x-1), x-1),即Fun1(6, x-1),由于 x仍为原值,因此过程即为 Fun1(6, 9)。 t=-3, b=-3+6=3,则函数返

43、回值为 -3+3=0。 【知识模块】 过程 20 【正确答案】 D 【试题解析】 程序功能是统计 1 500范围内不能被 7整除的整数个数;函数过程 p 的返回值根据函数定 义可知为 Boolean类型。选 D。 【知识模块】 过程 21 【正确答案】 C 【试题解析】 函数 fun 执行后, x值被改变, y值不变。即 x=9, y=5;计算得结果为 33,选 C。 【知识模块】 过程 22 【正确答案】 A 【试题解析】 在过程定义中,过程的形式参数定义时如果没有 ByVal 指明参数的传递方式,那么默认为地址传递,这样过程中对形参的改变将影响到实参的值。本程序中过程定义语句 Privat

44、e Sub pro(n As Integer)说明形参 n为按地址传递的,而在过程 内语句 n=n 10改变了形参的值,因此, a、 b的值就不再是最初输入的值了,表达式 a+b 就不是期望的两个输入数的和。因此得不到正确结果。 只要把 Private Sub pro(n As Integer)改为 Private Sub pro(ByVal n As Integer),程序即可得到正确结果,因此 A选项正确。 【知识模块】 过程 23 【正确答案】 A 【试题解析】 变量 x在按钮单击事件过程中没有定义,因此系统自动将它定义为Variant类型,由于过程中参数类型为 Integer,所以 程

45、序运行时会提示 “ByRd参数类型不符 ”错误。 A选项正确。只在按钮事件中加上 Dim x as Integer就可以解决问题,或者 f 过程中的 y as integer改为 ByVal y as integer也可以解决。 【知识模块】 过程 24 【正确答案】 D 【试题解析】 程序中过程 f的参数 a默认为按址传递,参数 b指定按值传递,因此调用 f(x, y)时, x的值会受到影响, y的值不会。程序中输入 10和 15,则x=10, y=15。调用 f(x, y),在过程中 a=a*2,即 a=10*2=20,变量 x是 过程 f 中的局部变量,没有用处可不用理会, b: b+1

46、00,即 b=15+100=115。 a的值,即按钮单击事件中变量 x的值,因此 x=20,而 y的值仍是原来的值 15,因此 Print x, y输出 20 15。 【知识模块】 过程 25 【正确答案】 B 【试题解析】 子函数 Sub f(ByVal x, ByRd y, z)中 x值通过值传递, y、 z是传地址,子函数执行后 b, c值会被加 1。而 a值维持不变。选 B。 【知识模块】 过程 26 【正确答案】 C 【试题解析】 在调用过程的语句中,要求 实参个数与被调用过程形参个数一致。 【知识模块】 过程 27 【正确答案】 D 【试题解析】 f(ByVal a As Inte

47、ger, ByRd b As Integer, c As Integer)函数中 a是值传递 b地址传递, c缺省为地址传递。值传递使用两个存储单元,地址传递使用同一个存储单元,会改变变量的值。选 D。 【知识模块】 过程 28 【正确答案】 A 【试题解析】 函数传递参数有值传递和引用传递。默认是引用传递。 sV(ByVal m As Integer, n As Integer)函数中 m为值传递, n为引用传递。值传递不改变实参值。即在 FormClick()过程中调用 sV不会改 x的值。选 A。 【知识模块】 过程 29 【正确答案】 C 【试题解析】 过程定义时,形参除了可以是整型、

48、单精度、双精度等数据类型外,还可以是控件或窗口等对象型。相对应的调用过程,实参也可以是一般数据类型、控件名或窗体。故 A、 D选项正确。 调用过程时,如果过程的参数是数组,则实参传给形参的是地址,这个地址是用数组名表示的一个符号地址,是数组的起始地址,形参和实参用的是同一 个地址,在过程中形参的改变会引起实参的改变。故 B 选项正确。 在过程调用时,不只是函数过程能把过程中处理的信息传回到调用程序中, Sub过程也可以。 Sub过程中形参声明时前面有关键字 ByRet。或省略 ByRef(默认 )时,实参和形参之间传递的是地址, Sub过程中形参的变化也会引起实参的变化。这样 Sub过程中处理

49、的信息也可以传回调用程序中。故 C选项说法错误。 【知识模块】 过程 30 【正确答案】 C 【试题解析】 过程定义时,形参除了可以是整型、单精度、双精度等数据类型外,还可以是控件或 窗口等对象型。相对应的调用过程时实参也可以是一般数据类型、控件名或窗体。故选项 A、 D正确。 调用过程时使用的实参的个数、类型、顺序应与过程中形参相同。故选项 B 正确。 在过程调用时,不只是函数过程能把过程中处理的信息传回到调用程序中, Sub过程也可以。 Sub过程中形参声明时前面有关键字 ByRef或省略 ByRd(默认 )时,实参和形参之间传递的是地址, Sub过程中形参的变化也会引起实参的变化,这样 Sub过程中处理的信息也可以传回调用程序中。故选项 C说法错误。 【知识模块】 过程 31 【 正确答案】 B 【试题解析】 Value是控件的属性名。用 ByVal关键字声明形参表示该参数按值传递。 ByRef 是默认的参数类型,表示该参数按地址传递。没有 Reference关键字。故 B 选项正确。 【知识模块】 过程 3

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1