1、国家二级 VB 机试(数据类型及运算)模拟试卷 13 及答案解析(总分:64.00,做题时间:90 分钟)一、选择题(总题数:32,分数:64.00)1.以下合法的 VB 变量名是(分数:2.00)A._xB.2yC.a#bD.x_1_x2.以下关于变量作用域的叙述中错误的是(分数:2.00)A.在窗体模块的声明部分声明的 Private 变量,其作用域是窗体内的所有过程B.在标准模块的声明部分声明的 Private 变量,其作用域是模块内的所有过程C.在窗体模块的声明部分声明的 Pubilc 变量,其作用域是本窗体的所有过程D.在标准模块的声明部分声明的 Pubilc 变量,其作用域是应用程
2、序的所有过程3.在某个事件过程中定义的变量是(分数:2.00)A.局部变量B.窗体级变量C.全局变量D.模块变量4.以下合法的 VB 变量名是(分数:2.00)A._aB.yPrintC.a-bD.Type5.设在一个工程的窗体中有如下代码: Public x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明部分有代码:Public a As Integer:Private b As Integer 关于上述代码,以下叙述中错误的是(分数:2.00)A.变量 x 的作用域是整个工程B.变量 Y 的作
3、用域是 Form Load 过程C.变量 a 的作用域是整个工程D.变量 b 的作用域是整个标准模块6.以下不合法的 VB 变量名是(分数:2.00)A.filenameB.readC._yD.e57.以下关于变量作用域的叙述中,错误的是(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Pdvate 声明的变量的作用域为该标准模块C.在窗体的声明部分不能用 Private 声明变量D.在过程中不能使用 Public 声明变量8.下列符号常量的声明中不合法的是(分数:2.00)A.Const a As Single=35B.Con
4、st a As Double=5+8C.Const a As Integer=“25“D.Const a=“OK“9.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.PrivateD.Static10.下面变量定义中错误的是(分数:2.00)A.Public mod As IntegerB.Static bufC.Dim ch As String*10D.Dim a!(-5 To-1)11.如果要定义一个窗体级变量,定义变量语句的位置应该是(分数:2.00)A.在使用该变量的过程中B.在该窗体模块所有过程的前面C.在该窗体模块所有过程的后面D.
5、在某个标准模块中12.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255 个字符B.变量名的第一个字符可以是字母或数字C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字13.在标准模块中,将 a 定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Public a As Integer14.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 127 个字符B.变量名的第一个字符必须是字母C.变量名不能使用保留字D.变量名只能由字母、数字和
6、下划线组成15.下面能够将某个变量声明为局部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static 声明这个变量B.在窗体模块的声明部分,用关键字 Dim 声明这个变量C.在需要使用这个变量的过程中,用关键字 Private 声明这个变量D.在需要使用这个变量的过程中,用关键字 Public 声明这个变量16.有如下过程代码: Sub vat dim() Static numa As Integer Dim numb As Integer numa=numa+2:numb=numb+1:print numa;numb End Sub 连续 3 次调用 var_dim 过程,
7、第 3 次调用时的输出是(分数:2.00)A.2 1B.2 3C.6 1D.6 317.标准模块中有如下程序代码: Public x As Integer,y As Integer Sub var pub() x=10:y=20 End Sub 在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim xAs Integer Call var pub x=x+100:y=y+100:Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是(分数:2.00)A.100 100B.100 120C.110 100D.110
8、12018.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub Command1 click() Dim n If Text1Text4 Print“分支 2“ Case Else Print“Else 分支“ End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗体上显示的是(分数:2.00)A.分支 1B.分支 2C.Else 分支D.程序出错26.以下关于 MsgBox 的叙述中,错误的是(分数:2.00)A.MsgBox 函数返回一个整数B.通过 MsgBox 函数可以设置信息框中图标和按钮的类型C.M
9、sgBox 语句没有返回值D.MsgBox 函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量27.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Commmand l_Click() Static x As Integer Cls For I=1 To 2 y=y+x:x=x+2 Next Print x,y End Sub 程序运行后,连续三次单击 Command1 按钮后,窗体上显示的是(分数:2.00)A.4 2B.12 18C.12 30D.4 628.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事
10、件过程: Private Sub Command1_Click() AS=“VisualBasic“ Print String(3,a$) End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.VVVB.VisC.sicD.II29.执行如下两条语句后,窗体上显示的是 a=98596 Print Format(a,“$00,00,00“)(分数:2.00)A.0,00986B.$986C.986D.$0,0098630.设一个工程由两个窗体组成,其名称分别为 Fornml 和 Fornm2,在 Fornml 上有一个名称为 Command1的命令按钮。窗体 For
11、nml 的程序代码如下: Private Sub Command1_Click() Private Sub g(f As Fornm,x As Integer) Dim a=10 y=IIf(x10,100,一 100) Call g(Fornm2,a) fShow End Sub fCaption=y End Sub 运行以上程序,正确的结果是(分数:2.00)A.Fornml 的 Caption 属性值为 100B.Fornm2 的 Caption 属性值为-100C.Fornml 的 Caption 属性值为-100D.Fornm2 的 Caption 属性值为 10031.在窗体上画一
12、个名称为 Command1 的命令按钮,并编写如下程序: Private Sub Command1_Click() Private Sub fl(ByRef x1 As Integer,_ Dimx As Integer y1 As Integer) x=10:y=5 x1=x1+2:y1=y1+2 Call fl(x,y) End Sub Print x,y End sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.10 5B.12 2C.10 7D.12 732.在窗体上画一个名称为 Filel 的文件列表框,并编写如下程序: Private Sub File1_
13、DblClick() x=Shell(File1FileName,1) End Sub 以下关于该程序的叙述中,错误的是(分数:2.00)A.x 没有实际作用,因此可以将该语句写成 Call Shell(FilelFileName,1)B.双击文件列表框中的文件,将触发该事件过程C.要执行的文件的名字通过 FilelFileName 指定D.Filel 中显示的是的当前驱动器、当前目录下的文件国家二级 VB 机试(数据类型及运算)模拟试卷 13 答案解析(总分:64.00,做题时间:90 分钟)一、选择题(总题数:32,分数:64.00)1.以下合法的 VB 变量名是(分数:2.00)A._x
14、B.2yC.a#bD.x_1_x 解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如:Dim!是不合法的变量名;不区分字母的大小写。2.以下关于变量作用域的叙述中错误的是(分数:2.00)A.在窗体模块的声明部分声明的 Private 变量,其作用域是窗体内的所有过程B.在标准模块的声明部分声明的 Private 变量,其作用域是模块内的所
15、有过程C.在窗体模块的声明部分声明的 Pubilc 变量,其作用域是本窗体的所有过程 D.在标准模块的声明部分声明的 Pubilc 变量,其作用域是应用程序的所有过程解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为。以下 3 种类型: 局部(Local)变量:在过程(事件过程或通用过程)内定义的变量,其作用域为该变量所在的过程,定义时使用Dim、Static 关键字; 模块(Module)变量:模块变量包括窗体变量和标准模块变量 2 种。其中,窗体变量可用于该窗体内的所有过程,其作用域为该变量所在的窗体;标准模块变量是在标准模块中定义的变量,变量的声明和使用与窗体模块中窗体变量类
16、似。区别是标准模块是只含有程序代码的应用程序文件,其扩展名为bas: 全局(Public)变量:全局变量也称为全程变量,在标准模块的声明部分声明。全局变量的作用域最大,可以在工程的每个模块、每个过程中使用。3.在某个事件过程中定义的变量是(分数:2.00)A.局部变量 B.窗体级变量C.全局变量D.模块变量解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:4.以下合法的 VB 变量名是(分数:2.00)A._aB.yPrint C.a-bD.Type解析:解析:变量是用一个名称来表示的,给变量命
17、名时应遵循规则: 名称只能由字母、数字和下划线组成:名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。5.设在一个工程的窗体中有如下代码: Public x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明部分有代码:Public a As Integer:Private b As Integ
18、er 关于上述代码,以下叙述中错误的是(分数:2.00)A.变量 x 的作用域是整个工程 B.变量 Y 的作用域是 Form Load 过程C.变量 a 的作用域是整个工程D.变量 b 的作用域是整个标准模块解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:6.以下不合法的 VB 变量名是(分数:2.00)A.filenameB.readC._y D.e5解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成:名称的第一个字符必须是英文字母,最后一个字符可
19、以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。7.以下关于变量作用域的叙述中,错误的是(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Pdvate 声明的变量的作用域为该标准模块C.在窗体的声明部分不能用 Private 声明变量 D.在过程中不能使用 Public 声明变量解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模
20、块(Module)变量和全局(Public)变量 3 种类型:8.下列符号常量的声明中不合法的是(分数:2.00)A.Const a As Single=35B.Const a As Double=5+8C.Const a As Integer=“25“ D.Const a=“OK“解析:解析:声明符号常量用来代替数值或字符串。一般格式为:Const 常量名=表达式,常量名=表达式】,其中要求表达式的类型和常量的类型是相同或者相容的。“25”是一个字符串常量,无法赋值给整型符号常量 a。9.在窗体模块的声明部分声明变量时,不能使用的关键字是(分数:2.00)A.DimB.PublicC.Pri
21、vateD.Static 解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:10.下面变量定义中错误的是(分数:2.00)A.Public mod As Integer B.Static bufC.Dim ch As String*10D.Dim a!(-5 To-1)解析:解析:定义变量时需要使用 As 类型或者类型说明符来指明变量的数据类型,如果不指明则为隐式声明,该变量为变体型;mod 是关键字表示求余运算,根据标识符命名规则不能作为变量名。11.如果要定义一个窗体级变量,定义变量语句的位
22、置应该是(分数:2.00)A.在使用该变量的过程中B.在该窗体模块所有过程的前面 C.在该窗体模块所有过程的后面D.在某个标准模块中解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:12.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 255 个字符B.变量名的第一个字符可以是字母或数字 C.变量名只能由字母、数字和下划线组成D.变量名不能使用保留字解析:解析:变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一
23、个字符可以是类型说明符;名称的有效字符为 255 个;不能用 VB 的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。13.在标准模块中,将 a 定义为全局整型变量的语句是(分数:2.00)A.Static a As IntegerB.Dim a As IntegerC.Private a As IntegerD.Public a As Integer 解析:解析:根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3
24、 种类型:14.下列说法中,错误的是(分数:2.00)A.变量名长度不能超过 127 个字符 B.变量名的第一个字符必须是字母C.变量名不能使用保留字D.变量名只能由字母、数字和下划线组成解析:解析:变量是用一个名称来表示的,给变量命名规则同 38 题。15.下面能够将某个变量声明为局部变量的是(分数:2.00)A.在窗体模块的声明部分,用关键字 Static 声明这个变量B.在窗体模块的声明部分,用关键字 Dim 声明这个变量C.在需要使用这个变量的过程中,用关键字 Private 声明这个变量 D.在需要使用这个变量的过程中,用关键字 Public 声明这个变量解析:解析:根据变量的定义位
25、置和定义关键字的不同,变量可以分为局部(Local)变量、模块(Module)变量和全局(Public)变量 3 种类型:16.有如下过程代码: Sub vat dim() Static numa 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 1 D.6 3解析:解析:Static 语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期间都能保留使用 Static
26、 语句声明的变量的值。本题中,当第 1 次调用过程时,静态变量 numa 的初值为 0、普通变量 numb 的初值为 0,执行循环语句后,静态变量 numa 的值应为 2、普通变量 numb 的值为 1;当第 2 次调用过程时,静态变量 numa 的初值为 2、普通变量 numb 的初值为 0,执行循环语句后,静态变量 numa 的值应为 4、普通变量 numb 的值为 1;当第 3 次调用过程时,静态变量 numa 的初值为 4、普通变量 numb 的初值为 0,执行循环语句后,静态变量 nulna 的值应为 6、普通变量 numb 的值为 1。17.标准模块中有如下程序代码: Public
27、 x As Integer,y As Integer Sub var pub() x=10:y=20 End Sub 在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim xAs Integer Call var pub x=x+100:y=y+100:Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是(分数:2.00)A.100 100B.100 120 C.110 100D.110 120解析:解析:在标准模块用 Public 关键字声明的全局变量,其作用域最大,可以在工程的每个模块、每个过程中使用。但当不
28、同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量。当一个全局变量与一个过程级变量重名时,当在本过程中直接使用这个变量名时,被认为是指局部变量。如果要在这个过程中使用同名的全局变量,要使用模块名来修饰变量名。 在本题的事件过程中,由于变量 x 被声明为过程级变量,其初始值为 0,调用过程 vat pub 不会改变其值,而变量 y 为标准模块中声明的全局变量,调用过程 var pub 后其值为 20。故最后输出结果为 100 和 120。18.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub Command1 click()
29、Dim n If Text1Text4 Print“分支 2“ Case Else Print“Else 分支“ End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗体上显示的是(分数:2.00)A.分支 1B.分支 2C.Else 分支 D.程序出错解析:解析:本题考查 switch 结构。在 Command1 的 Click 事件响应代码里面,通过 InputBox 输入数据给变量 x,然后 swith 根据 x 的值输出不同的信息。在输入对话框中输入 2,那么 x 的值为 2,在 switch的多个 CaSe 中 CaSe Else 条件符合,因此输出的是“
30、Else 分支”。26.以下关于 MsgBox 的叙述中,错误的是(分数:2.00)A.MsgBox 函数返回一个整数B.通过 MsgBox 函数可以设置信息框中图标和按钮的类型C.MsgBox 语句没有返回值D.MsgBox 函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量 解析:解析:本题考查 MsgBox 函数的使用,语法是: MsgBox(Prompt,Buttons,Title,Helpfile,Context) 参数含义如 F: Prompt:必需的,字符串表达式,作为显示在对话框中的消息。Buttons:可选的,数值表达式是指的总和,指定显示按钮的数目及形式,使用
31、的图标样式,缺省按钮是什么以及消息框的强制回应等,缺省值为 0。Title:可选的,在对话框标题栏中显示的字符串表达式,缺省将应用程序名放在标题栏中。HelDfile:可选的,字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 Helpfile,则也必须提供 Context。context:可选的,数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 Context,则也必须提供 Helpfile。选项 A、B)和 C)都是正确的,选项 D 错误,MsgBox 的第二个参数决定对话框中显示的按钮数量和形式。27.在窗体上画一个名称为 Command1
32、 的命令按钮,然后编写如下事件过程: Private Sub Commmand l_Click() Static x As Integer Cls For I=1 To 2 y=y+x:x=x+2 Next Print x,y End Sub 程序运行后,连续三次单击 Command1 按钮后,窗体上显示的是(分数:2.00)A.4 2B.12 18 C.12 30D.4 6解析:解析:本题考查 static 变量,static 变量在函数退出之后其值依然存在,下次执行函数的时候还保存上次的值。 在本题中,x 是 Static 变量,第一次点击命令按钮的时候,x 的初值为 0,进入 For 循
33、环,循环两次,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)。28.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() AS=“VisualBasic“ Print String(3,a$) End
34、Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.VVV B.VisC.sicD.II解析:解析:本题考查 VB 常用内部函数。String 函数的语法是: String(number,character) 作用是产生字符串,其中 chafacter 是需要生成的字符,number 是生成的个数,比如 string(3,“h“)就会生成含义 3 个“h”的字符串。本题中调用 String 函数,number 参数为 3,character 参数是 A$变量的首字母,因此返回值为:VVV。29.执行如下两条语句后,窗体上显示的是 a=98596 Print Format
35、(a,“$00,00,00“)(分数:2.00)A.0,00986B.$986C.986D.$0,00986 解析:解析:此题考察 Format 函数,该函数的格式为:Fomat(expresslon,fomat)其中 expression 参数指定要转换的数值,fomat 参数是字符串,$表示 Currency 格式,显示带千分符且小数点右面保存两位,因此应选选项 D。30.设一个工程由两个窗体组成,其名称分别为 Fornml 和 Fornm2,在 Fornml 上有一个名称为 Command1的命令按钮。窗体 Fornml 的程序代码如下: Private Sub Command1_Cli
36、ck() Private Sub g(f As Fornm,x As Integer) Dim a=10 y=IIf(x10,100,一 100) Call g(Fornm2,a) fShow End Sub fCaption=y End Sub 运行以上程序,正确的结果是(分数:2.00)A.Fornml 的 Caption 属性值为 100B.Fornm2 的 Caption 属性值为-100 C.Fornml 的 Caption 属性值为-100D.Fornm2 的 Caption 属性值为 100解析:解析:本题考查常用函数和窗体属性设置。在 Command1 命令按钮的 Click
37、事件代码里面,定义变量 a,初始化为 10,然后调用 g 函数,参数为 Fomm2 和 a;在 g 函数中,首先判断输入的参数 x 是否大于10,显然调用 g 函数时传入的 a 为 10,因此征 g 函数中 y 的值为-100,然后设置窗体 f 变量(Fomm2)的Caption 属性为 y,即设置 Fomm2 的 Caption 属性为-100。31.在窗体上画一个名称为 Command1 的命令按钮,并编写如下程序: Private Sub Command1_Click() Private Sub fl(ByRef x1 As Integer,_ Dimx As Integer y1 As
38、 Integer) x=10:y=5 x1=x1+2:y1=y1+2 Call fl(x,y) End Sub Print x,y End sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.10 5B.12 2C.10 7D.12 7 解析:解析:本题考查函数参数传递。在 Command1 的 Click 事件代码里面,定义了变量 x 和 y,值分别为 10 和 5,然后调用 f1 过程;f1 过程有两个参数,其中第一个参数是 ByRef 表明是按地址传递参数的,第二个参数是没有指明 ByVal 类型,因此默认页是 ByRef 地址传递参数,在 f1 过程中多参数做的
39、修改,同样会修改实参;在 f1 过程中,分别对两个参数加 2,因此在 Command1 的 Click 代码里面,调用 f1 过程后,x 和 y 的值增加 2,变成 12 和 7。32.在窗体上画一个名称为 Filel 的文件列表框,并编写如下程序: Private Sub File1_DblClick() x=Shell(File1FileName,1) End Sub 以下关于该程序的叙述中,错误的是(分数:2.00)A.x 没有实际作用,因此可以将该语句写成 Call Shell(FilelFileName,1) B.双击文件列表框中的文件,将触发该事件过程C.要执行的文件的名字通过 FilelFileName 指定D.Filel 中显示的是的当前驱动器、当前目录下的文件解析:解析:本题考查常用内部函数,Shell 函数的功能是执行一个司执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。选项 A 错误,x 获取 SheIl 函数返回值;选项 B、C)和 D)均正确。