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

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

1、国家二级 VB机试(数组)模拟试卷 5及答案与解析 一、选择题 1 窗体上有名称为 Command1的命令按钮,其事件过程如下: Option Base1 Private Sub Command1_Click() Dim a Dim b(10)As Integer a=Array(2, 4, 7, 3, 9, 6) For i=LBound(a)To UBound(a) b(i)=a(i)+i Sum=Sum+b(i) Next i Print Sum End Sub 运行程序,单击命令按钮时,窗体上显示的是 ( A) 44 ( B) 46 ( C) 50 ( D) 52 2 窗体上有一个名称

2、为 Command1的命令按钮,有程序如下: Option Base1 Private Sub Command1_Click() Dim a(10)As Integer第 1个 For For i=l To 10 a(i)=Int(Rnd*100+100) Print a(i); Next x=a(i): y=x 第 2个 For For i=1 To 10 Ifxa(i)Then Y=a(i) s=s+a(i) Next Print x, y, s End Sub 关于上述程序的叙述中,正确的是 ( A)程序运行出错,第 1个 For循环之后的 x=a(i)赋值语句错 ( B)程序正常运行,

3、 x是 10个随机数中的最大值 ( C)程序正常运行, s是 10个随机数的和 ( D)程序正常运行, 10个随机数的范围是 100-200 3 在窗体上画一个文本框,其名称为 Text1,然后编写如下程序: Option Base1 Pdvme Sub Form_Click() Dim Arr(10)As Integer For i=6 To 10 An(i)=i-3 Next i Text1 Text=Str(Arr(6)+Arr(Arr(6)+Arr(10) End Sub 程序运行后,单击窗体,在文本框中显示的内容是 ( A) 7 ( B) 8 ( C) 9 ( D) 10 4 假定有

4、如下程序: Private Sub Form Click() Dim a(4)As Integer, b(4)As Integer For k=0 To 2 a(k+1)=Val(InputBox(“请输入一个整数: “) b(3-k)=a(k+1) Next k Print b(k) End Sub 运行程序,单击窗体,依次输入 3、 6、 9,输出结果为 ( A) 3 ( B) 6 ( C) 9 ( D) 1 5 阅读程序: Option Base1 Private Sub Form Click() Dim a(3, 3)As Integer For i=1 To 3 Forj=1 To

5、3 a(i, j)=_ Print a(i, j); Nextj Print Next i End Sub 运行上面的程序,单击窗体,输出结果如下: 1 4 7 2 5 8 3 6 9 则在横线处应填入的内容为 ( A) i+j ( B) i*j ( C) (i-1)*3+j ( D) i+(j-1)*3 6 阅读程序: Option Base1 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

6、Next i P a For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击窗体,输出结果为 ( A) 2 4 6 8 ( B) 5 6 7 8 ( C) 10 12 14 16 ( D) 4 8 12 16 7 在窗体上画一个命令按钮,然后编写如下程序: Option Base1 Privme Sub Command1_Click() Dim Arr(10)As Integer For i=1 To 10 Arr(i)=11-i Next i x=InputBox(“输入一个整数 (3 10)“) PrintAn(2+Arr(x) End Sub

7、程序运行后,单击命令按钮,在输入对话框中输入 7,则输出结果为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 8 设有下面程序代 码: Private Sub Command1_Click() Dim a As Variant a=Array(22, 43, 23, 56, 87, 45, 67, 12, 98, 98, 56, 34, 23, 75, 64) m=a(0)n=m For k=1 To UBound(a) Ifa(k)mThen n=m: m=a(k) Elselfa(k)n And a(k)m Then n=a(k) End If Next k Print n En

8、d Sub 程序运行时的输出是 ( A)数组中最大的数 (即 98) ( B)数组中最小的数 (即 12) ( C)数组中第 2大的数 (即 87) ( D)数组中第 1个数 (即 22) 9 设有下面程序代码: Option Base1 Private Sub Command1_Click() Dim x(6) a=Array(4, 2, 5, 1, 6, 3) b=Array(64, 24, 98, 27, 58, 41) For k=1 To 6 x(a(k)=b(k) Next k For k=1 To 6 Print x(k); Next k End Sub 程序运行时的输出是 (

9、A) 27 24 41 64 98 58 ( B) 64 24 98 27 58 41 ( C) 24 27 41 58 64 98 ( D) 98 64 58 41 27 24 10 以下关于控件数组的叙述中,正确的是 ( A)数组中各个控件具有相同的名称 ( B)数组中可包含不同类型的控件 ( C)数组中各个控件具 有相同的 Index属性值 ( D)数组元素不同,可以响应的事件也不同 11 以下关于控件数组的叙述中,错误的是 ( A)各数组元素共用相同的事件过程 ( B)各数组元素通过下标进行区别 ( C)数组可以由不同类型的控件构成 ( D)各数组元素具有相同的名称 12 假定通过复制

10、、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是 ( A)数组中每个命令按钮的名称 (Name属性 )均为 Command1 ( B)若未做修改,数组中每个命令按钮的大小都一样 ( C)数组中各个命令按钮使用同一个 Click事件过程 ( D)数组中每个命令按钮的 Index属性值都相同 13 窗体上已有的 3个单选按钮组成了 1个名为 ChkOptl的控件数组。用于区分控件数组 ChkOptl中每个元素的属性是 ( A) Caption ( B) ListCount ( C) ListIndex ( D) Index 14 窗体上有一个名称为 Optionl的单选按钮数

11、组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程 Private Sub Option l click(Index As Integer) End Sub 下面关于此过程的参数 Index的叙述中正确的是 ( A) Index为 1表示单选按钮被选中,为 0表示未选中 ( B) Index的值可正可负 ( C) Index的值用来区分哪个单选按钮被选中 ( D) Index表示数组中单选按钮的数量 15 设在窗体上有一个名称为 Check1的复选框数组,并有以下事件过程: Private Sub Check1_Click(Index As Integer) End Sub 则下面叙述

12、中错误的是 ( A)单击 数组中任何复选框都会调用此事件过程 ( B)参数 Index的值等于单击数组中某个复选框的 Index属性的值 ( C)上面的过程是数组中第 1个复选框的事件过程 ( D)从过程的首部 (即第 1行 )无法确定数组中复选框的个数 16 下面关于控件数组的叙述中正确的是 ( A)控件数组中所有控件的名称相同,但其 Index属性值各不相同 ( B)控件数组中所有控件的名称相同,但其 Value属性值各不相同 ( C)控件数组中每个元素都是独立的控件,因此都有各自的事件过程 ( D)上述都是错误的 17 下列关于控件数 组的叙述中,正确的是 ( A)控件数组可以由不同类型

13、的控件组成 ( B)控件数组元素的最小下标值为 1 ( C)在设计阶段,可以改变控件数组元素的 Index属性值 ( D)控件数组的名字由 Caption属性指定 18 窗体上有一个由两个文本框组成的控件数组,名称为 Text1,并有如下事件过程: Pfivme Sub Text1_change(Index As Integer) Select Case Index Case 0 Text1(1) FontSize=Text1(0) FontSize*2 Text1(1) Text=Text1(0) Text Case 1 Text1(0) FontSize=Text1(1) FontSize

14、 2 Text1(0) Text=Text1(1) Text Case Else MsgBox“执行 Else分支 “ End Select End Sub 关于上述程序,以下叙述中错误的是 ( A) Index用于标识数组元素 ( B)本程序中 Case Else分支的语句永远不会被执行 ( C)向任何一个文本框输入字符,都会在另一个文本框中显示该字符 ( D)下标为 0的文本框中显示的字符尺寸将越来越小 19 假定有如下事件过程: Private Sub Form_Click0 Dim X As Integer, n As Integer x=1: n=0 Do While x“Then

15、subf s1, s2 s2=s2 temp End Sub 程序运行后,单击命令按钮 Command1,且输入 “abcdef”,则输出结果为 ( A) afbecd ( B) cdbeaf ( C) fedcba ( D) adbecf 27 以下关于函数 过程的叙述中,正确的是 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 28 在 VB中,函数过程与子程序过程的区别之一是 ( A)函数过程必须有参数

16、,而子程序过程可以没有 ( B)函数过程的参数传递只采用值传递,而子程序过程只采用地址传递 ( C)在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能 ( D) 函数过程有返回值,而子程序过程没有 29 在窗体上画一个命令按钮 (名称为 Command1),并编写如下代码: Function Fun1(ByVal a As Integer, Private Sub Command1_Click() b As Integer)As Integer Dim x As Integer Dim t As Integer x=10 t=a-b: b=t+a: Fun1=t+b Print F

17、unl(Funl(x, (Funl(x, x-1), x-1) End Function End Sub 程序运行后,单击命令按钮,输出结果是 ( A) 10 ( B) 0 ( C) 11 ( D) 21 30 有下面程序代码: Private Sub Command1_Click() Dim aAs String a=“COMPUTER”n=search(a, “T“): Print IIf(n=0, “未找到 “, n) End Sub Private Function search(str As String, ch As String)As Integer For k=1 To Len

18、(str) c=Mid(str, k, 1) Ifc=ch Then search=k: Exit Function End If Next k search=0 End Function 程序运行后,单击命令按钮 Command1,输出结果是 ( A) 0 ( B) 8 ( C) 6 ( D)未找到 国家二级 VB机试(数组)模拟试卷 5答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 本题中使用了一个循环为 b数组进行赋值,每个元素的值是对应 a数组元素的值加上下标的值。因此 b数组中的元素为 (3、 6、 10、 7、 14、 12),然后累加和为 52。 【知识模块】 数组

19、2 【正确答案】 A 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1大于或等于 0的随机 数,本题中产生的整数的范围是 100-199:在第一个循环结束后,循环变量 i的值为不满足循环条件的值 11,在紧随其后的 x=a(i)语句将会执行出错,因为出现了数组越界。 【知识模块】 数组 3 【正确答案】 D 【试题解析】 本题中在循环中为数组部分元素赋值,把 Arr(6) Arr(10)分别赋值为 3 7,其余的数组元素保持默认值 0;最终输出的是Arr(6)+Arr(Arr(6)+Arr(10)即 Arr(6)+Arr(10)=10。 【知识模块】 数组 4 【正确答案】 A 【

20、试题解析】 本题在循环中输入数据,当第一次输入 3的时候 a(1)=3,b(3)=a(1)=3;当第二次输入 6的时候 a(2)=6, b(2)=a(2)=6:当第三次输入 9的时候 a(3)=6, b(1)=a(3)=9,跳出循环后 k的值为 3,将输出 b(3)的值。 【知识模块】 数组 5 【正确答案】 D 【试题解析】 本题中使用二重循环为数组赋值,分许输出的结果,每个元素和行号和列号的关系可以看出,每个元素的值应该等于 i+(i-1)*3。 【知识模块】 数组 6 【正确答案】 A 【试 题解析】 本题中的过程 P的功能是为形参数组 b进行赋值,数组作为参数时采用的是地址传递,所以对

21、形参的改变将会影响实参,也就是在窗体的单击事件中,首先在一个循环中为数组 a赋值,然后调用了 P过程重新为 a赋值覆盖掉原来的值。 【知识模块】 数组 7 【正确答案】 C 【试题解析】 本题是一个简单的数组操作,首先在一个循环中为数组元素赋值,然后输出指定的数组元素值。最终输出的是 Arr(2+Arr(7)=Arr(6)=5。 【知识模块】 数组 8 【正确答案】 C 【试题解析】 本题显 然是求取数组最大值的,先取得数组的第一个元素作为最大值,然后用 m保存最大值;在循环中如果发现了有比 m还大的数组元素,则将该元素作为新的最大值,原来的最大值 m赋值给 n:如果元素不比 m大就去比较元素

22、是否大于 n,若大于 n则将元素赋值给 n,所以循环结束后 n中的值是数组中第2大的数。 【知识模块】 数组 9 【正确答案】 A 【试题解析】 本题是一个简单的数组赋值,只要把握好每次为哪个元素赋以什么样的值就不会出错。最后 x数组中存放的数据依次是 27、 24、 41、 64、 98、 58。 【知识模块】 数 组 10 【正确答案】 A 【试题解析】 控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标。 【知识模块】 数组 11 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和共同类型的控件,它们拥有共同

23、的事件,数组中的每个控件都有惟一的索引号 (Index),即下标。 【知识模块】 数组 12 【正确答案】 D 【试题解析】 本题考查的考点是有关控件数组的。控件数组是一组具有共同名称和类型的控 件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从 0开始。建立控件数组有两种方法:一是先在窗体上画好一个控件,然后再用 “复制 ”和 “粘贴 ”的方法建立:二是先在窗体上先画出若干相同类型的控件,然后再将它们的名称改为同一个名称,再将其 Index属性分别设置为不同值即可,采用第一种方法建立控件数组时,每个数组元素的名称、大小、事件均使用同一个,区别只在于

24、Index属性不一样。 【知识模块】 数组 13 【正确答案】 D 【试题解析】 控件数组是一组具有共同名 称和类型的控件,它拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始。 【知识模块】 数组 14 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标,默认索引号从 0开始,不能为负值。 【知识模块】 数组 15 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index

25、),即下标,默认索引号从 0开始,不能为负值。从过程的首部无法确定数组中控件的个数。 【知识模块】 数组 16 【正确答案】 A 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标,默认索引号从 0开始,不能为负值。 【知识模块】 数组 17 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始,在设计阶段可以手动指定控件数组元素的 Index属性值。 【知识模块】 数组 18 【正确答案】 D 【

26、试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始。本题中的两个文本框的 Index值分别为 0和 1,所以 Case Else分支的语句永远不会被执行;根据程序向任何一个文本框输入字符,都会在另一个文本框中显示该字符;在 0号文本框中输入时 1号文本框的字号是 0号文本框字号的 2倍,在1号文本框中输入 时 0号文本框的字号是 1号文本框字号的一半,相当于没有变化,不会越来越小。 【知识模块】 数组 19 【正确答案】 A 【试题解析】 本题考查 Do While循环。在窗体的 Click事件

27、代码里面,定义了变量 x和 n,分析 Do While循环可知, n保存循环次数, x是循环控制变量,如果x的值小于 28则进入循环体,因此 x和 n的变化过程是: 3和 1、 9和 2、 27和3、 81和 4,经过 4次循环后 x值变成 81,循环条件不成立,循环结束。 【知识模块】 过程 20 【正确答案】 D 【试题解析】 本题考查的考点是有关标准模块的。 VB中的标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,其扩展名为 bas,里面只有代码而没有任何控件。其中全局声明放在标准模块的首部,可以在整个工程中使用。 【知识模块】 过程 21 【正确答案】

28、D 【试题解析】 MsgBox()函数用于显示提示信息,并可返回一个代表用户单击了哪个按钮的 Integer类型值,当其作为函数使用时必须将参数放在括号内部,而返回值可以赋值给一个变量,也可以单独使用此函数而不将其返回值赋值给变量;MsgBox过程也用于显示提示信息,作为过程可以独立使用,也可以使用 Call关键字来进行调用,但此时参数需要加括号。 【知识模块】 过程 22 【正确答案】 C 【试题解析】 Sub过程分为事件过程和通用过程,过程不允许嵌套定义,即在Sub过程中再定义 Sub过程;函数过程必须有一个返回值,当过程的声明语句中使用了可选参数的时候,允许实参个数与形参不同。 【知识模

29、块】 过程 23 【正确答案】 D 【试题解析】 子过程可以独立使用,也可以使用 Call关键字来进行调用,但此时参数 需要加括号。本题中子程序的名字是 S,故此 B、 C选项可以排除, A选项中缺少参数的括号。 【知识模块】 过程 24 【正确答案】 D 【试题解析】 本题考查的考点是有关过程调用的。窗体加载时首先执行了 Load事件里面的代码,设置 Label1的标题为 “ABCDE”, Label2的标题为 “10”;当单击命令按钮时,调用了 func过程,在这个过程中把传入的。 Label1的标题设置为“1234”, Label2的标题没有发生变化。 【知识模块】 过程 25 【正确答

30、案】 A 【试题解析】 本题中的 fun过程是一个递归调用,如果参数 x为偶数则进入递归;本题中的实参 6传入 fun过程之后,因其是偶数,所以执行 fun(6 2),也就是先输出 3,然后返回到 fun中输出 6。 【知识模块】 过程 26 【正确答案】 C 【试题解析】 本题中的子过程 subf会进行递归调用,只要在参数 s1中取出的字符不是空字符串就进行递归,直到 i的值超过 s1的长度才停止,然后进行回归操作,相当于每一次向 s2中连接的字符都是最后取出的 s1中的字符,最终实现字符串的逆序操作。 【知识模块】 过程 27 【正确答案】 A 【试题解析】 本题考查的考点是有关函数过程的

31、。函数过程可以返回一个函数值,但这个函数值的类型和参数类型没有任何关系:如果不指明参数的类型,则默认参数为变体型:数组作为函数参数时只能通过传地址的方式来调用。 【知识模块】 过程 28 【正确答案】 D 【试题解析】 函数过程和 Sub子过程一样,也可以有参数也可以没有参数;参数传递也可以使用地址传递也可以使用值传递;都是在代码中进行调用,只是函数过程必须有一个返回值,子过程没有。 【知识模块】 过程 29 【正 确答案】 B 【试题解析】 本题考查的考点是有关过程调用的。对于这种复杂的函数调用,一定要搞清楚调用的顺序以及参数传递的是值还是地址。根据过程调用的原则,首先调用最内层的 Funl(x, x 1),其结果为 12, x的值不变仍为 10;然后调用:Funl(x, 12),其结果为 6, x的值也不变为 10;最后调用 Funl(6, x-1),其结果为0, x的值也不变为 10。本题中的传址调用是没有作用的,因为表达式是不能传地址的。 【知识模块】 过程 30 【正确答案】 C 【试题解析】 本题中 search函数的参数是两个字符串,在函数内进行循环,依次取出第一个参数的第 k位和第二个参数进行比较,如果相等则返回 k的值,实际上就是查找第二个参数在第一个参数中出现的位置。 【知识模块】 过程

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

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

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