1、国家二级 VB机试(数据类型及运算)模拟试卷 23及答案与解析 一、选择题 1 以下变量名中合法的是 ( A) x-2 ( B) 12abc ( C) sum total ( D) print 2 下列合法的变量名是 ( A) sum-a ( B) num 9 ( C) print$ ( D) 5avg 3 以下合法的 VB变量名是 ( A) _x ( B) 2y ( C) a#b ( D) x_1_x 4 以下关于变量作用域的叙述中错误的是 ( A)在窗体模块的声明部分声明的 Private变量,其作用域是窗体内的所有 过程 ( B)在标准模块的声明部分声明的 Private变量,其作用域是
2、模块内的所有过程 ( C)在窗体模块的声明部分声明的 Pubilc变量,其作用域是本窗体的所有过程 ( D)在标准模块的声明部分声明的 Pubilc变量,其作用域是应用程序的所有过程 5 在某个事件过程中定义的变量是 ( A)局部变量 ( B)窗体级变量 ( C)全局变量 ( D)模块变量 6 以下合法的 VB变量名是 ( A) _a ( B) yPrint ( C) a-b ( D) Type 7 设在一个工程的窗体中有如下代码: Publlc x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明
3、部分有代码: Public a As Integer: Private b As Integer 关于上述代码,以下叙述中错误的是 ( A)变量 X的作用域是整个工程 ( B)变量 Y的作用域是 Form_Load过程 ( C)变量 a的作用域是整个工程 ( D)变量 b的作用域是整个标准模块 8 以下不合法的 VB变量名是 ( A) filename ( B) read ( C) _y ( D) e5 9 以下关于变量作用域的叙述中,错误的是 ( A)在标准模块声明部分用 Public声明的变量的作用域为整个工程文件 ( B)在标准模块声明部分用 Private声明的变量的作用域为该标准模块
4、 ( C)在窗体的声明部分不能用 Private声明变量 ( D)在过程中不能使用 Public声明变量 10 下列符号常量的声明中不合法的是 ( A) Const a As Single=3 5 ( B) Const a As Double=5+8 ( C) Const a As Integer=”25” ( D) Const a=”OK” 11 在窗体模块的声明部分声明变量时,不能使用的关键字是 ( A) Dim ( B) Public ( C) Private ( D) Static 12 下面变量定义中错误的是 ( A) Public mod As Integer ( B) Stati
5、c buf ( C) Dim ch As String*10 ( D) Dim at(-5 To 一 1) 13 如果要定义一个窗体级变量,定义变量语句的位置应该是 ( A)在使用该变量的过程中 ( B) 在该窗体模块所有过程的前面 ( C)在该窗体模块所有过程的后面 ( D)在某个标准模块中 14 下列说法中,错误的是 ( A)变量名长度不能超过 255个字符 ( B)变量名的第一个字符可以是字母或数字 ( C)变量名只能由字母、数字和下划线组成 ( D)变量名不能使用保留字 15 在标准模块中,将 a定义为全局整型变量的语句是 ( A) Static a As Integer ( B) D
6、im a As Integer ( C) Private a As Integer ( D) Public a As Integer 16 下列说法中,错误的是 ( A)变量名长度不能超过 127个字符 ( B)变量名的第一个字符必须是字母 ( C)变量名不能使用保留字 ( D)变量名只能由字母、数字和下划线组成 17 下面能够将某个变量声明为局部变量的是 ( A)在窗体模块的声明部分,用关键字 Static声明这个变量 ( B)在窗体模块的声明部分,用关键字 Dim声明这个变量 ( C)在需要使用这个变量的过程中,用关键字 Private声明这个变量 ( D)在需要使用这个变量的过程中,用关
7、键字 Public声明这个变量 18 有如下过程代码: Sub var_dim() Static numa As Integer Dim numb As Integer numa=numa+2: numb=numb+1: print numa; numb End Sub 连续 3次调用 var dim过程,第 3次调用时的输出是 ( A) 2 1 ( B) 2 3 ( C) 6 1 ( D) 6 3 19 标准模块中有如下程序代码: Public x As Integer, Y As Integer Sub var Pub() _x=10y=20 End Sub 在窗体上有 1个命令按钮,并有
8、如下事件过程: Private Sub Command1_Click() Dim XAs Integer Call var Pub X=x+100: y=y+100: Print x; y End Sub 运行程序后单击命令按钮,窗体上显示的是 ( A) 100 100 ( B) 100 120 ( C) 110 100 ( D) 110 120 20 窗体上有一个 Text1文本框,一个 Command1命令按钮,并有以下程序: Private Sub Command1 Click() Dim n IfText1 Text”123456”Then n=n+1 Print”口令输入错误 ”&n
9、&”次 ” End If End Sub 希望程序运行时得到左图所示的效果,即:输入口令,单击 “确认口令 ”命令按钮,若输入的口令不是 “123456”,则在窗体上显示输入错误口令的次数。但上面的程序实际显示的是右图所示的效果,程序需要修改。下面修改方案中正确的是 ( A)在 Dim n语句的下面添加一句: n=0 ( B)把 Print”口令输入错误 ”&n&”次 ”改为 Print”口令输入错误 “+n+”次 ” ( C)把 Print”口令输入错误 ”&n&”次 ”改为 Print”口令输入错误 ”&Str(n)&”次 ” ( D)把 Dim n改为 Static n 21 工程文件中
10、包含一个模块文件和一个窗体文件。模块文件的程序代码是:Public x As Integer Private Y As Integer窗体文件的程序代码是: Dim a As Integer Private Sub Form_Load0 DimbAs Integer a: 2: b=3: x=10: y=20 End Sub Private Sub Command1_Click() a=a+5: b=b+5: X=X+5: y=y+5 Print a; b; x; y End Sub 运行程序,单击窗体上的命令按钮,则在窗体上显示的是 ( A) 5 5 15 5 ( B) 7 5 15 25
11、( C) 7 8 15 5 ( D) 7 5 15 5 22 编写如下程序: Private Sub Command1_Click() Dim m As Integer,n As Integer n=2 For m=1 To 3 Print proc(n); Next m End Sub Function proc(i As Integer) Dim a As Integer,Static b As Integer a=a+1: b=b+1 proc=a*b+i End Function 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 3 3 3 ( B) 3 4 5 ( C
12、) 3 5 6 ( D) 1 2 3 23 窗体上有名称为 Commandl的命令按钮,名称分别为 Label1、 Label2、 Label3的标签。编写如下程序: Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer n=5: z=z+n: y=y+n: x=x+y Label1=x: Label2=Y: Label3=z End Sub 运行程序,连续 3次单击命令按钮后, 3个标签中分别显示的是 ( A) 5 5 5 ( B) 15 10 5 ( C) 15 15 1
13、5 ( D) 30 15 5 24 在窗体上画一个命令按钮,然后编写如下程序: Sub inc(a As Integer) Private Sub Commandl_Click() Static x As Integer inc 2: inc 3: inc 4 x=x+a Print x: End Sub End Sub 程序运行后,第一次单击命令按钮时的输出结果为 ( A) 2 3 4 ( B) 2 5 9 ( C) 11 14 18 ( D) 4 9 16 25 设窗体上有一个 Command1命令按钮,还有以下程序代码: Private Sub Command1_Click() Stat
14、ic x As Integer x=x+1 Call proc(x) Print x, End Sub Private Sub proc(a As Integer) Static x As Integer x=x+a: a=x End Sub 程序运行后, 3次单击命令按钮,则产生的输出是 ( A) 1 2 3 ( B) 1 3 5 ( C) 1 3 7 ( D) 2 4 6 26 编写如下程序: Private Sub Command1_Click() Dim n As Integer: Static s As Integer For n=1 To 3 s=s+n Next Print s
15、End Sub 程序运行后,第三次单击命令按钮 Command1时,输出结果为 ( A) 3 ( B) 6 ( C) 9 ( D) 18 27 窗口上画一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Commmand1_Click() x=InputBox(“Input”) Select Case x Case 1, 3 Print”分支 1” Case Is4 Print”分支 2” Case Else Print”Else分支 ” End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗体上显示的是 ( A)分支 1 ( B
16、)分支 2 ( C) Else分支 ( D)程序出错 28 以下关于 MsgBox的叙述中,错误的是 ( A) MsgBox函数返回一个整数 ( B)通过 MsgBox函数可以设置信息框中图标和按钮的类型 ( C) MsgBox语句没有返 回值 ( D) MsgBox函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量 29 在窗体上画一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Commmand1_Click() Static x As Integer Cls For I=1 To 2 y=y+x: x=x+2 Next Print x,
17、 Y End Sub 程序运行后,连续三次单击 Commandl按钮 后,窗体上显示的是 ( A) 4 2 ( B) 12 18 ( C) 12 30 ( D) 4 6 30 在窗体上画一个名称为 Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() AS=”VisualBasic” Print String(3, aS) End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是 ( A) VVV ( B) Vis ( C) sic ( D) 11 国家二级 VB机试(数据类型及运 算)模拟试卷 23答案与解析 一、选择题 1 【正
18、确答案】 C 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。 【知识模块】 数据类型及运算 2 【正确答案】 B 【试题解析】 变量是用一 个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文宁母,最后一个字符可以是类型说明符;名称的有效字符为
19、 255个:不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。 【知识模块】 数据类型及运算 3 【正确答案】 D 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名:不区分字母的大小写。 【知识模块】
20、 数据类型及运算 4 【正确答案】 C 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为以下 3种类型: 局部 (Local)变量:在过程 (事件过程或通用过程 )内定义 的变量,其作用域为该变量所在的过程,定义时使用 Dim、 Static关键字; 模块 (Module)变量:模块变量包括窗体变量和标准模块变量 2种。其中,窗体变量可用于该窗体内的所有过程,其作用域为该变量所在的窗体;标准模块变量是在标准模块中定义的变量,变量的声明和使用与窗体模块中窗体变量类似。区别是标准模块是只含有程序代码的应用程序文件,其扩展名为 bas; 全局 (Public)变量:全局变量也称为全程
21、变量,在标准模块的声明部分声明。全局变 量的作用域最大,可以在工程的每个模块、每个过程中使用。 【知识模块】 数据类型及运算 5 【正确答案】 A 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型: 【知识模块】 数据类型及运算 6 【正确答案】 B 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则: 名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符; 名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留
22、字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。 【知识模块】 数据类型及运算 7 【正确答案】 A 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型: 【知识模块】 数据类型及运算 8 【正确答案】 C 【试题解析】 变量是用一个名称来表示的 ,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255个;不能用 VB的保留字作变量名,但变
23、量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。 【知识模块】 数据类型及运算 9 【正确答案】 C 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型: 【知识模块】 数据类型及运算 10 【正确答案】 C 【试题解析】 声明符号常量用来代替数值或字符串。一般格式为: Const常量名=表达式 ,常量名 =表达式 ,其中要求表达式的类型和常量的类型是相同或者相容的。 “25”是一个字符串常量,无法赋值给整型符
24、号常量 a。 【知识模块】 数据类型及运算 11 【正确答案】 D 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类 型: 【知识模块】 数据类型及运算 12 【正确答案】 A 【试题解析】 定义变量时需要使用 As类型或者类型说明符来指明变量的数据类型,如果不指明则为隐式声明,该变量为变体型; mod是关键字表示求余运算,根据标识符命名规则不能作为变量名。 【知识模块】 数据类型及运算 13 【正确答案】 B 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)
25、变量、模块 (Module)变量和全局 (Public)变量 3种类型: 【知识模块】 数据类型及运算 14 【正确答案】 B 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一一个字符可以是类型说明符:名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名:不区分字母的大小写。 【知识模块】 数据类型及运算 15 【正确答案】 D 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可
26、以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型: 【知识模块】 数据类型及运算 16 【正确答案】 A 【知识模块】 数据类型及运算 17 【正确答案】 C 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (ModuIe)变量和全局 (Public)变量 3种类型。 【知识模块】 数据类型及运算 18 【正确答案】 C 【试题解析】 Static语句在过程级别中使用,用于声明变量并分配 存储空间,在整个代码运行期间都能保留使用 Static语句声明的变量的值。本题中,当第 1次调用过程时,静态变量 n
27、uma的初值为 0、普通变量 numb的初值为 0,执行循环语句后,静态变量 numa的值应为 2、普通变量 numb的值为 1;当第 2次调用过程时,静态变量 numa的初值为 2、普通变量 numb的初值为 0,执行循环语句后,静态变量 numa的值应为 4、普通变量 numb的值为 1;当第 3次调用过程时,静态变量 numa的初值为 4、普通变量 numb的初值为 0,执行循环语句后,静态变量 numa的值应为 6、普通变量 numb的值 为 1。 【知识模块】 数据类型及运算 19 【正确答案】 B 【试题解析】 在标准模块用: Public关键字声明的全局变量,其作用域最大,可以在
28、工程的每个模块、每个过程中使用。但当不同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量。当一个全局变量与一个过程级变量重名时,当在本过程中直接使用这个变量名时,被认为是指局部变量。如果要在这个过程中使用同名的全局变量,要使用模块名来修饰变量名。在本题的事件过程中,由于变量 x被声明为过程级变量,其初始值为 0,调用过程 var pub不会改变其值,而变量 y为标准模块中声明的全局变量,调用过程 var pub后其值为 20。故最后输出结果为 100和 120。 【知识模块】 数据类型及运算 20 【正确答案】 D 【试题解析】 本题中题干部分的程序之所以会产生不合要求的结果,其原
29、因是在单击事件中的第一条语句为 Dim n,这样的话每次单击按钮时触发此事件,都将会执行这条语句,重新定义一个局部变量 n并设其默认初值为 0。 Static语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期间都能保留使用 Static语句声明的变量的值,因 此此处应该使用 Static n来声明变量。 【知识模块】 数据类型及运算 21 【正确答案】 D 【试题解析】 本题中在模块文件中声明的 x是全局变量, y是模块变量;在窗体中声明的 a是模块级变量;在窗体的 Load事件中声明了局部变量 b,而且隐式声明了局部变量 y;在按钮的 Click事件中使用到的 a是模块级变量
30、,其值为 2; b是隐式声明的局部变量,其初值为 0; x是全局变量,其值为 10; y也是隐式声明的局部变量,其初值为 5。 【知识模块】 数据类型及运算 22 【正确答案】 B 【试题 解析】 使用 Dim关键字定义的是动态局部变量,过程执行结束后即被释放;使用 Static关键字定义的是静态局部变量,过程执行结束后仍然保留。本题中函数 proc中的局部变量 a是动态变量, b是静态变量。即每次函数调用后 b的值会保留。先后三次调用 proc(n)方法,依次输出 3、 4、 5。 【知识模块】 数据类型及运算 23 【正确答案】 D 【试题解析】 Static语句在过程级别中使用,用于声明
31、变量并分配存储空间,在整个代码运行期间都能保留使用 Static语句声明的变量的值。在窗体的声明段用Private声明的变量为模块级变量,其作用域为整个窗体。本题中,当第 1次单击时,静态变量 y的初值为 0,执行调用语句后,静态变量 y的值应为 5,模块级变量 x的值为 5;当第 2次单击时,静态变量 y的初值为 5,执行调用语句后,静态变量 y的值应为 10,模块级变量 x的值为 15;当第 3次调用过程时,静态变量 y的初值为 10,执行调用语句后,静态变量 y的值应为 15,模块级变量 x的值为30。 【知识模块】 数据类型及运算 24 【正确答案】 B 【试题解析】 Static语句
32、在过程级别中使用,用于声明变量并分配存储空间 ,在整个代码运行期间都能保留使用 Static语句声明的变量的值。本题的 inc过程中的x是一个静态变量,在三次调用过程中变量的值会保留,分别为 2、 2+3、 5+4。 【知识模块】 数据类型及运算 25 【正确答案】 C 【试题解析】 本题中在 Commandl Click过程中和 Sub过程 proc中分别定义了一个静态变量 x,这两个 x都是局部变量,隶属于不同的局部,互不干涉;当单击命令按钮时,单击事件中的 x加 1,然后调用 proc过程;由于 proc的形参 a采用地址传递,因此对 a的改变会影响实参 x。三次 单击按钮分别使得两个过
33、程中的 x分别变化,都会保留上一次过程结束时的值。 【知识模块】 数据类型及运算 26 【正确答案】 D 【试题解析】 Static语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期间都能保留使用 Static语句声明的变量的值。在本题中连续 3次单击命令按钮,第一次单击时输出的 s=1+2+3=6。第二次单击时输出的s=6+1+2+3=12,第三次单击时输出的 s=12+1+2+3=18。 【知识模块】 数据类型及运算 27 【正确答案】 C 【 试题解析】 本题考查 switch结构。在 Commandl的 Click事件响应代码里面,通过 InputBox输入数据给变量
34、x,然后 switch根据 x的值输出不同的信息。在输入对话框中输入 2,那么 x的值为 2,在 switch的多个 Case中 Case Else条件符合,因此输出的是 “Else分支 ”。 【知识模块】 数据类型及运算 28 【正确答案】 D 【试题解析】 本题考查 MsgBox函数的使用,语法是: MsgBox(Prompt, Buttons, Title, Helpfile, Context) 参数含义如下: Prompt:必需的,字符串表达式,作为显示在对话框中的消息。 Buttons:可选的,数值表达式是指的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的
35、强制回应等,缺省值为 0。 Title:可选的,在对话框标题栏中显示的字符串表达式,缺省将应用程序名放在标题栏中。 Helpfile:可选的,字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 Helpfile,则也必须提供 Context。 Context:可选的, 数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 Context,则也必须提供 Helpfile。选项 A)、 B)和 C)都是正确的,选项 D)错误, MsgBox的第二个参数决定对话框中显示的按钮数量和形式。 【知识模块】 数据类型及运算 29 【正确答案】 B 【试题解析】
36、本题考查 Static变量, Static变量在函数退出之后其值依然存在,下次执行函数的时候还保存上次的值。 在本题中, x是 Static变量,第一次点击命令按钮的时候, x的初值为 0,进入For循环 ,循环两次, y和 x的值变化过程分别为: 0和 2、 2和 4;第二次点击命令按钮, y是临时变量的初值为 0, x由于是 Static变量,其值是上次值为 4,因此For循环中, y和 x的值变化过程为: 4和 6、 10和 8;第三次点击命令按钮, x的值为 10,因此 y和 x在 For循环中的变化过程为: 8和 10、 18和 12,因此答案选B)。 【知识模块】 数据类型及运算 30 【正确答案】 A 【试题解析】 本题考查 VB常用内部函数。 String函数的语法是: String(number,character) 作用是产生字符串,其中 character是需要生成的字符, number是生成的个数,比如 string(3, ”h”)就会生成含义 3个 “h”的字符串。本题中调用 String函数, number参数为 3, character参数是 A$变量的首字母,因此返回值为:VVV。 【知识模块】 数据类型及运算