1、国家二级 VB机试(数据类型及运算)模拟试卷 8及答案与解析 一、选择题 1 若变量 a未事先定义而直接使用 (例如: a=0),则变量 a的类型是 ( A) Integer ( B) String ( C) Boolean ( D) Variant 2 为了声明一个长度为 128个字符的定长字符串变量 StrD,以下语句中正确的是 ( A) Dim StrD As String ( B) Dim StrD As String(128) ( C) Dim StrD As String128 ( D) Dim StrD As String*128 3 VB中,若没有显式声明变量的数据类型,则默认
2、的类型是 ( A)整型 ( B)字符型 ( C)日期型 ( D)变体类型 4 长整型常数的类型说明符为 ( A) ( B) # ( C) & ( D) 5 以下变量名中合法的是 ( A) x2-1 ( B) print ( C) str_n ( D) 2x 6 以下合法的 VB变量名是 ( A) #_1 ( B) 123_a ( C) string ( D) x-123 7 以下合法的 VB变量名是 ( A) _x ( B) 2y ( C) a#b ( D) x_1_x 8 设在一个工程的窗体中有如下代码: Public x As Integer Private Sub Foma_Load()
3、 Dim y As Integer End Sub 在该工程的标准模块的声明部分有代码: Public a As Integer: Private b As Integer 关于上述代码,以下叙述中错误的是 ( A)变量 x的作用域是整个工程 ( B)变量 y的作用域是 Form_Load过程 ( C)变量 a的作用域是整个工程 ( D)变量 b的作用域是整个标准模块 9 在窗体模块的声明部分声明变量时,不能使用的关键字是 ( A) Dim ( B) Public ( C) Private ( D) Static 10 在标准模块中,将 a定义为全局整型变量的语句是 ( A) Static a
4、 As Integer ( B) Dim a As Integer ( C) Private a As Integer ( D) Public a As Integer 11 标准模块中有如下程序代码: 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: Printx; y End Sub 运行程序后单击命令按钮,窗体
5、上显示的是 ( A) 100 100 ( B) 100 120 ( C) 110 100 ( D) 110 120 12 窗体上有名称为 Command1的命令按钮,名称分别为 Label1、 Label2、 Labe3的标 签。编写如下程序: 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个标签中分别显
6、示的是 ( A) 5 5 5 ( B) 15 10 5 ( C) 15 15 15 ( D) 30 15 5 13 以下不能输出 “Program”的语句是 ( A) Print Mid(“VBProgram“, 3, 7) ( B) Print Right(“VBProgram“, 7) ( C) Print Mid(“VBProgram“, 3) ( D) Print Left(“VBProgram“, 7) 14 表达式 Sgn(0 25)的值是 ( A) -1 ( B) 0 ( C) 1 ( D) 0 5 15 以下能对正实数 d的第 3位小数四舍五入的表达式是 ( A) 0 01*I
7、nt(d+0 005) ( B) 0 01*Int(100*(d+0 005) ( C) 0 01*Int(100*(d+0 05) ( D) 0 01*Int(d+0 05) 16 在窗体上画两个文本框,其名称分别为 Text1和 Text2,然后编写如下程序: Private Sub Form_Load() Text1 Text=“: Text2 Text=“: Text1 SetFocus End Sub Private Sub Text1_Change() Text2 Text=Mid(Text1 Text, 6) End Sub 程序运行后,如果在文本框 Text1中输入 China
8、Beijing, 则在文本框 Text2中显示的内容是 ( A) ChinaBeijing ( B) China ( C) Beijing ( D) ChinaB 17 设有如下通用过程: Pub lic Function Fun(xStr As String)As String Dim tStr As String, strL As Integer tStr=“ “: strL=Len(xStr) i=strL 2 Do While i =strL tStr=tStr & Mid(xStr, i+1, 1) i=i+1 Loop Fun=tStr & tStr End Function 在窗
9、体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮。然后编写如下的事件过程: Private Sub Command1_Click() Dim S1 As String S1=“ABCDEF“: Text1 Text=LCase(Fun(S1) End Sub 程序运行后,单击命令按钮,文本框中显示的是 ( A) ABCDEF ( B) abcdef ( C) defdef ( D) defabc 18 窗体上有 1个名称为 Command1的命令按钮,事件过程如下: Private Sub Command1_Click() m=-3 6 If Sgn(m)Then
10、n=Int(m) Else n=Abs(m) End If Print n End Sub 运行程序,并单击命令按钮,窗体上显示的内容为 ( A) -4 ( B) -3 ( C) 3 ( D) 3 6 19 以下程序的功能是随机产生 10个两位的整数: Option Base1 Private Sub Command1_Click() Dimva(10)As Integer, i As Integer Randomize For i=1To10 a(i)=Int(Rnd*100)+1: Print a(i) Next i End Sub 运行以上程序,发现有错误,需要对产生随机数的语句进行修改
11、。以下正确的修改是 ( A) a(i)=Int(Rnd*100) ( B) a(i)=Int(Rnd*90)+10 ( C) a(i)=Int(Rnd*100)+10 ( D) a(i)=Int(Rnd*101) 20 窗体上有名称分别为 Text1、 Text2的文本框,名称为 Command1的命令按钮。运 行程序,在 Text1中输入 “FormList”,然后单击命令按钮,执行如下程序: Private Sub Command1_Click() Text2 Text=UCase(Mid(Text1 Text, 5, 4) End Sub 在 Text2中显示的是 ( A) form (
12、 B) list ( C) FORM ( D) LIST 21 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() aS=InputBox(“请输入一个二进制数 “) n=Len(a$) For i=1Ton Dec=Dec*2+_(aS, i, 1) Next i Print Dec End Sub 程序功能为:单击命令按钮,将产生一个输入对话框,此时如果在对话框中输入一个二进制数,并单击 “确定 ”按钮,则把该二进制数转换为等值的十进制数。这个程序不完整,应在横线处填入的内容是 ( A) Left ( B) Right ( C) Val
13、 ( D) Mid 22 表达式 2*3 2+4*2 2+3 2的值是 ( A) 30 ( B) 31 ( C) 49 ( D) 48 23 下面程序运行时, 若输入 395,则输出结果是 Private Sub Command1_Click() Dim x x=InputBox(“请输入一个 3位整数 “) Print x Mod10, x 100, (x Mod100) 10 End Sub ( A) 3 9 5 ( B) 5 3 9 ( C) 5 9 3 ( D) 3 5 9 24 满足下列条件之一的年份是闰年: 1)年份能被 4整除但不能被 100整除 2)年份能被 400整除若 y代
14、表年份,下面判断闰年的正确表达式是 ( A) y Mod 4 And y Mod 100 Or y Mod 400 ( B) y Mod 4=0 Or y Mod 100 0 And y Mod 400=0 ( C) y Mod 100 0 And(y Mod 4=0 Or y Mod 400=0) ( D) y Mod 4=0 And y Mod 100 0 Or y Mod 400=0 25 设: a=12, b=5, c=7,表达式 x=(a c+a Mod b)+Int(13 5)的值是 ( A) 5 ( B) 6 ( C) 7 ( D) 9 26 设 a=10, b=4, c=5,
15、d=7,表达式 a b And Not c d+6的值为 ( A) True ( B) False ( C) 1 ( D) 0 27 下列运算符中,优先级别最低的是 ( A) Not ( B) Like ( C) Mod ( D) And 28 下面程序的执行结果是 Private Sub Command1_Click() a=0 k=1 Do While k 4 x=kka: k=k+1 Print x: Loop End Sub ( A) 1 4 27 ( B) 1 1 ( C) 1 4 9 ( D) 0 0 0 29 Visual Basic源程序的续行符为 ( A)冒号 (: ) (
16、B)分号 (; ) ( C)下划线 (_) ( D)连字符 (-) 国家二级 VB机试(数据类型及运算)模拟试卷 8答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 本题考查的考点是有关变量定义的。在 VB中有一种特殊的类型:变体类型 (Variant),这种类型可以包含大部分其它类型的数据。在 VB中,如果没有显式声明变量的类型,则该变量默认为变体型 (Variant)。 【知识模块】 数据类型及运算 2 【正确答案】 D 【试题解析】 字符串 (String)是一个字符序列,由 ASCIl字符组成,包括标准的ASCII字符和扩展 ASCII字符。声明变量为定长字符串,需要在类型名
17、称 String后面加上 *长度的标识。 【知识模块】 数据类型及运算 3 【正确答案】 D 【试题解析】 VB允许隐式声明变量。若没有显式声明变量的数据类型,则默认的类型是变体型。 【知识模块】 数据类型及运算 4 【正确答案】 C 【试题解析】 在 Visual Basic中规定一个变量的数据类型可以用类型说明符来标识,如 表示整型、 $表示字符串型、 !表示甲精度浮点型、 #表示双精度浮点型、 &表示长整型。 【知识模块】 数据类型及运算 5 【正确答案】 C 【试题解析】 变量是一个名字,给变量命名时应遵循以下 4条规则: 名字只能由字母、数字和下划线组成;名字的第 1个字符必须是英文
18、字母,最后一个字符可以是类型说明符;名字的有效字符为 255个;不能用 Visual Basic的保留字做变量名,也不能用末尾带有类型说明符的保留字做变量名,但可以在变量名中的保留字嵌入。 【知识模块】 数据类型及运算 6 【正 确答案】 D 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。
19、【知识模块】 数据类型及运算 7 【正确答案】 D 【试题解析】 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字 母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为 255个;不能用 VB的保留字作变量名,但变量名中可以包含保留字,如 ConstA;变量名也不能是末尾带有类型说明符的保留字,如 Dim!是不合法的变量名;不区分字母的大小写。 【知识模块】 数据类型及运算 8 【正确答案】 A 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)
20、变量 3种类型。 【知识模块】 数 据类型及运算 9 【正确答案】 D 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型。 【知识模块】 数据类型及运算 10 【正确答案】 D 【试题解析】 根据变量的定义位置和定义关键字的不同,变量可以分为局部(Local)变量、模块 (Module)变量和全局 (Public)变量 3种类型。 【知识模块】 数据类型及运算 11 【正确答案】 B 【试题解析】 在标准模块用 Public关键字声明的全局变量,其作用域最大,可以在工程的每个模块、每个过程中
21、使用。但当不同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量。当一个全局变量与一个过程级变量重名时,当在本过程中直接使用这个变量名时,被认为是指局部变量。如果要在这个过程中使用同名的全局变量,要使用模块名来修饰变量名。 在本题的事件过程中,由于变量 x被声明为过程级变量,其初始值为 0,调用过程var pub不会改变其值,而变量 y为标准模块中声明的全局变量,调用过程 vat pub后其值为 20。故最后输出结果为 100和 120。 【知识模块】 数据类型及运算 12 【正确答案】 D 【试题解析】 Static语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期
22、间都能保留使用 Static语句声明的变量的值。在窗体的声明段用: Private声明的变量为模块级变量,其作用域为整个窗体。 本题中,当第 1次单击时,静态变量 y的初值为 0,执行调用语句后,静态变量 y的值应为 5,模块级变量 x的值为 5;当第 2次单击时,静态变量 y的初值为 5,执行调用语句后,静态变量 y的值应为 10,模块级变量 x的值为 15;当第 3次调用过程时,静态变量 y的初值为 10,执行调用语句后,静态变量 y的值应为 15,模块级变量 x的值为 30。 【知识模块】 数据类型及运算 13 【正确答案】 D 【试题解析】 本题考查的考点是有关取子串函数的。在 VB中
23、有三种取子串函数: Left函数用于在字符串左端开始取 n个字符: Right函数用于在字符串右端开始取 n个字符 (注意子串中字符的顺序与母串中相同 ); Mid函数可以实现在任何位置取任何长度的子串,其中长度省略的话将会一直取到串尾。本题中选项 D的结果是 VBprogr,不符合题意。 【知识 模块】 数据类型及运算 14 【正确答案】 C 【试题解析】 Sgn函数会返回参数的符号,如果参数为正数返回 1,为负数返回 -1。 【知识模块】 数据类型及运算 15 【正确答案】 B 【试题解析】 Int函数会返回不大于参数的最大整数,要对第 3位小数进行四舍五入,需要先将 d自加 0 005,
24、这样如果第三位小数大于 5就将进位;接下来乘以 100,这样第 3位小数就变成了第一位小数,对其做 Int函数留下整数部分,最终再乘以 0 01得到结果。 【知识模块】 数据类型及运算 16 【正 确答案】 C 【试题解析】 Mid(string, start, length)函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串,如果 start参数超过了 string参数中字符的数目,将返回空字符串,如果省略或 length参数超过文本的字符数 (包括 stm t处的字符 ),将返回字符串中从 start到字符串结束的所有字符。 本题程序运行后,当在文本框 Text1中输入字符数
25、达到或超过 6时,在文本框Text2中将随即显示输入字符中从第 6个字符开始的所有字符,全部字符输入后,文本框 Text2中的 内容为 “Beijing”。 【知识模块】 数据类型及运算 17 【正确答案】 C 【试题解析】 本题考查的考点是有关字符串处理的。本题中过程中的循环变量 i的初值是字符串长度的一半,终值是字符串长度,结合循环中的取子串函数,整个循环的功能是取得字符串的后一半放入 tstr中,然后连接上自身的值返回到调用程序。 【知识模块】 数据类型及运算 18 【正确答案】 A 【试题解析】 Int函数的作用是去返回不大于参数的最大整数,例如Int(4 6)=4, Int(-4 6
26、)=-5; VB中 的逻辑值 True和 False和整型值之间会自动进行类型转换,其中 -1转换为 True, 0转换为 False。本题中由于 m为负数,所以Sgn(m)的值为 -1,即条件为真,会返回不大于 m的最大整数值即 -4。 【知识模块】 数据类型及运算 19 【正确答案】 B 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1但大于或等于 0的随机数。为了生成某个指定范围内的随机整数,可使用公式: Int(upperbotmd-lowerbound+1)*Rnd+lowerbound),其中, upperbound是随机整数范围的上限,lowerbound是随机整数范
27、围的下限。本题中 upperbound为 99, lowerbound为10。 【知识模块】 数据类型及运算 20 【正确答案】 D 【试题解析】 Mid(字符串,起始位置 ,个数 )函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串, UCase()函数用于将字符串中小写字母转化为大写字母,原本大写或非字母字符保持不变。 【知识模块】 数据类型及运算 21 【正确答案】 D 【试题解析】 Mid(字符串,起始位置 ,个数 )函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串。本题中要将二进制数转换为十进制数,应该取出二进制数的每一位然后乘以位权。 【知识模块】 数
28、据类型及运算 22 【正确答案】 B 【试题解析】 本题考查的考点是有关算术运算的。按照运算符的优先级,首先执行 32得到 9,然后用 2乘以 9得到 18;然后计算 4*2 2=4;最后计算 32得到9,三者相加得到最后结果 31。 【知识模块】 数据类型及运算 23 【正确答案】 B 【试题解析】 VB中常用算术运算符 有 8个,其中幂运算符 ()优先级最高;其次是取负 (-)、乘 (*)、浮点除 ( )、整除 ( )、取模 (Mod)、加 (+)、减 (-)。 【知识模块】 数据类型及运算 24 【正确答案】 D 【试题解析】 逻辑运算的优先级低于关系运算,而且逻辑运算中优先级从高到低是
29、 NotAndOr ,据此判断 D选项符合题意。 【知识模块】 数据类型及运算 25 【正确答案】 A 【试题解析】 在一个包含多种运算的表达式中,优先级顺序为:首先进行函数运算,接着进行算术运算,然后进行关系运算 (=、 、 =、 =、 ),最后进行逻辑运算 (NotAndOrXorEqvImp) 。本题最后结果可以表达为(1+2)+2,结果为 5。 【知识模块】 数据类型及运算 26 【正确答案】 B 【试题解析】 在一个包含多种运算的表达式中,优先级顺序为:首先进行函数运算,接着进行算术运算,然后进行关系运算 (=、 =、 =、 ),最后进行逻辑运算 (NotAndOrXorEqvImp
30、) 。本题最后结果可以表达为 True And Not True,结果为 False。 【知识模 块】 数据类型及运算 27 【正确答案】 D 【试题解析】 在一个包含多种运算的表达式中,优先级顺序为:首先进行函数运算,接着进行算术运算,然后进行关系运算 (=、 =、 =、 ),最后进行逻辑运算 (NotAndOrXorEqvImp) 。 【知识模块】 数据类型及运算 28 【正确答案】 B 【试题解析】 本题是一个简单的 Do循环,共循环 3次,每次都输出 kka;因为 a的值始终不变均为 0,所以无论 k取何值, 0次幂的结果都为 1。 【知识模块】 数据类型及运算 29 【正确答案】 C 【试题解析】 Visual Basic中的语句是执行具体操作的指令,通常一行输入一条语句。也可把多条语句放在一行,各语句间用冒号 (: )隔开。还可通过续行符 (续行符由一个空格加一个下划线组成 “_”)将一条语句分别放在多行。 【知识模块】 数据类型及运算