1、国家二级 VB机试(程序设计基础)模拟试卷 1及答案与解析 一、选择题 1 若在窗体模块的声明部分声明了如下自定义类型和数组: Private Type rec Code As Integer Caption As String End Type Dim arr(5)As rec 则下面的输出语句中正确的是 ( )。 ( A) Print arr Code(2), arr Caption(2) ( B) Print arr Code, arr Caption ( C) Print arr(2) Code, arr(2) Caption ( D) Print Code(2), Caption(2
2、) 2 下列符号常量的声明中不合法的是 ( )。 ( A) Const a As Single=3 5 ( B) Const a As Double=5+8 ( C) Const a As Integer=“25“ ( D) Const a=“OK“ 3 以下选项中,不合法的 Visual Basic的变量名是 ( )。 ( A) a5b ( B) _xyz ( C) a_b ( D) andif 4 以下合法的 VB变量名是 ( )。 ( A) #_1 ( B) 123_a ( C) string ( D) x_123 5 下列合法的变量名是 ( )。 ( A) sum-a ( B) num
3、_9 ( C) print$ ( D) 5avg 6 设有如下通用过程: Public Function f(x As Integer) Dim Y As Integer x=20 y=2 f=x * y End Function 在窗体上画一个命令按钮,其名称 为 Command1,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer x=10 y=5 y=f(x) Print x; y End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是 ( )。 ( A) 10 5 ( B) 20 40 ( C) 20
4、5 ( D) 10 40 7 标准模块中有如下程序代码: Public x As Integer, y As Integer Sub vat_pub() x=10: y=20 End Sub 在窗体上有 1个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim x As Integer Call vat_pub x=x+100 y=y+100 Print x; y End Sub 运行程序后单击命令按钮,窗体上显示的是 ( )。 ( A) 100 100 ( B) 100 120 ( C) 110 100 ( D) 110 120 8 窗体上有名称为
5、Command1的命令按钮,名称分别为 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 15 ( D) 30 15 5 9 以下关于变量作用域的叙述中
6、,错误的是 ( )。 ( A)在标准模块声明部分用 Public声明的变量的作用域为整个工程文件 ( B)在标准模块声明部分用 Private声明的变量的作用域为该标准模块 ( C)在 窗体的声明部分不能用 Private声明变量 ( D)在过程中不能使用 Public声明变量 10 在窗体上画一个命令按钮,然后编写如下程序: Sub ine(a As Integer) Static x As Integer x = x + a Print x; End Sub Privale Sub Command1_Click() inc 2 inc 3 inc 4 End Sub 程序运行后,第一次单击
7、命令按钮时的输出结果为 ( )。 ( A) 2 3 4 ( B) 2 5 9 ( C) 11 14 18 ( D) 4 9 16 11 现有如下语句: x=IIf(a 50, Int(a 3), a Nod 2) 当 a=52时, x的值是 ( )。 ( A) 0 ( B) 1 ( C) 17 ( D) 18 12 语句: Print Asc(Chr$(Mid$(“98765432“, 4, 2)的输出是 ( )。 ( A) 65 ( B) A ( C) 8765 ( D) W 13 要计算 x的平方根并存人变量 y,正确的语句是 ( )。 ( A) y=Exp(x) ( B) y=Sgn(x
8、) ( C) y=Int(x) ( D) y=Sqr(x) 14 以下表达式与 Int(3 5)的值相同的是 ( )。 ( A) CInt(3 5) ( B) Val(3 5) ( C) Fix(3 5) ( D) Abs(3 5) 15 可以产生 30 50(含 30和 50)之间的随机整数的表达式是 ( )。 ( A) Int(Rnd*21+30) ( B) Int(Rnd*20+30) ( C) Int(Rnd*50-Rnd*30) ( D) Int(Rnd*30+50) 16 在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Command1和 Text1,再编写如下程序: Dim
9、 ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii) “ Then ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Dim m As String, i As Integer For i=Len(ss)To 1 Step-1 m=m+Mid(ss, i, 1) Next Text1 Text=UCase(m) End Sub 程序运行后,在文本框中输入 “Number 100”,并单击命令按钮,则文本框中显示的是 ( )。 (
10、 A) NUMBER 100 ( B) REBMUN ( C) REBMUN 100 ( D) 001 REBMUN 17 窗体上有 1个名称为 Command1的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim m As String m=InputBox(“请输入字符串 “) Print pick_str(m) End Sub Private Function pick_str(s As String)As String temp=“ i=1 sLen=Len(s) Do While i =sLen 2 temp=temp+Mid(s,
11、i, 1)+Mid(s, sLen-i+1, 1) i=i+1 Loop pick_str=temp End Function 运行程序,单击命令按钮,并在输入对话框中输入 “basic”,则在窗体上显示的内容为 ( )。 ( A) bcai ( B) cbia ( C) bcais ( D) cbias 18 窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。命令按钮的单击事件过程如下: Private Sub Command1_Click() Dim x1 As Integer, x2 As Integer, x3 As Integer s = Trim(Te
12、xt1 Text) strLen = Len(s) For i=1 To strLen c=Mid(s, i, 1) Select Case c Case “0“ To “9“ x1=x1+1 Case “A“ To “Z“ x2=x2+1 Case “a“ To “Z“ x3=3+1 Case Else x4=x4+1 End Select Next Print “x1“; x1, “x2“; x2, “x3“; x3, “x4“; x4 End Sub 以下关于上述程序的叙述中,正确的是 ( )。 ( A) s是去掉文本框中字符串末尾的空格 ( B) Select Case c有误, Ca
13、se后应该是一个表达式 ( C)各 Case分支条件有误,不能用 To表示字符的取值区间 ( D) x4是字符串中非字母、非数字字符的个数 19 要求如果 x被 7除余 2,则输出 x的值,下列语句中不能实现此功能的语句是( )。 ( A) If x mod 7=2 Then Print x ( B) If x-(x 7)* 7=2 Then Print x ( C) If x-(x 7)* 7=2 Then Print x ( D) If x-Int(x 7)* 7=2 Then Print x 20 在窗体上画一个名称为 Command1的命令按钮,并编写如下事件过程: Private S
14、ub Command1_Click() x=1 s=0 For i=1 To 5 x=x i s=s+x Next Print s End Sub该事件过程的功能是计算 ( )。 21 假定 Picturel和 Textl分别为图片框和文本框的名称,则下列错误的语句是( )。 ( A) Print 25 ( B) Picture1 Print 25 ( C) Text1 Print 25 ( D) Debug Print 25 22 以下不能用 Print方法输出数据的对象或窗口是 ( )。 ( A)窗体 ( B)立即窗口 ( C)图片框 ( D)代码窗口 23 Print Format(12
15、34 56, “# #“)语句的输出结果是 ( )。 ( A) 123 4 ( B) 1234 6 ( C) 1234 5 ( D) 1234 56 24 窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。窗体文件的程序如下: Private Type x a As Integer b As Integer End Type Private Sub Command1_Click() Dim y As x y a=InputBox(“) If y a 2=y a 2 Then y b=y a*y a Else y b=Fix(y a 2) End If Text1
16、Text=y b End Sub 对以上程序,下列叙述中错误的是 ( )。 ( A) X是用户定义的类型 ( B) InputBox函数弹出的对话框中没有提示信息 ( C)若输入的是偶数, y b的值为该偶数的平方 ( D) Fix(y a 2)把 y a 2的小数部分四舍五入,转换为整数返回 25 下列叙述中正确的是 ( )。 ( A) MsgBox语句的返回值是一个整数 ( B)执行 MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作 ( C) MsgBox语句的第一个参数不能省略 ( D)如果省略 MsgBox语句的第三个参数 (Title),则信息框的标题为空 国家二级 V
17、B机试(程序设计基础)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 定义一个自定义类型的数组,数组元素表示为:数组名 (下标 ),成员名,故选 C。 【知识模块】 程序设计基础 2 【正确答案】 C 【试题解析】 定义符号常量的一般格式: Const常量名 As数据类型 =表达式,“常量名 ”参数就是给常量命名。 “数据类型 ”表示常量的数据类型,一般可以省略,这时由后面的 “表达式 ”参数来指明常量的数据类型。表达式可以是数值型常量、字符型常量、布尔型常量和日期型常量。 【知识模块】 程序设计基础 3 【正确答案】 B 【试题解析】 根据 Visual Basic中
18、变量的命名规则,本题选项 B中变量名以下画线开头,不合法。故 B选项错误。 【知识模块】 程序设计基础 4 【正确答案】 D 【试题解析】 根据 Visual Basic中变量的命名规则, #_1中 #是类型符号,变量名中不能用 Visual Basic保留符号。故不合法。 123_a以数字开头不合法。 string是Visual Basic的关键字,也不合法。故 D选项正确。 【知识模块】 程序设计基础 5 【正确答案】 B 【试题解析】 根据 Visual Basic中变量的命名规则,变量名 sum-a中有 -减号,不合法; print是 Visual Basic保留字,不能作变量名,不合
19、法; Savg不能 以数字开头,不合法。故选 B。 【知识模块】 程序设计基础 6 【正确答案】 B 【试题解析】 过程 f中形参变量 x没有指定传递方式,则默认按地址传递,会影响实参值。而变量 y在按钮事件过程和 f过程中都是局部变量,只在本过程中起作用。因此执行 y=f(x)后, x值在过程中被改变为 20,而 y被赋为过程返回值 40。因此程序窗体上会显示 20和 00 【知识模块】 程序设计基础 7 【正确答案】 B 【试题解析】 在标准模块中定义的使用 Public定义的变量是全局变量,全局变量可以在工程的每个 模块、每个过程中使用。如果在过程中有与全局变量同名的过程变量则优先使用过
20、程变量。在命令按钮事件中定义了局部变量 x,与全局变量同名,因此在此事件中使用局部变量,而变量 y在此过程中没有定义,则仍使用全局变量。因此输出时 x值为 100, y值为 120。 【知识模块】 程序设计基础 8 【正确答案】 D 【试题解析】 变量 x被定义为窗体模块变量,它在整个窗体模块中有效。 Click事件中变量 y定义为 Static,即静态变量,它的值在每调用过程时都会保留上次的值。每次单击按钮标签中显示的值即 x、 y、 z的值是 : 第 次, n=5, z=z+n=0+5=5, y=y+n=0+5=5, x=x+y=0+5=5; 第二次, n=5, z=z+n=0+5: 5,
21、 y=y+n=5+5=10, x=x+y=5+10=15; 第三次, n=5, z=z+n=0+5=5, y=y+n=10+5=15, x=x+y=15+15=30; 因此 3次单击命令按钮后, 3个标签中分别显示的是 30 15 5。 【知识模块】 程序设计基础 9 【正确答案】 C 【试题解析】 关于变量的应用范围,可以通过下表具体了解。【知识模块】 程序设计基础 10 【正确答案】 B 【试题解析】 x在 Inc函数中被定义成 Static类型。意味着函数退出后 x值被保留。第一次执行后 x=2,第二次执行后 x=5,第 3次执行后 x=9。选 B。 【知识模块】 程序设计基础 11 【
22、正确答案】 C 【试题解析】 首先计算 Int(a 3)即 Int(52 3)=Int(17)=17 52 Mod 2结果为 0。再计算 IIf(52 50, 17, 0), 52 50结果为 True,所以 IIF函数返回 17,则 x值为 17,故选 C。 【知识模块】 程序设计基础 12 【正确答案】 A 【试题解析】 Mid$(字符串, p, n)函数的作用是从第 p个字符开始,向后截取 n个字符。 Chr $()是求 ASCii字符的函数,格式是 Chr $(表达式 ),其中 “表达式 ”应该是合法的 ASCII码值, Chr$()函数把 “表达式 ”的值转换为相应的 ASCII字符
23、。 Asc(字符串表达式 ),求字符串表达式的第一个字符的 ASCII编码,函数返回值类型为 Integer。 【知识模块】 程序设计基础 13 【正确答案】 D 【试题解 析】 Exp函数是 e为底的指数,即 ex; Sgn是符号函数,正数返回 1,负数返回 -1, 0返回 0; Int是取整函数,取 =N的最大整数; Sqr是求平方根函数。故 D选项正确。 【知识模块】 程序设计基础 14 【正确答案】 C 【试题解析】 Fix(x)与 Int(x)同为取整函数,但功能有所不同。当 x为正时,两个取整函数都是删除 x小数部分,返回其整数部分的值,不进行四舍五人;当 x为负时, Int(x)
24、返回小于或等于 x的最大整数, Fix(x)返回大于或等于 x的最小整数。即 Fix(x)函数指的是直接取 x的整数部分,而 Int(x)函数则是取不大于 x的整数。 x可以是实数型或货币型数据。 【知识模块】 程序设计基础 15 【正确答案】 A 【试题解析】 因为 Rnd函数产生的随机数范围是大于等于 0而小于 1。要产生30 50(含 30和 50)之间的随机整数,可先产生 0 (50 30),即 0 20之间的随机整数,然后在这个基础上再加上 30。 Rnd*20生成 0 20之间的随机数中不包括20,所以要用 Int(Rnd*21)可产生 0 20之间的随机整数,然后加上 30,综合
25、起来就是 Int(Rnd*21+30), 故 A选项正确。 【知识模块】 程序设计基础 16 【正确答案】 D 【试题解析】 题目中程序是将 ss字符串进行反向排列,并放到 m中去。其中Number空格后的 100被当成字符串来处理,最后结果是将 “Number 100”反向排列,并通过 UCase()函数将所有字母转换成大写,得到 001 REBMUN。 【知识模块】 程序设计基础 17 【正确答案】 A 【试题解析】 过程 pick_str的功能是对输入的字符串的字符重新组合,通过 Do循环从原字符串中头尾开始各取一个字符重新组合 ,循环次数小于等于原字符串长度整除 2的值。当输入字符串是
26、 “basic”时,字符串长度为 5,循环次数为 52=2次,因此取出的字符依次是 “b”, “c”, “a”, “i”。即 “bcai”,因此答案为 A。 【知识模块】 程序设计基础 18 【正确答案】 D 【试题解析】 Trim函数是去掉字符串前面和后面的空格 A错。 Select Case语句的测试表达式,可以算是算术表达式或字符表达式,其值应是数值型或字符型, B错。 Case语句可以是连续的范围:界 1 To界 2,如, 12 To 20, C错。 x4是排除了字符串中字母、数字字符的个数的和。选 D。 【知识模块】 程序设计基础 19 【正确答案】 C 【试题解析】 选项 C中 (
27、x 7)*7得到的值是 x, x-x=0返回 False,不执行 Print x,所以不能输出 x的值。故 C选项错误。也可以把实际数值带入语句中运行,根据结果就可判断选项。 【知识模块】 程序设计基础 20 【正确答案】 C 【试题解析】 程序中 5次循环 x的值分别为 1 1, 1 1 2=1 (1*2), 1 1 2 3=1 (1*2*3), 1 1 2 3 4=1 (1*2*3*4), 1 1 2 3 4 5=1(1*2*3*4*5),可以看出 x值就是 1 i!,因此过程的功能就足计算 1+1 2 1+1 3 1+1 4! +1 5!。因此选项 C正确。 【知识模块】 程序设计基础
28、21 【正确答案】 C 【试题解析】 Print方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。其一般格式为: 对象名称 Print表达式表 ,; 其中对象名称可以是窗体 (Form)、图片框 (PictureBox)或打印机 (Printer),也可以是立即窗口 (Debug)。如果省略对象名称,则在当前窗体上输出。 【知识模块】 程序设计基础 22 【正确答案】 D 【试题解析】 Print方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。其一般格式为: 对象名称 Prim表达式表 ,; ,其中的 “对象名称 ”可以是窗体
29、(Form)、图片框 (PictureBox)或打印机(Printer),也可以是立即窗口 (Debug)。不能是代码窗口。 【知识模块】 程序设计基础 23 【正确答案】 B 【试题解析】 Format是格式输出函数,数据要按照 “输出格式字符串 ”指定格式输出。 “输出格式字符串 ”中 #表示显示一数字,若此位置没有数字则不显示。本题中 “输出格式字符串 ”整数部分 #长度小于 1234时, 1234按原样输出,小数部分 #长度为 1,则小数部分保留一位,四舍五入取 6,故选 B。 【知识模块】 程序设计基础 24 【正确答案】 D 【试题解析】 x是用户定义的一种变量类型,可以使用它来声
30、明变量。InputBox(“”)函数的提示信息为 “”,即为空,因此弹出的 对话框中没有提示信息。在程序中通过比较输入的数被 2整除和被 2除的值是否相等来判定它是否为偶数,如果是那么 y b的值就是 y a的值的平方。 Fix函数是取整函数,它会删除小数部分,直接取表达式的整数部分,不四舍五入,因此 D选项错。 【知识模块】 程序设计基础 25 【正确答案】 C 【试题解析】 Msgbox语句的功能:显示消息提示框,在对话框中显示提示消息,等待用户单击按钮,单击不同的按钮返回不同的整数。它有 2种形式: MsgB0x函数格式: 变量 =MsgBox(,样式 ,标题 ),注意 MsgBox函数带括号,有返回值。 MsgBox语句格式: MsgBox(,样式 ,标题 ),有无括号都可以,无返回值。故 A选项错误。 其中: 第 1个参数:提示内容是必需的,不能省略。故 C选项正确。 第 2个参数:可选。整型表达式,默认值为 0,指定信息框中按钮数目、类型、图标类型和默认按钮等。 第 3个参数:可选,如果省略,则标题栏并不为空默认显示它所属的工程名。故 D选项错误。 执行 MsgBox语句时出现信息框 后,必须关闭信息框才可执行其他操作。故 B选项错误。 【知识模块】 程序设计基础