1、国家二级 VB 机试(数据类型及运算)模拟试卷 23 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.以下变量名中合法的是(分数:2.00)A.x-2B.12abcC.sum totalD.print2.下列合法的变量名是(分数:2.00)A.sum-aB.num 9C.print$D.5avg3.以下合法的 VB 变量名是(分数:2.00)A._xB.2yC.a#bD.x_1_x4.以下关于变量作用域的叙述中错误的是(分数:2.00)A.在窗体模块的声明部分声明的 Private 变量,其作用域是窗体内的所有过程B.在标准模块的声明部分声明
2、的 Private 变量,其作用域是模块内的所有过程C.在窗体模块的声明部分声明的 Pubilc 变量,其作用域是本窗体的所有过程D.在标准模块的声明部分声明的 Pubilc 变量,其作用域是应用程序的所有过程5.在某个事件过程中定义的变量是(分数:2.00)A.局部变量B.窗体级变量C.全局变量D.模块变量6.以下合法的 VB 变量名是(分数:2.00)A._aB.yPrintC.a-bD.Type7.设在一个工程的窗体中有如下代码:Publlc x As IntegerPrivate Sub Form_Load() Dim y As IntegerEnd Sub 在该工程的标准模块的声明部
3、分有代码:Public a As Integer:Private b As Integer关于上述代码,以下叙述中错误的是(分数:2.00)A.变量 X 的作用域是整个工程B.变量 Y 的作用域是 Form_Load 过程C.变量 a 的作用域是整个工程D.变量 b 的作用域是整个标准模块8.以下不合法的 VB 变量名是(分数:2.00)A.filenameB.readC._yD.e59.以下关于变量作用域的叙述中,错误的是(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Private 声明的变量的作用域为该标准模块C.在窗体
4、的声明部分不能用 Private 声明变量D.在过程中不能使用 Public 声明变量10.下列符号常量的声明中不合法的是(分数:2.00)A.Const a As Single=35B.Const a As Double=5+8C.Const a As Integer=”25”D.Const a=”OK”11.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.PrivateD.Static12.下面变量定义中错误的是(分数:2.00)A.Public mod As IntegerB.Static bufC.Dim ch As String*10
5、D.Dim at(-5 To 一 1)13.如果要定义一个窗体级变量,定义变量语句的位置应该是(分数:2.00)A.在使用该变量的过程中B.在该窗体模块所有过程的前面C.在该窗体模块所有过程的后面D.在某个标准模块中14.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255 个字符B.变量名的第一个字符可以是字母或数字C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字15.在标准模块中,将 a 定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Pu
6、blic a As Integer16.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 127 个字符B.变量名的第一个字符必须是字母C.变量名不能使用保留字D.变量名只能由字母、数字和下划线组成17.下面能够将某个变量声明为局部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static 声明这个变量B.在窗体模块的声明部分,用关键字 Dim 声明这个变量C.在需要使用这个变量的过程中,用关键字 Private 声明这个变量D.在需要使用这个变量的过程中,用关键字 Public 声明这个变量18.有如下过程代码: Sub var_dim() Static numa
7、 As Integer Dim numb As Integer numa=numa+2:numb=numb+1:print numa;numb End Sub 连续 3 次调用 var dim 过程,第 3 次调用时的输出是(分数:2.00)A.2 1B.2 3C.6 1D.6 319.标准模块中有如下程序代码: Public x As Integer,Y As Integer Sub var Pub() _x=10y=20 End Sub 在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim XAs Integer Call var
8、 Pub X=x+100:y=y+100:Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是(分数:2.00)A.100 100B.100 120C.110 100D.110 12020.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub Command1 Click() Dim n IfText1Text4 Print”分支 2” Case Else Print”Else 分支” End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗体上显示的是(分数:2.00)A.分支 1B.分支
9、2C.Else 分支D.程序出错28.以下关于 MsgBox 的叙述中,错误的是(分数:2.00)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,Y End Sub 程序运行
10、后,连续三次单击 Commandl 按钮后,窗体上显示的是(分数:2.00)A.4 2B.12 18C.12 30D.4 630.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() AS=”VisualBasic” Print String(3,aS) End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.VVVB.VisC.sicD.11国家二级 VB 机试(数据类型及运算)模拟试卷 23 答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00
11、)1.以下变量名中合法的是(分数:2.00)A.x-2B.12abcC.sum total D.print解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。2.下列合法的变量名是(分数:2.00)A.sum-aB.num 9 C.print$D.5avg解析:解析:变量是用一个名称来表示的,给
12、变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文宁母,最后一个字符可以是类型说明符;名称的有效字符为 255 个:不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。3.以下合法的 VB 变量名是(分数:2.00)A._xB.2yC.a#bD.x_1_x 解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用
13、 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名:不区分字母的大小写。4.以下关于变量作用域的叙述中错误的是(分数:2.00)A.在窗体模块的声明部分声明的 Private 变量,其作用域是窗体内的所有过程B.在标准模块的声明部分声明的 Private 变量,其作用域是模块内的所有过程C.在窗体模块的声明部分声明的 Pubilc 变量,其作用域是本窗体的所有过程 D.在标准模块的声明部分声明的 Pubilc 变量,其作用域是应用程序的所有过程解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为
14、以下 3 种类型: 局部(Local)变量:在过程(事件过程或通用过程)内定义 的变量,其作用域为该变量所在的过程,定义时使用 Dim、Static关键字; 模块(Module)变量:模块变量包括窗体变量和标准模块变量 2 种。其中,窗体变量可用于该窗体内的所有过程,其作用域为该变量所在的窗体;标准模块变量是在标准模块中定义的变量,变量的声明和使用与窗体模块中窗体变量类似。区别是标准模块是只含有程序代码的应用程序文件,其扩展名为bas; 全局(Public)变量:全局变量也称为全程变量,在标准模块的声明部分声明。全局变量的作用域最大,可以在工程的每个模块、每个过程中使用。5.在某个事件过程中定
15、义的变量是(分数:2.00)A.局部变量 B.窗体级变量C.全局变量D.模块变量解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:6.以下合法的 VB 变量名是(分数:2.00)A._aB.yPrint C.a-bD.Type解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则: 名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也
16、不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。7.设在一个工程的窗体中有如下代码:Publlc x As IntegerPrivate Sub Form_Load() Dim y As IntegerEnd Sub 在该工程的标准模块的声明部分有代码:Public a As Integer:Private b As Integer关于上述代码,以下叙述中错误的是(分数:2.00)A.变量 X 的作用域是整个工程 B.变量 Y 的作用域是 Form_Load 过程C.变量 a 的作用域是整个工程D.变量 b 的作用域是整个标准模块解析:解析:根据变量的定义位
17、置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:8.以下不合法的 VB 变量名是(分数:2.00)A.filenameB.readC._y D.e5解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。9.以下关于变量作用域
18、的叙述中,错误的是(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Private 声明的变量的作用域为该标准模块C.在窗体的声明部分不能用 Private 声明变量 D.在过程中不能使用 Public 声明变量解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:10.下列符号常量的声明中不合法的是(分数:2.00)A.Const a As Single=35B.Const a As Double=5+8C.Const a As I
19、nteger=”25” D.Const a=”OK”解析:解析:声明符号常量用来代替数值或字符串。一般格式为:Const 常量名=表达式,常量名=表达式,其中要求表达式的类型和常量的类型是相同或者相容的。“25”是一个字符串常量,无法赋值给整型符号常量 a。11.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.PrivateD.Static 解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:12.下面变量定义中错误的是(分数:2.00)A.Pub
20、lic mod As Integer B.Static bufC.Dim ch As String*10D.Dim at(-5 To 一 1)解析:解析:定义变量时需要使用 As 类型或者类型说明符来指明变量的数据类型,如果不指明则为隐式声明,该变量为变体型;mod 是关键字表示求余运算,根据标识符命名规则不能作为变量名。13.如果要定义一个窗体级变量,定义变量语句的位置应该是(分数:2.00)A.在使用该变量的过程中B.在该窗体模块所有过程的前面 C.在该窗体模块所有过程的后面D.在某个标准模块中解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Mo
21、dule)变量和全局(Public)变量 3 种类型:14.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255 个字符B.变量名的第一个字符可以是字母或数字 C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一一个字符可以是类型说明符:名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名:不区分字母的大小写。15
22、.在标准模块中,将 a 定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Public a As Integer 解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:16.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 127 个字符 B.变量名的第一个字符必须是字母C.变量名不能使用保留字D.变量名只能由字母、数字和下划线组成解析:17.下面能够将某个变量声明为局
23、部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static 声明这个变量B.在窗体模块的声明部分,用关键字 Dim 声明这个变量C.在需要使用这个变量的过程中,用关键字 Private 声明这个变量 D.在需要使用这个变量的过程中,用关键字 Public 声明这个变量解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(ModuIe)变量和全局(Public)变量 3 种类型。18.有如下过程代码: Sub var_dim() Static numa As Integer Dim numb As Integer numa=numa+2:n
24、umb=numb+1:print numa;numb End Sub 连续 3 次调用 var dim 过程,第 3 次调用时的输出是(分数:2.00)A.2 1B.2 3C.6 1 D.6 3解析:解析:Static 语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期间都能保留使用 Static 语句声明的变量的值。本题中,当第 1 次调用过程时,静态变量 numa 的初值为 0、普通变量 numb 的初值为 0,执行循环语句后,静态变量 numa 的值应为 2、普通变量 numb 的值为 1;当第 2 次调用过程时,静态变量 numa 的初值为 2、普通变量 numb 的初
25、值为 0,执行循环语句后,静态变量 numa 的值应为 4、普通变量 numb 的值为 1;当第 3 次调用过程时,静态变量 numa 的初值为 4、普通变量 numb 的初值为 0,执行循环语句后,静态变量 numa 的值应为 6、普通变量 numb 的值为 1。19.标准模块中有如下程序代码: Public x As Integer,Y As Integer Sub var Pub() _x=10y=20 End Sub 在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim XAs Integer Call var Pub X=x
26、+100:y=y+100:Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是(分数:2.00)A.100 100B.100 120 C.110 100D.110 120解析:解析:在标准模块用:Public 关键字声明的全局变量,其作用域最大,可以在工程的每个模块、每个过程中使用。但当不同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量。当一个全局变量与一个过程级变量重名时,当在本过程中直接使用这个变量名时,被认为是指局部变量。如果要在这个过程中使用同名的全局变量,要使用模块名来修饰变量名。在本题的事件过程中,由于变量 x 被声明为过程级变量,其初始值为 0
27、,调用过程 var pub 不会改变其值,而变量 y 为标准模块中声明的全局变量,调用过程 var pub 后其值为 20。故最后输出结果为 100 和 120。20.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub Command1 Click() Dim n IfText1Text4 Print”分支 2” Case Else Print”Else 分支” End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗体上显示的是(分数:2.00)A.分支 1B.分支 2C.Else 分支 D.程序出错解析:解析
28、:本题考查 switch 结构。在 Commandl 的 Click 事件响应代码里面,通过 InputBox 输入数据给变量 x,然后 switch 根据 x 的值输出不同的信息。在输入对话框中输入 2,那么 x 的值为 2,在 switch的多个 Case 中 Case Else 条件符合,因此输出的是“Else 分支”。28.以下关于 MsgBox 的叙述中,错误的是(分数:2.00)A.MsgBox 函数返回一个整数B.通过 MsgBox 函数可以设置信息框中图标和按钮的类型C.MsgBox 语句没有返回值D.MsgBox 函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数
29、量 解析:解析:本题考查 MsgBox 函数的使用,语法是: MsgBox(Prompt,Buttons,Title,Helpfile,Context) 参数含义如下: Prompt:必需的,字符串表达式,作为显示在对话框中的消息。Buttons:可选的,数值表达式是指的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等,缺省值为 0。Title:可选的,在对话框标题栏中显示的字符串表达式,缺省将应用程序名放在标题栏中。Helpfile:可选的,字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 Helpfile,则也必须提供 Contex
30、t。Context:可选的,数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 Context,则也必须提供 Helpfile。选项 A)、B)和 C)都是正确的,选项 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,Y End Sub 程序运行后,连续三次单击 Commandl 按钮
31、后,窗体上显示的是(分数:2.00)A.4 2B.12 18 C.12 30D.4 6解析:解析:本题考查 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
32、和 x 在 For 循环中的变化过程为:8 和 10、18 和 12,因此答案选 B)。30.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() AS=”VisualBasic” Print String(3,aS) End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.VVV B.VisC.sicD.11解析:解析:本题考查 VB 常用内部函数。String 函数的语法是: String(number,character) 作用是产生字符串,其中 character 是需要生成的字符,number 是生成的个数,比如 string(3,”h”)就会生成含义 3 个“h”的字符串。本题中调用 String 函数,number 参数为 3,character 参数是 A$变量的首字母,因此返回值为:VVV。