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

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

1、国家二级 VB机试(选择题)模拟试卷 3及答案与解析 一、选择题 1 窗体上有名称为 Commandl的命令按钮,其事件过程如下: Option Base 1 Private Sub Command l_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、个名称为 Commandl的命令按钮,有程序如下: Option Base 1 Private Sub Commandl_Click() Dim a(10)As Integer第 1个 For For i=1 To 10 a(i)=Int(Rnd*100+100) Print a(i); Next x=a(i): y=x第 2个 For For i=1 To 10 Ifx a(i)Then x=a(i) Ify a(i)Then y=a(i) s=s+a(i) Next Print x, y, s End Sub 关于上述程序的叙述中,正确的是 ( A)程序运行出错,第 1个 For循环之后的

3、 x=a(i)赋值语句错 ( B)程序正常运行, x是 1 0个随机数中的最大值 ( C)程序正常运行, s是 10个随机数的和 ( D)程序正常运行, 10个随机数的范尉是 100-200 3 在窗体卜画一个文本框,其名称为 Textl,然后编写如下程序: Option Base l Private Sub Form_Click()Dim Arr(1 0)As Integer For i=6 To 10 Arr(i)=i-3 Next i Text 1 Text=Str(Arr(6)+Arr(Arr(6)+Arr(1 0) End Sub 程序运行后,单击窗体,在文本框中显示的内容是 ( A

4、) 7 ( B) 8 ( C) 9 ( D) 10 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 Base 1 Private Sub Form_Click() Dim a(3, 3)As

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

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

7、Arr(2+Art(x) End Sub 程序运行后,单击命令按钮 ,在输入对话框中输入 7,则输出结果为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 8 设有下面程序代码: Private Sub Command l_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) m Then n=m: m=a(k) Elselfa(k) n And a(k) m Then n=a(k

8、) End If Next k Print n End Sub 程序运行时的输出是 ( A)数组中最大的数 (即 98) ( B)数组中最小的数 (即 12) ( C)数组中 第 2大的数 (即 87) ( D)数组中第 1个数 (即 22) 9 设有下面程序代码: Option Base 1 Private Sub Command l_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)

9、; Next k End Sub 程序运行时的输出是 ( 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)数组可以由不同类型的控件

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

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

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

13、于控件数组的叙述中,正确的是 ( A)控件数组可以由不同类型的控件组成 ( B)控件数组元素的最小下标值为 1 ( C)在设计阶段,可以改变控件数组元素的 Index属性值 ( D)控件数组的名字由 Caption属性指定 18 窗体上有一个由两个文本框组成的控件数组,名称为 Textl,并有如下事件过程: Private Sub Text l_Change(Index As Integer) Select Case Index Case 0 Textl(1) FontSize=Textl(0) FontSize*2Textl(1) Text=Textl(0) Text Case 1 Text

14、l(0) FontSize=Textl(1) FontSize 2Textl(0) Text=Textl(1) Text Case Else MsgBox”执行 Else分支 ” End Select End Sub 关于上述程序,以下叙述中错误的是 ( A) Index用于标识数组元素 ( B)本程序中 Case Else分支的语句永远不会被执行 ( C)向任何一个文本框输入字符,都会在另一个文本框中显示该字符 ( D)下标为 0的文本框中显示的字符尺寸将越来越小 19 以下叙述中错误的是 ( A)标准模块文件的扩展名是 bas ( B)标准模块文件是纯代码文件 ( C)在标准模块中声明的全

15、局变量可以在整个工程中使用 ( D)在标准模块中不能定义过程 20 下面不能在信息框中输出 “VB”的是 ( A) MsgBox”VB” ( B) x=MsgBox(”VB”) ( C) MsgBox(”VB”) ( D) Call MsgBox”VB” 21 以下关 =F过程的叙述中,错误的是 ( A)在 Sub过程中不能再定义 Sub过程 ( B)事件过程也是 Sub过程 ( C)过程调用语句的形参个数必须与实参个数相同 ( D)函数过程一定有返回值 22 设子程序过程定义的首部为: Public Sub S(XAs Integer, YAs Single)则 以下正确的调用形式为 ( A

16、) Call S 5, 4 8 ( B) Call Sub(5, 4 8) ( C) Sub 5, 4 8 ( D) S 5, 4 8 23 在窗体上画两个标签和一个命令按钮,其名称分别为 Label1、 Label2和Commandl,然后编写如下程序: Private Sub func(L As Label) L Caption=”1234” End Sub Private Sub Form_Load() Label1 Caption=”ABCDE” Label2 Caption=1 0 End Sub Private Sub Command l_Click() a=Val(Label2

17、Caption) Call func(Labell) Label2 Caption=a End Sub 程序运行后,单击命令按钮,则在两个标签中显示的内容分别为 ( A) ABCD和 10 ( B) 1234和 100 ( C) ABCD和 100 ( D) 1234和 10 24 设有如下 Commandl的单击事件过程及 fun过程: Private Sub Command l_Click() Dim x As Integer X=Val(InputBox(”请输入一个整数 ”) fun(x) End Sub Private Sub fun(x As Integer) Ifx Mod 2=

18、0 Then fun(x 2) Print x; End Sub 执行上述程序,输入 6,结果是 ( A) 3 6 ( B) 6 3 ( C) 6 ( D)程序死循环 25 编写如下程序: Private Sub Command l_Click() Dim strl As String str2 As String str1=InputBox(”输入一个字符串 ”): subfstrl, str2: Print str2 End Sub Sub subf(s 1 As String, s2 As String) Dim temp As String: Static i As Integer i

19、=i+1 temp: Mid(sl, i, 1) Iftemp “Then subf s1 s2 s2=s2&temp End Sub 程序运行后,单击命令按钮 Commandl,且输入 “abcdef”,则输出结果为 ( A) afbecd ( B) cdbeaf ( C) fedcba ( D) adbecf 26 以下关于函数过程的叙述中,正确的是 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 27

20、在 VB中,函数过程与子程序过程的区别之一是 ( A)函数过程必须有参数,而子程序过程可以没有 ( B)函数过程的参数传递只采用值传递,而子程序过程只采用地址传递 ( C)在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能 ( D)函数过程有返回值,而子程序过程没有 28 在窗体上画一个命令按钮 (名称为 Commandl),并编写如下代码: Function Fun 1(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 S

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

22、 ch As String)As Integer For k=1 To Len(str) c=Mid(str, k, 1) If c=ch Then search=k: Exit Function End If Next k search=0 End Function 程序运行后,单击命令按钮 Commandl,输出结果是 ( A) 0 ( B) 8 ( C) 6 ( D)未找到 30 现有如下程序: Private Sub Command l_Click() s=0 For i=1 To 5 s=s+f(5 + i) Next Print s End Sub Public Function

23、f(x As Integer) If x =10 Then t=x+1 Else t=x+2 End If f=t End Function 运行程序,则窗体上显示的是 ( A) 38 ( B) 49 ( C) 61 ( D) 70 31 假定有以下通用过程: Function Fun(n As Integer)As Integer x=n*n: Fun=x-11 End Function 在窗体上画一个命令按钮,其名称为 Commandl,然后编写如下事件过程: Private Sub Command l_Click() Dim iAs Integer For i=1 To 2 y=Fun(

24、i)Print y; Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是 ( A) 1 3 ( B) 10 8 ( C) -10-7 ( D) 0 5 32 求 1 !+2 !+10 ! 的程序如下: Private Function s(x As Integer) f=1 For i=1 To x f=f*i Next s=f End Function Private Sub Command l_Click() Dim i As Integer,y As Long For i=1 To 10 ( ) Next Print y End Sub 为实现功能要求,程序的括

25、号中应该填入的内容是 ( A) Call s(i) ( B) Call s ( C) y=y+s(i) ( D) y=y+s 国家二级 VB机试(选择题)模拟试卷 3答案与解析 一、选择题 1 【正确答案】 D 【 试题解析】 本题中使用了一个循环为 b数组进行赋值,每个元素的值是对应 a数组元素的值加上下标的值。因此 b数组中的元素为 (3、 6、 10、 7、 14、 12),然后累加和为 52。 2 【正确答案】 A 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1但大于或等于 0的随机数,本题中产生的整数的范围是 100-199;在第一个循环结束后,循环变量 i的值为不满足

26、循环条件的值 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 【试题解析】 本题在循环中输入数据,当第一次输入 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,跳出循环

27、后 k的值为 3,将输出 b(3)的值。 5 【正确答案】 D 【试题解析】 本题中使用二重循环为数组赋值,分许输出的结果,每个元素和行号和列号的关系可以看出,每个元素的值应该等于 i+(j-1)*3。 6 【正确答案】 A 【试题解析】 本题中的过程 P的功能是为形参数组 b进行赋值,数组作为参数时采用的是地址传递,所以对形参的改变将会影响实参,也就是在窗体的单击事件中,首先在一个循环中为数组 a赋值,然后调用了 P过程重新为 a赋值覆盖掉原来的值。 7 【正确答案】 C 【试题解析】 本题是一个简单的数组操作,首先在一个循环中为数组元 素赋值,然后输出指定的数组元素值。最终输出的是 Arr

28、(2+Arr(7)=Arr(6)=5。 8 【正确答案】 C 【试题解析】 本题显然是求取数组最大值的,先取得数组的第一个元素作为最大值,然后用 m保存最大值;在循环中如果发现了有比 m还大的数组元素,则将该元素作为新的最大值,原来的最大值 m赋值给 n:如果元素不比 m大就去比较元素是否大于 n,若大于 n则将元素赋值给 n,所以循环结束后 n中的值是数组中第2大的数。 9 【正确答案】 A 【试题解析】 本题是一个简单的数组赋值。只要把握好 每次为哪个元素赋以什么样的值就不会出错。最后 x数组中存放的数据依次是 27、 24、 41、 64、 98、 58。 10 【正确答案】 A 【试题

29、解析】 控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标。 11 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标。 12 【正确答案】 D 【试题解析】 本题考 查的考点是有关控件数组的。控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从 0开始。建立控件数组有两种方法:一是先在窗体上画好一个控件,然后再用 “复制 ”和 “粘贴 ”的方法建立

30、;二是先在窗体上先画出若干相同类型的控件,然后再将它们的名称改为同一个名称,再将其 Index属性分别设置为不同值即可。采用第一种方法建立控件数组时,每个数组元素的名称、大小、事件均使用同一个,区别只在于 Index属性不一样。 13 【正确答案】 D 【试题解析】 控件数组是一组具有共同名称和类型的控件,它拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始。 14 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标,默认索引号从 0开始,不能为负值。

31、15 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标,默认索引号从 0开始,不能为负值。从过程的首部无法确定数组中控件的个数。 16 【正确答案】 A 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号 (Index),即下标,默认索引号从 0开始,不能为负值。 17 【正确答案】 C 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始,

32、在设计阶段可以手动指定控件数组元素的 Index属性值。 18 【正确答案】 D 【试题解析】 控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号 (Index),即下标,默认索引号从 0开始。本题中的两个文本框的 Index值分别为 0和 1,所以 Case Else分支的语句永远不会被执行;根据程序向任何一个文本框输入字符,都会在另一个文本框中显示该字符;在 0号文本框中输入时 1号文本框的字号是 0号文本框字号的 2倍,在1号文本框中输入时 0号文本框的字号是 1号文本框字号的一半,相当于没有变化,不会越来越小 。 19 【正确答案】 D 【试题

33、解析】 本题考查的考点是有关标准模块的。 Visual Basic中的标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,其扩展名为 bas,里面只有代码而没有任何控件。其中全局声明放在标准模块的首部,可以在整个工程中使用。 20 【正确答案】 D 【试题解析】 MsgBox()函数用于显示提示信息,并可返回一个代表用户单击了哪个按钮的 Integer类型值,当其作为函数使用时必须将参数放在括号内部,而返回值可以赋 值给一个变量,也可以单独使用此函数而不将其返回值赋值给变量;MsgBox过程也用于显示提示信息,作为过程可以独立使用,也可以使用 Call关键字来进行调

34、用,但此时参数需要加括号。 21 【正确答案】 C 【试题解析】 Sub过程分为事件过程和通用过程,过程不允许嵌套定义,即在Sub过程中再定义 Sub过程;函数过程必须有一个返回值,当过程的声明语句中使用了可选参数的时候,允许实参个数与形参不同。 22 【正确答案】 D 【试题解析】 子过程可以独立使用,也可以使用 Call关键 字来进行调用,但此时参数需要加括号。本题中子程序的名字是 S,故此 B、 C选项可以排除, A选项中缺少参数的括号。 23 【正确答案】 D 【试题解析】 本题考查的考点是有关过程调用的。窗体加载时首先执行了 Load事件里面的代码,设置 Labell的标题为 “AB

35、CDE”, Label2的标题为 “10”:当单击命令按钮时,调用了 func过程,在这个过程中把传入的 Labell的标题设置为“1234”, Label2的标题没有发生变化。 24 【正确答案】 A 【试题解析】 本题中的 fun过程是一 个递归调用,如果参数 x为偶数则进入递归;本题中的实参 6传入 fun过程之后,因其是偶数,所以执行 fun(6 2),也就是先输出 3,然后返回到 fun中输出 6。 25 【正确答案】 C 【试题解析】 本题中的子过程 subf会进行递归调用,只要在参数 sl中取出的字符不是空字符串就进行递归,直到 i的值超过 s1的长度才停止,然后进行回归操作,相

36、当于每一次向 s2中连接的字符都是最后取出的 s1中的字符,最终实现字符串的逆序操作。 26 【正确答案】 A 【试题解析】 本题考查的考点是有 关函数过程的。函数过程可以返回一个函数值,但这个函数值的类型和参数类型没有任何关系;如果不指明参数的类型,则默认参数为变体型;数组作为函数参数时只能通过传地址的方式来调用。 27 【正确答案】 D 【试题解析】 函数过程和 Sub子过程一样,也可以有参数也可以没有参数;参数传递也可以使用地址传递也可以使用值传递:都是在代码中进行调用,只是函数过程必须有一个返回值,子过程没有。 28 【正确答案】 B 【试题解析】 本题考查的考点是有关过程调用的。对于

37、这种复杂的函数调用,一定要搞 清楚调用的顺序以及参数传递的是值还是地址。根据过程调用的原则,首先调用最内层的 Funl(x, x-1),其结果为 12, x的值不变仍为 10;然后调用Funl(x, 12),其结果为 6, x的值也不变为 10;最后调用 Funl(6, x-1),其结果为0, x的值也不变为 10。本题中的传址调用是没有作用的,因为表达式是不能传地址的。 29 【正确答案】 C 【试题解析】 本题中 search函数的参数是两个字符串,在函数内进行循环,依次取出第一个参数的第 k位和第二个参数进行比较,如果相等则返回 k的值,实际上就是 查找第二个参数在第一个参数中出现的位置

38、。 30 【正确答案】 B 【试题解析】 本题考查的考点是有关函数调用和 If语句的。要注意在前 4次循环中每次调用 f函数时传递的参数分别为 6、 7、 8、 9,都是小于 10的,最后一次循环传递参数 10,所以最终结果应该为 8+9+10+11+11=49。 31 【正确答案】 C 【试题解析】 本题共调用 Fun函数 2次,每次的函数值都是参数的平方减去 11的值,故此输出 -10, -7。 32 【正确答案】 C 【试题解析】 函数过程有一个返回值 ,一般出现在表达式中组成表达式的一部分。本题的题目要求累加各个数的阶乘,而函数 s的作用是求参数的阶乘,因此应该在每次循环中累加 f函数的值,参数为循环变量 i。

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

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

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