1、国家二级 VB机试(数据类型及运算)模拟试卷 1及答案与解析 一、选择题 1 若变量 a未事先定义而直接使用 (例如: a=0),则变量 a的类型是 ( A) Integer ( B) String ( C) Boolean ( D) Variant 2 如下关于变体类型变量的叙述中,错误的是 ( A)变体类型数组中只能存放同类型数据 ( B)使用 Array初始化的数组变量,必须是 Variant类型 ( C)没有声明而直接使用的变量其默认类型均是 Variant ( D)在同一程序中,变体类型的变量可以被多次赋以不同类 型的数据 3 以下自定义数据类型的语句中,正确的是 ( A) Type
2、 student ID As String*20 name As String*10 age As Integer End student ( B) Type student ID As String*20 name As String*1 0 age As Integer End Type ( C) Type student ID As String name As String age As Integer End student ( D) Type ID As String*20 name As String*10 age As Integer End Type student 4 假定
3、有如下的程序段: Dim intVarAs Integer intvar=True Print intVar 则输出结果是 ( A) 0 ( B) -1 ( C) TRUE ( D) FALSE 5 长整型常数的类型说明符为 ( A) ( B) # ( C) & ( D) 6 执行语句 Dim X, YAs Integer后, ( A) X和 Y均被定义为整型变量 ( B) X和 Y均被定义为变体类型变量 ( C) X被定义为整型变量, Y被定义为变体类型变量 ( D) X被定义为变体类型变量, Y被定义为整型变量 7 在标准模块中用 Public关键字定义的变量,其作用域为 ( A)本模块所
4、有过程 ( B)整个工程 ( C)所有窗体 ( D)所有标准模块 8 有数据定义语句: Dim X, YAs Integer以上语句表明 ( A) X、 Y均是整型变量 ( B) X是整型变量, Y是变体类型变量 ( C) X是变体类型变量, Y是整型变量 ( D) X是整型变量, Y是字符型变量 9 以下合法的 VB变量名是 ( A) x ( B) 2y ( C) a#b ( D) x_1_x 10 以下合法的 VB变量名是 ( A) a ( B) yPrint ( C) a-b ( D) Type 11 以下关于变量作用域的叙述中,错误的是 ( A)在标准模块声明部分用 Public声明的
5、变量的作用域为整个工程文件 ( B)在标准模块声明部分用 Private声明的变量的作用域为该标准模块 ( C)在窗体的声明部分不能用 Private声明变量 ( D)在过程中不能使用 Public声明变量 12 下面变量定义中 错误的是 ( A) Public mod As Integer ( B) Static buf ( C) Dim ch As String*10 ( D) Dim a!(-5 To-1) 13 在标准模块中,将 a定义为全局整型变量的语句是 ( A) Static a As Integer ( B) Dim a As Integer ( C) Private a As
6、 Integer ( D) Public a As Integer 14 有如下过程代码: 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 15 工程文件中包含一个模块文件和一个窗体文件。模块文件的程序代码是:Public x As Integer Private y As Integer窗体文件的
7、程序代码是: Dim a As Integer Private Sub Command 1 Click() Private Sub Form_Load 1a=a+5: b=b+5: x=x+5: y=y+5 Dim b As Integer Print a; b; x; y a=2: b=3: x=10: y=20 End Sub End Sub 运行程序,单击窗体上的命令按钮,则在窗体上显示的是 ( A) 5 5 15 5 ( B) 7 5 15 25 ( C) 7 8 15 5 ( D) 7 5 15 5 16 在窗体上画一个命令按钮,然后编写如下程序: Sub inc(a As Inte
8、ger)Private Sub Command 1_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) 1 1 14 18 ( D) 4 9 16 17 以下不能输出 “Program“的语句是 ( A) Print Mid(“VBProgram“, 3, 7) ( B) Print Right(“VBProgram“, 7) ( C) Print Mid(“VBProgram“, 3) (
9、 D) Print Left(“VBProgram“, 7) 18 能够产生 1到 50之间 (含 1和 50)随机整数的表达式是 ( A) Int(Rnd*5-1) ( B) Int(Rnd(50)+1) ( C) Int(Rnd*50) ( D) Int(Rnd*50+1) 19 Print Right(“VB Programming“, 2)语句的输出结果是 ( A) VB ( B) Programming ( C) ng ( D) 2 20 语句: Print Asc(ChrS(Mid$(“98765432“, 4, 2)的输出是 ( A) 65 ( B) A ( C) 8765 (
10、D) W 21 在窗体上画两个文本框,其名称分别为 Text1和 Text2,然后编写如下程序: Private Sub Form_Load() Text1 Text: “: Text2 Text=“: Text1 SetFocus End Sub Private Sub Text 1_Change() Text2 Text=Mid(Text1 Text, 6) End Sub 程序运行后,如果在文本框 Text1中输入 ChinaBeijing,则在文本框 Text2中显示的内容是 ( A) ChinaBeijing ( B) China ( C) Beijing ( D) ChinaB 2
11、2 在窗体上画一个名称为 C0mmandl的命令按钮,然后编写如下事件过程: Private Sub Command 1_Click() c=1234 c 1=Trim(Str(c) For i=l To 4 Print Next End Sub 程序运行后,单击命令按钮,要求在窗体上显示内容: 1 12 123 1234则在横线处应填入的内容为 ( A) Right(c1, i) ( B) Left(c1, i) ( C) Mid(c1, i, 1) ( D) Mid(c1, i, i) 23 窗体上有两个名称分别为 Text1、 Text2的文本框。 Text1的 KeyUp事件过程如下:
12、 Private Sub Text 1-KeyUp(KeyCode As Integer,Shift As Integer) Dim c As String c=UCase(Chr(KeyCode): Text2 Text=Chr(Asc(c)+2) End Sub 当向文本框 Text1中输入小写字母 a时,文本框 Text2中显示的是 ( A) A ( B) a ( C) C ( D) c 24 设有如下程序: Private Sub Form_Click() num=InputBox(“请输入一个实数 “): P=InStr(num, “ “) Ifp0 Then Print Mid(n
13、um, P+1) Else Print“END“ End If End Sub 运 行程序单击窗体,根据提示输入一个数值。如果不是输入实数,则输出“END”;否则 ( A)用字符方式输出该实数 ( B)输出该实数的整数部分 ( C)输出该实数的小数部分 ( D)去掉实数中小数点,保留所有数码输出 25 以下程序的功能是随机产生 10个两位的整数: Option Base 1 Private Sub Command 1_Click() Dim a(10)As Integer, i As Integer Randomize For i=1 To 10 a(i)=Int(Rnd*100)+1: Pr
14、int a(i) Next i End Sub 运行以上程序,发现有错误,需要对产生随机数的语句进行修改。以下正确的修改是 ( 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) 26 窗体上有两个名称分别为 Text1、 Text2的文本框。 Text1的 KeyUp事件过程如下: Private Sub Text 1_KeyUp(KeyCode As Integer, Shift As Integer) Dim C As String C=UCase(C
15、hr(KeyCode): Text2 Text=Chr(Asc(c)+2) End Sub 当向文本框 Text1中输入小写字母 a时,文本框 Text2中显示的是 ( A) A ( B) a ( C) C ( D) c 27 设有如下程序: Private Sub Form_Click() num=InputBox(“请输入一个实数 “): P=InStr(num, “ “) If P0 Then Print Mid(num, P+11 Else Print “END“ 运行程序,单击窗体,根据提示输入一个数值。如果输入的不是实数,则程序输出 “END”; 否则 ( A)用字符方式输出该实数
16、 ( B)输出该实数的整数部分 ( C)输出该实数的小数部分 ( D)去掉实数中的小数点,保留所有数码输出 28 以下程序的功能是随机产生 10个两位的整数: Option Base 1 Private Sub Command 1_Click() Dim a(10)As Integer, i As Integer a(i)=Int(Rnd*100)+1 Print a(i) 运行以上程序,发现有错误,需要对产生随机数的语句进行修改。以下正确的修改是 ( A) a(i1=Int(Rnd*100) ( B) a(i)=Int(Rnd*90)+10 ( C) a(i)=Int(Rnd*100)+10
17、 ( D) a(i)=Int(Rnd*101) 29 表达式 2*32+4*2 2+32的值是 ( A) 30 ( B) 31 ( C) 49 ( D) 48 30 把数学表达式 2y-6表示为正确的 VB表达似乎应该是 ( A) (5x+3) (2y-6) ( B) x*5+3 2*y-6 ( C) (5*x+3)(2*y-6) ( D) (x*5+3) (y*2-6) 31 设 a=10, b=5, c=1,执行语句 Print abc窗体上显示的是 ( A) True ( B) FALSE ( C) 1 ( D)出错 32 已知 a=6, b=15, c=23,则语句 Print Sgn
18、(a+b Mod 6-c A)&a+b 的输出结果为 ( A) 6 ( B) 1 6 ( C) 3 1 ( D) 12 1 33 设: a: 12, b=5, c=7,表达式 x=(a c+a Mod b)+Int(13 5)的值是 ( A) 5 ( B) 6 ( C) 7 ( D) 9 34 数学式 y2x=10 在 VB中应表示为 ( A) Y*Yx And 10x And x=1 0 ( C) Sqr(y1x Or xx Or x=10 35 设变量 x中的值是 395,则下面语句的输出是 Print x 100+(x Mod 100) 10)*10+(x Mod 10)*100 ( A
19、) 935 ( B) 395 ( C) 539 ( D) 593 36 能正确表述 “x为大于等于 5并且小于 20的数 ”的 Visual Basic表达式是 ( A) x=5 And x=5 Or xb(105为真 )结果为Tme,此时系统自动转换其值为 -1,然后计算 1c(-11为假 ),结果为 False。 【知识模块】 数据类型及运算 32 【正确答案】 D 【试题解析】 算术表达式的运算次序为:幂 () 取负 (-) 乘、浮点除 (*、 )整除 ( ) 取模 (Mod) 加、减 (+、 -) 连接 (&), Sgn 函数会返回参数的符号。本题中 sgn(a+b Mod 6-c A
20、)函数的参数经计算为正数,故此函数返回值为 1; &运算是字符串连接运算,其优先级低于算术运算,所以会先计算 a+b=21,然后将 1和 21自动转换为字符串然后连接起来。 【知识模块】 数据类型及运算 33 【正确答案】 A 【试题解析】 在一个包含多种运算的表达式中,优先级顺序为:首先进行函数运算,接着进行算术运算,然后进行关系运算 (=、 、 =、 ),最后进行逻辑运算 (NotAndOrxorEqvImp) 。本题最后结果可以表达为 (1+2)+2,结果为 5。 【知识模块】 数据类型及运算 34 【正确答案】 A 【试题解析】 Sgn函数为求平方根函数,为了表达 x既小于 y的平方又
21、大于等于10,两个表达式之间应该使用 And联接。 【知识模块】 数据类型及运算 35 【正确答案】 D 【试题解析】 本题中使用了两种运算:整除运算 “ ”和求余运算 “Mod”, 最终输出的是 3+90+500=593。 【知识模块】 数据类型及运算 36 【正确答案】 A 【试题解析】 逻辑运算也称布尔运算。用逻辑运算符连接的两个或多个关系式,组成一个布尔表达式。小题要表达的是两个表达式必须同时为真,故此使用 And运算符。 【知识模块】 数据类型及运算 37 【正确答案】 B 【试题解析】 本题是一个简单的 Do循环,共循环 3次,每次都输出 k k a;因为 a的值始终不变均为 0,所以无论 k取何值, 0次幂的结果都为 1。 【知识模块】 数据类型及运算 38 【正确答案】 A 【试题解析】 Visual Basic 中的语句是 执行具体操作的指令,通常一行输入一条语句。也可把多条语句放在一行,各语句问用冒号 (: )隔开。还可通过续行符 (续行符由一个空格加一个下划线组成 “ ”)将一条语句分别放在多行。 【知识模块】 数据类型及运算