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

上传人:ownview251 文档编号:500252 上传时间:2018-11-30 格式:DOC 页数:28 大小:80.50KB
下载 相关 举报
[计算机类试卷]国家二级VB机试(选择题)模拟试卷2及答案与解析.doc_第1页
第1页 / 共28页
[计算机类试卷]国家二级VB机试(选择题)模拟试卷2及答案与解析.doc_第2页
第2页 / 共28页
[计算机类试卷]国家二级VB机试(选择题)模拟试卷2及答案与解析.doc_第3页
第3页 / 共28页
[计算机类试卷]国家二级VB机试(选择题)模拟试卷2及答案与解析.doc_第4页
第4页 / 共28页
[计算机类试卷]国家二级VB机试(选择题)模拟试卷2及答案与解析.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、国家二级 VB机试(选择题)模拟试卷 2及答案与解析 一、选择题 1 在窗体上画一个名称为 Commandl的命令按钮,并编写如下程序: Function Fun(x) y=0 If x 10 Then y=x Else y=y+10 End If Fun=y End Function Private Sub Command l_Click() n=InputBox(”请输入一个数 ”): n=Val(n) P=Fun(n): Print P End Sub 运行程序,单击命令按钮,将显示输入对话框,如果在对话框中输入 100,并单击 “确定 ”按钮,则输出结果为 ( A) 10 ( B) 1

2、00 ( C) 1 10 ( D)出错信息 2 设有如下事件过程: Private Sub Command l_Click()Dim a a=Anrray(12, 3, 8, 5, 10, 3, 5, 9, 2, 4) For k=1 To 9 Print fun(a(k-1), a(k); ”; Next k End Sub Private Function fun(x, y)As Integer Do While x: y x=x-y Loop fun=x End Function 程序运 行时的输出结果是 ( A) 4 0 1 0 3 0 0 4 0 ( B) 0 3 3 5 1 3 5

3、 1 2 ( C) 9-5 3-5 7-2-4 7-2 ( D) 9 3 3 5 7 3 5 7 2 3 设有如下函数: Function DelSpace(ch As String)As Integer Dim n, st$, c$ st=“: n=0 For k=1 To Len(ch) c=Mid(ch, k, 1) Ifc ”Then st=st c Else n=n+1 End If Next k ch=st: DelSpace=n End Function 该函数的功能是 ( A)统计并返回字符串 ch中字符的个数 ( B)删除字符串 ch中的空格符,返回删除字符的个数 ( C)统

4、计 并返回字符串 ch中非空格字符数 ( D)删除字符串 ch中除空格符外的其他字符,返回删除字符的个数 4 窗体上有一个名称为 Commandl的命令按钮,其单击事件过程及相关的函数过程如下: Private Sub Command l_Click()Dim i As Integer For i=1 To 500 Ifp(i)Then s=s+1 Next Print s End Sub Private Function p(x As Integer)As Boolean IfX Mod 7 0 Then p=True EIse P=False End If End Function 关于上

5、述程序,以下叙述中正确的是 ( A)程序功能是统计 1-500范围内能被 7整除的整数个数 ( B) Commandl_Click事件过程中 If语句的条件表达式不完整 ( C) Function过程定义有误,函数过程 P的名称与该过程中的变量名 P相同 ( D)函数过程 P的返回值为 Boolean类型 5 设有下面程序代码: PlIivate Sub Command l_Click() Dim str As String, ch As String str=”Visual Basic Programming”: ch=”a” n=fun(ch, str): Print str,n End

6、Sub Private Function fun(ch As String, str As String)As Integer Dim strbufAs String, c As String, n As Integer For k=1 To Len(str) c=Mid$(str,k, 1) If c ch Then strbuf=strbuf&c Else strbuf=strbuf&UCase(c): n=n+1 End If Next k str=strbuf: fun=n End Function 程序运行时的输出是 ( A) Visual Basic Programming 0 (

7、 B) VisuAl BAsic ProgrAmming 3 ( C) Visul Bsic Progrmming 3 ( D) VisualBasicProgramming 2 6 以下叙述中错误的是 ( A)在通用过程中,多个形式参数之间可以用逗号作为分隔符 ( B)在 Print方法中,多个输出项之间可以用逗号作为分隔符 ( C)在 Dim语句中,所定义的多个变量可以用逗号作为分隔符 ( D)当一行中有多个语句时,可以用逗号作为分隔符 7 以下关于过程及过程参数的描述中,错误的是 ( A)调用过程时可以用控件名称作为实际参数 ( B)用数组作为过程的参数时,使用的是 “传地址 ”方式 (

8、 C)只有函数 过程能够将过程中处理的信息传回到调用的程序中 ( D)窗体 (Form)可以作为过程的参数 8 下面是求最大公约数的函数的首部 Function gcd(ByVal x As Integer,ByVal y As Integer)As Integer 若要输出 8、 12、 16这 3个数的最大公约数,下面正确的语句是 ( A) Print gcd(8, 12), gcd(12, 16), gcd(16, 8) ( B) Print gcd(8, 12, 16) ( C) Print gcd(8), gcd(12), gcd(16) ( D) Print gcd(8, gcd(

9、12, 16) 9 为了通过传值方式来传送过程参数,在函数声明部分应使用的关键字为 ( A) Value ( B) ByVal ( C) ByRef ( D) Reference 10 以下过程定义中正确的过程首行是 ( A) Private Sub Proc(Optional a as Integer, b as Integer) ( B) Private Sub Proc(a as Integer)as Integer ( C) Private Sub Proc(a()As Integer) ( D) Private Sub Proc(ByVal a()As Integer) 11 某人编

10、写了下面的程序 Private Sub Command l_Click() Dim aAs Integer,bAs 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=n10 Wend Print End Sub 此程序功能是:输入 2个正整数,反序输出这 2个数的每一位数字,再反序输出这 2个数之和的每一位数字。例如:若输入 123和 234,则应该输出:

11、3 2 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 12 有下面程序代码: Private Sub Command l_Click() Dim x As Inte

12、ger,s As Integer x=1 For k=1 To 3 x=x+1: proc x: s=s+x Next k Print s End Sub Private Sub proc(ByVal a As Integer) Static x As Integer x=x+1: a=a+x End Sub 程序运行后,单击命令按钮 Commandl,输出结果是 ( A) 6 ( B) 9 ( C) 1 5 ( D) 19 13 编写如下程序: Private Sub Command l_Click()Dim x As Integer x=1 0 Print funl(x, 12)+x En

13、d Sub Private Function fun l(m As Integer,n As Integer)As Integer Ifn 10 Then m=n fual=m+n End Function 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) 30 ( B) 32 ( C) 34 ( D) 36 14 在窗体上画一个名称为 Commandl的命令按钮,再画两个名称分别为 Labell、Label2的标 签,然后编写如下程序代码: Private X As Integer Private Sub Command l_Click() X=5: Y=3 Call pro

14、c(X, Y) Label 1 Caption=X: Label2 Caption=Y End Sub Private Sub proc(a As Integer,ByVal b As Integer) X=a*a: Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是 ( A) 25和 3 ( B) 5和 3 ( C) 25和 6 ( D) 5和 6 15 设有如下通用过程: Public Function f(x As Integer) Dim y As Integer x=20: y=2: f=x*y End Function 在窗体上画一个命令按钮,其名称

15、为 Commandl,然后编写如下事件过程: Private Sub Command l_Click() Static x As Integer x=10: y=5: y=f(x)Print x; y End Sub 程序运行后,如果 单击命令按钮,则在窗体上显示的内容是 ( A) 10 5 ( B) 20 40 ( C) 20 5 ( D) 10 40 16 命任何一个滚动条滚动框件过程如下: Private Sub Commandl_Click() x=10 Print f(x) End Sub Private Function f(y As Integer) f=y*y End Func

16、tion 运行上述程序,如下叙述中 正确的是: ( A)程序运行出错, x变量的类型与函数参数的类型不符 ( B)在窗体上显示 100 ( C)函数定义错,函数名 f不能又作为变量名 ( D)在窗体上显示 10 17 编写如下程序: Private Sub Command 1_Click() Dim x As Integer,y As Integer x=InputBox(”输入第一个数 ”): y=InputBox(”输入第二个数 ”) Call f(x, y) Print x, y End Sub Sub f(a As Integer,ByVal b As Integer) a=a*2:

17、x=a+b: b=b+100 End Sub 程序运行后,单击命令按钮 Commandl,并输入数值 10和 15,则输出结果为 ( A) 10 115 ( B) 20 11 5 ( C) 35 1 5 ( D) 20 15 18 现有程序如下: Option Base 1 Private Sub Form_Click() Dim x(5, 6)As Integer,y(5)As Integer For i=1 To 5 For j=1 To 6 x(i, j)=Int(Rnd*9+1) Nextj Next i Call f(5, 6, x, y) For i=1 To 5 Print y(

18、i); Next i End Sub Sub f(m As Integer,n As Integer, a() As Integer,b() As Integer) For i=1 To m b(i)=0 Forj=1 To n b(i)=b(i)+a(i, j) Nextj Next i End Sub 关于上述程序,以下叙述中正确的是 ( A)调用过程语句有错,参数不 匹配 ( B)程序有错,数组下标越界 ( C) y数组中保存的是 x数组每行数据之和 ( D) x数组中数据的取值范围是 1-10 19 窗体上有一个名称为 Commandl的命令按钮,一个名称为 Textl的文本框。编写如

19、下程序: Private Sub Command l_Click() Dim xAs Integer x=Val(InputBox(”输入数据 ”): Textl=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)运行程序,

20、输入值为 6时,文本框中显示 42 ( D) ByRef表示参数按址传递 20 窗体上有一个名称为 Commandl的命令按钮,并有如下程序代码: Private Sub Command l_Click() Static a a=1: b=2: c=3 Call f(a, b, c) Print a; b; c End Sub Sub f(ByVal x, ByRefy,z) x=x+1: y=y+1: z=z+l End Sub 运行程序,单击命令按钮,窗体上显示的是 ( A) 1 3 3 ( B) 1 3 4 ( C) 2 3 3 ( D) 2 3 4 21 窗体上有一个名称为 Comma

21、ndl的命令按钮,其单击事件过程如下: Private Sub Command l_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

22、) 3 10 5 ( D) 3 10 10 22 (36)窗体上有一个名称为 Commandl的命令按钮,其单击事件过程及相关的代码如下: Private Sub Command l_Click() Dim x As Integer,y As Integer x=Val(InputBox(”输入整数 ”) y=Val(InputBox(”输入整数 ”)Print Str(fun(x, y)+x+y) End Sub Private Function fun(ByRef m As Integer, ByVal n As Integer) m=m*m: n=n+n: fun=m+n End Fun

23、ction 运行程序,单击命令按钮时,出现输入对话框,分别输入 3、 5,则窗体上显示的是 ( A) 27 ( B) 28 ( C) 33 ( D) 38 23 设有如下程序: Private Sub Inv(ByVal xStr As String, yStr As String) Dim tStr As String Dim L As Integer L=Len(xStr) Do While L =1 tStr=tStr+Mid(xStr, L, 1): L=L-l Loop yStr=tStr End Sub Private Sub Form_Click() Dim S1 As Stri

24、ng, S2 As String Sl=”abcdef”Inv S1 S2 Print S2 End Sub 运行程序,单击窗体,输出结果为 ( A) abcdef ( B) afbecd ( C) fedcba ( D) defabc 24 设有如下程序: Private Sub sV(ByVal m As Integer,n 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=1 5: sV x Y Print x; Y En

25、d Sub 运行程序,单击窗体,输出结果为 ( A) 20 1 0 10 1 0 ( B) 10 1 5 20 10 ( C) 20 1 5 1 0 1 5 ( D) 20 1 0 20 10 25 由高中数学可知,对于连续函数 f(x),若 f(x1)与 f(x2)值的符号相反,则在 x1和 x2之间必存在 x0,使得 f(x0)=0(该点称为 “零点 ”)。设有 VB函数: Private Function f(x As Single) As Single可以返回 f(x)的值 (函数体没有给出 )。下面程序的功能是从键盘输入 2个实数 x 1、 x2,判断在 x1、 x2之间是否存在零点

26、。 Private Sub Command l_Click() Dim x1 As Single, x2 As Single x1=InputBox(”请输入一个实数 x1”) x2=InputBox(“请再输入一个实数 x2”) lf( )Then Print”在 ”: x1; ”与 ”; x2; ”之间存在零点 ” Else Print”不能确定在 ”; x1; ”与 ”; x2; ”之间是否存在零点 ” End If End Sub Private Functionf(x As Single)As Single End Function 为使上面程序可以实现该功能,程序代码中横线处应填写

27、的代码是 ( A) f(x1) 0 Or f(x2) 0 ( B) f(x1) 0 And f(x2) 0 ( C) f(x1)*f(x2) 0 ( D) f(x 1)*f(x2) 0 26 编写如下程序: Private Sub Command l_Click() Dim x As Integer, y As Integer x=1 0: y=20 Call funl(x, y) Print x: y End Sub Private Function fun l(ByVal m As Integer, n As Integer)As Integer m=m*m: n=n+n End Func

28、tion 程序运行后,单击命令按钮 Cornmandl,输出结果为 ( A) 10 25 ( B) 10 40 ( C) 1 00 25 ( D) 100 40 27 设有以下过程: 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) 28 以下关于过程及过程参数的描述中,错误的是 ( A)过程的参数可以是控件名称 ( B

29、)调用过程时使用的实参的个数应与过程形参的个数相同 (假定不含可变参 数 ) ( C)只有函数过程能够将过程中处理的信息返回到调用程序中 ( D)窗体可以作为过程的参数 29 窗体上有一个用菜单编辑器设计的菜单。运行程序,并在窗体上单击鼠标右键,则弹出一个快捷菜单,如图所示。以下叙述中错误的是( A)在设计 “粘贴 ”菜单项时,在菜单编辑器窗口中设置了 “有效 ”属性 (有 “”) ( B)菜单中的横线是在该菜单项的标题输入框中输入了一个 “-”(减号 )字符 ( C)在设计 “选中 ”菜单项时,在菜单编辑器窗口中设置了 “复选 ”属性 (有 “”) ( D)在设计该弹出菜单的主菜单项时,在菜

30、单 编辑器窗口中去掉了 “可见 ”前面的“” 30 以下打开 Visual Basic菜单编辑器的操作中,错误的是 ( A)执行 “编辑 ”菜单中的 “菜单编辑器 ”命令 ( B)执行 “工具 ”菜单中的 “菜单编辑器 ”命令 ( C)单击工具栏中的 “菜单编辑器 ”按钮 ( D)右击窗体,在弹出的快捷菜单中选择 “菜单编辑器 ”命令 31 如果一个菜单项的 Enabled属性被设置为 False,则程序运行时,该菜单项 ( A)不显示 ( B)显示但无效 ( C)有效可用 ( D)不显示但有效可用 32 以下说法 中正确的是 ( A)任何时候都可以用 Ctrl+E键打开菜单编辑器 ( B)只

31、有当某个窗体为当前活动窗体时,才能打开菜单编辑器 ( C)只有当代码窗口为当前活动窗口时,才能打开菜单编辑器 ( D)任何时候都可以用标准工具栏的 “菜单编辑器 ”按钮打开菜单编辑器 33 如果一个顶级菜单项的访问键为 D,则以下等同于单击该菜单项的操作为 ( A)按 Ctrl+D键 ( B)按 Alt+D键 ( C)按 D键 ( D)按 Shift+D键 34 下列关于菜单项的描述中,错误的是 ( A)通过内缩符 号 () 设置菜单项的层次 ( B)通过 Enabled属性设置菜单项的有效性 ( C)菜单项的索引号可以不连续 ( D)菜单项的索引号必须从 1开始 35 以下关于菜单的叙述中,

32、错误的是 ( A)当窗体为活动窗体时,用 Ctrl+E键可以打开菜单编辑器 ( B)把菜单项的 Enabled属性设置为 False,则可删除该菜单项 ( C)弹出式菜单在菜单编辑器中设计 ( D)程序运行时,利用控件数组可以实现菜单项的增加或减少 36 下列关于菜单项的描述中,错误的是 ( A)菜单项不能响应 Click事 件以外的其他事件 ( B)每个菜单项都可以被看作一个控件,具有相应的属性和事件 ( C)菜单项的索引号可以不连续 ( D)通过 Visible属性设置菜单项的有效性 37 在利用菜单编辑器设计菜单时,为了把组合键 “Alt+X”设置为 “退出 (X)”菜单项的访问键,可以

33、将该菜单项的标题设置为 ( A)退出 (X ) ( B)退出 (&X) ( C)退出 (X#) ( D)退出 (#X) 38 为了显示弹出式菜单,要使用 ( A)窗体的 PopupMenu方法 ( B)窗体的 OpenMenu方法 ( C)菜单的 PopupMenu方法 ( D)菜单的 OpenMenu方法 39 下面关于菜单的叙述中正确的是 ( A)为使选中一菜单项就可执行某种操作,要为它的 Click事件过程编写执行该操作的代码 ( B)同一级菜单中的菜单项不能同名,但不同级菜单中的菜单项可以同名 ( C)只能使用鼠标右键把弹出式菜单弹出来 ( D)弹出式菜单中的菜单项不能再有自己的子菜单

34、 国家二级 VB机试(选择题)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 本题是一个 简单的函数调用,在函数中会判断参数 x的值,根据 x的值不同执行 If语句的不同分支。由于实际参数为 100不满足 x 10,因此函数返回值为 10。 2 【正确答案】 B 【试题解析】 本题中函数 fun的作用是当第一个形参比第二个形参大或着相等的时候让它减去第二个形参,直到比第二个形参小为止;在按钮的单击事件中循环调用 9次函数,每次都用数组的前一个元素和后一个元素作为函数的实参,所以应输出的是 12-3-3-3-3、 3、 8-5、 5、 10-3、 3、 5、 9-2、 2

35、。 3 【正确答案】 B 【试题 解析】 在函数中进行字符串的正向遍历,每次取出字符串中的一个字符,判断该字符如果不是空格就将其连接到 st上,否则令 n+1。循环结束后将会删除字符串 ch中的空格符,返并使用函数值返回删除字符的个数。 4 【正确答案】 D 【试题解析】 调用 Function过程要返回一个值,因此可以像内部函数一样在表达式中使用。如果在 Function过程中省略 “过程名 =表达式 ”,则该过程返回一个默认值 (数值函数过程返回 0值;字符串函数过程返回空字符串 )。因此,通常要在过程体中给 “过程名 ”赋值。本题中函数 p的返回值 为 Boolean类型,功能是判断参数

36、 x是否能被 7整除,如果不能整除返回 True,否则返回 False。Commandl_Click事件过程中使用了单行的 If语句,不需要 Else分支和 Endlf语句。程序功能是统计 1-500范围内不能被 7整除的整数个数。 5 【正确答案】 B 【试题解析】 本题中函数 fun除了有返回值外,还通过地址传递的形参 str带回修改以后的字符串。在函数中会依次遍历整个字符串,每一次取得一个字符,判断该字符和给定的参数 “a”是否相等,如果不等则将其原样连接,否则将此字符转换成 大写字符以后连接,而且令计数器加 1。所以整个函数的功能就是将形参 str中所有等于形参 ch的字符转换成大写,

37、并且统计这类字符的个数作为函数返回值。 6 【正确答案】 D 【试题解析】 本题考查的考点是有关分隔符的。在过程的参数中需要用分隔符隔开;在 Print方法中使用逗号可以隔开多个输出项;在一条 Dim语句中定义多个变量时,这些变量也要用逗号隔开;在一行中写多个语句时,多个语句之间需要用冒号隔开。 7 【正确答案】 C 【试题解析】 本题考查的考点是有关过程参数的。在 VB中不仅可以 使用窗体作为通用过程的参数,还可以使用控件作为通用过程参数。控件参数用法同窗体参数,不过形参类型一般为 Control。在使用数组作为参数时,使用的是传地址的方式。要想把过程中的信息传回到调用过程中,不但使用函数可

38、以完成,也可以使用传地址调用的参数传递来完成。 8 【正确答案】 D 【试题解析】 函数过程在传递参数时,形参表与实参表中对应变量的名字不必相同,但参数的个数、对应位置和对应类型必须相同。本题中的 gcd函数有两个参数,任何对于 gcd的调用都必须传递实参为两个整型值;选项 A)中得到 3个结果,显然不是我们所需要的;选项 D)中的函数嵌套调用能够求出 3个数的最大公约数。 9 【正确答案】 B 【试题解析】 传值就是通过值传送实际参数,即传送实参的值而不是传送它的地址。在这种情况下,通用过程不访问变量 (实参 )的原始地址,因此不会改变原来变量的值,所有的变化都是在变量的副本上进行的。 传值

39、方式通过关键字 By Val来实现。也就是说,在定义通用过程时,如果形参前面有 ByVal,则该参数通过传值方式传送。在传值方式下,对形参的改变不会影响到实参。 10 【正确答案】 C 【试题解析】 Visual Basic允许用数组作为参数。但用数组作为过程的参数时,应在数组名的后面加上一对括号,以免与普通变量相混淆:而且只能使用地址传递,不能使用值传递。为了定义可选参数,需要在参数表中使用 Optional关键字来指定可选参数,但是可选参数必须是变体型,而且放在参数表的最后。 Sub子过程是不能有返回值类型的。 11 【正确答案】 A 【试题解析】 本题考查的考点是有关过程调用的。本题题干

40、中的程序之所以不能显示第三行的值,是由于在调用 pro函数时使用的是默认的传地 址调用,这时在pro过程中的对形参的更改都会影响到实参。仔细观察 pro过程,发现每次循环都要对形参 n整除 10一直到 n为 0为止,所以每次 pro过程调用结束后都会把对应实参改为 0。修改参数传递方式为传值调用即可使程序正确运行。 12 【正确答案】 B 【试题解析】 本题中首先要区分在命令按钮的单击事件中定义的 x是局部变量,仅能在过程内部起作用:在子过程 proc中定义的静态变量 x也是局部变量,也只能在本过程中起作用。在 VB的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用

41、ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。本题中 proc过程的参数 a用的是值传递,因此形参的改变不会影响到实参,所以在命令按钮的单击事件中循环累加的是 2+3+4=9。 13 【正确答案】 D 【试题解析】 本体是一个简单的函数调用,调用 funl函数时将 x的值作为实参传送给 funl函数,由于第二个参数 12满足 n 10,会将形参 m的值也改变为12,因返回的函数值为 24;由于函数 funl的各个参数为地址 传递,因此对于形参m的值会影响实参 x的值,即 x的值也变为 12。 14

42、【正确答案】 A 【试题解析】 本题考查的考点是有关参数传递的。在 VB的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用;若用 ByRef声明,说明此参数为传址调用:没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。由于本题中的实参 Y采用传值传递,实参 X采用传址传递,而且 X是全局变量,所以在被调过程中改变了 X的值而没有改变 Y的值。 15 【正确答案】 B 【试题解析】 本题中函数 f中的形参 x和按钮的单击事件中的静态变量 x是不同的变量,相互之间互不影响。函数 f的参数 x使用的是地址传递的形式,即形参的

43、变化会影响到实参:在命令按钮的单击事件中调用函数 f,会使得参数 x的值变成20,函数返回值为 40。 16 【正确答案】 A 【试题解析】 在调用子过程或者函数过程时,要求实参与形参必须是匹配的,即个数相同、类型相同、顺序一致。本题中命令按钮的 Click事件中隐式声明了变量x,所以 x是变体型;在调用函数 f的时候将变体型的 x作为实参传送,但函 数 f中的形参 y是整型的,故此产生类型不匹配的情况。 17 【正确答案】 D 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址传递时,

44、如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 f的参数 a是按地址传递的, b是按值传递的,因此在 f中对 a的改变会影响实参 x,对 b的操作不会影响实参 y。 18 【正确答案】 C 【试题解析】 本题中子过程 f的四个 形参分别为整型、整型、整型数组和整型数组,在窗体的单击事件中调用过程 f,四个实参和四个形参可以匹配,调用语句没有错误;在二重循环中为二维数组的每个元素赋值,数组下界从 1开始,因此不会越界:在二重循环中为数组 x的元素赋值为 0 9之间的值:在过程 f中用一个二重循环以此计算 x数组每行数据之和放在 y数组中。 19 【正确答案】

45、 A 【试题解析】 本题中的函数 fun的功能是判断参数是否能被 3整除,若可以整除则将 n翻倍,否则将 n变为 n的平方返回。在函数头部没有声明函数的返回值类型,默认为变体型,可以接受任 何数据类型的赋值; ByRef表示参数按址传递,对形参的改变将会影响实参;当输入 5的时候输出 5+25+625=655;当输入 6的时候输出 6+12+24=42。 20 【正确答案】 B 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变

46、了传递参数时实参变量的值。本题中 f的参数 x是按值传递的, y和 z是按地址传递的,因此在 f中对 x的改变不会 影响实参 a,对 y和 z的操作会影响实参 b和 c。 21 【正确答案】 D 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 f的参数 a是按值传递的, b和 c是按地址传递的,因此在 f中对 a的改变不会影响实参 x,对 b和 c的操作会影响实参 x和 y。 22 【正确答案

47、】 C 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 fun的参数 m是按地址传递的, n足按值传递的,因此在 f中对 m的改变会影响实参 x,对 n的操作不会影响实参 y,即输出的是 Str(19+9+5)=”33”。 23 【正确答案】 C 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传 递 (Byref),默认为按址传递。其中

48、,当参数按址传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 Inv的参数 xStr是按值传递的, yStr是按地址传递的,因此在 Inv中对 xStr的改变不会影响实参 S1,对 yStr的操作会影响实参 S2。过程 Inv的作用是在每次循环中取出 S1字符串靠后面的值连接到 tStr中,然后将 tStr赋值给 yStr从而通过地址传递带回给 S2,即字符串的逆序。 24 【正确答案】 A 【试题解析】 在 Visual Basic中调用过 程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址

49、传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 sV的参数 m是按值传递的, n是按地址传递的,因此在 sV中对 m的改变不会影响实参 x,对 n的操作会影响实参 y。 25 【正确答案】 C 【试题解析】 本题实际是要求判断两个函数值是否符号相反,由中学数学的知识可知,两数相反的标志是两数相乘结果小于 0。 26 【正确答案】 B 【试题解析】 在 Visual Basic中调用过程时,参数有两种传递形式:按值传递(Byval)和按址传递 (Byref),默认为按址传递。其中,当参数按址传递时,如果在引用该参数的过程中改变了形参的值,同时也就改变了传递参数时实参变量的值。本题中 funl的参数 m是按值传递的, n是按地址传递的,因此在 funl中对 m的改变不会影响实参 x,对 n的操作会影响实参 y。 27 【正确答案】 C 【试题解析】 Optional声明的参数是可选参

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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