1、国家计算机二级(VB)90 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.属性 BorderColor 的作用是( )。(分数:2.00)A.设置直线颜色和形状边界颜色B.设置直线或形状背景颜色C.设置直线或形状边界线的线型D.设置形状的内部颜色2.“商品”与“顾客”两个实体集之间的联系一般是_。 (分数:2.00)A.一对一B.一对多C.多对一D.多对多3.以下各项中,Visual Basic 不能接收的图形文件是( )。(分数:2.00)A.报表的主体区域B.页面页眉或页面页脚区域C.报表页眉
2、或报表页脚区域D.组页眉或组页脚区域4.下面的数组声明中,正确的是( )。(分数:2.00)A.Dim pict3,4As IntegerB.Dim pict(3,4)As IntegerC.Dim pict34As IntegerD.Dim pict(3:4)As Integer5.单击按钮时,以下程序运行后的输出结果是( )。 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=x+y End Sub Private Sub Command1_Click() Dim x As Integer,y A
3、s Integer,Z As Integer x=1:y=2:z=3 Call proc1(x,x,z) Print x;x;z Call proc1(x,y,y) Print x;y;y End Sub (分数:2.00)A.Dim NewArray(10)As IntegerB.Dim NewArray(1 T0 10)As IntegerC.Dim NewArray(10)IntegerD.Dim NewArray(1 To 10)Integer6.设在窗体上有个文本框,然后编写如下的事件过程: Private Sub Text1_KeyDown(KeyCode As Integer,S
4、hift As Integer) Const Alt=4 Const Key_F2=&H71 altdown%=(Shift And Alt)0 f2down%=(KeyCode=Key_F2) If altdown% And f2down% Then Text1Text=“BBBBB“ End If End Sub 上述程序运行后,如果按【Shift+F2】,则在文本框中显示的是( )。 (分数:2.00)A.Alt+F2B.BBBBBC.随机出几个数D.文本框平均内容无变化7.某人为计算 n! (0=1 tempstr=tempstr+Mid(xstr,i,1) i=i-1 Loop ys
5、tr=tempstr End Sub (分数:2.00)A.fedcbaB.abcdefC.afbecdD.defabc33.下列程序段的执行结果为( )。 I=4 x=5 Do I=I+1 x=x+2 Loop Until I=7 Print“I=“;I Print“X=“;x (分数:2.00)A.I=4 x=5B.I=7 x=15C.I=6 x=8D.I=7 x=1134.有如下程序: Private Sub Commandl_Click() Dim a As Single Dim b As Single a=2:b=4 Call CS(a,b) End Sub Sub CS(x As
6、Single,y As Single) t=X x=t/y y=t Mod y End Sub 程序运行后,单击命令按钮,a 和 b 的值分别为( )。 (分数:2.00)A.0 0B.1 1C.0 2D.1 235.下列程序段的执行结果为( )。 a=1 b=5 Do a=a+b b=b+l Loop While aA.1 5B.12 7C.a bD.10 25二、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:3.00)填空项 1:_37.用户可以用 1 语句定义自己的数据类型。(分数:3.00)
7、填空项 1:_38.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下代码: Option Base 1 Private Sub Command1_Click1 Dim Art Arr=Array(43,68,-25,65,-78,12,-79,43,-94,72) pos=0 neg=0 For k=1 To 10 If Arr(k)0 Then 2 Else 3 End If Next k Print pos,neg End Sub 以上程序的功能是,计算并输出数组 Arr 中 10 个数的正数之和 pos 与负数之和 neg,请填空。 (分数:3.00)填空项 1:_39.
8、在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click1 n = 5 f = 1 s = 0 For i = 1 To n f = f 2 s = s + f Next Print s End Sub 该事件过程的功能是计算 s=1+1/2!+1/3!+1/n! 的值。请填空。 (分数:3.00)填空项 1:_40.如果要将形状控件的内部设置为水平线,应将 Fillstyle 属性设置为 1。(分数:3.00)填空项 1:_41.按“先进后出“原则组织数据的数据结构是 1。(分数:3.00)填空项 1:_42.随机文件使
9、用 Put 语句写数据,使用 1 语句读数据。(分数:3.00)填空项 1:_43.在关系数据库中,用来表示实体之间联系的是 1。(分数:3.00)填空项 1:_44.在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long) As Long Dim k As Long k=l Do While num k=k * (num Mod 10) num=num/10 Loop Trans=k Print Trans End Function Private Sub Commandl_Click1 Dim m As Long Dim s As Lo
10、ng m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 2,在输入对话框中输入“987”输出 3,在输入对话框中输入“879”,输出结果为 4。 (分数:3.00)填空项 1:_45.在窗体上有二个名称为 Command1 的命令按钮和一个名称为 Text1 的文本框。程序运行后,Command1 为禁用(灰色),此时如果在文本框中输入字符,则命令按钮 Command1 变为可用。请填空。 Private Sub Form_Load1 Commandl.Enabled=False End Sub
11、Private Sub Text1 23 Commandl.Enabled=True End Sub (分数:3.00)填空项 1:_国家计算机二级(VB)90 答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.属性 BorderColor 的作用是( )。(分数:2.00)A.设置直线颜色和形状边界颜色 B.设置直线或形状背景颜色C.设置直线或形状边界线的线型D.设置形状的内部颜色解析:在 Visual Basic 中,BorderColor 属性的作用是设置直线的颜色或形状边界线的颜色,所以选项 A
12、)是正确的。直线或形状的背景颜色通过 BackColor 属性来设置,线型通过 BorderStyle 属性设置;形状内部颜色通过 FillColor 属性设置。2.“商品”与“顾客”两个实体集之间的联系一般是_。 (分数:2.00)A.一对一B.一对多C.多对一D.多对多 解析:两个实体间的联系可以归纳为 3 种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。 一对多联系:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录其匹配。本题中一个顾客可以购买多种商品,同一种商品
13、可以有多个顾客购买,所以商品和顾客之间是多对多的联 系。3.以下各项中,Visual Basic 不能接收的图形文件是( )。(分数:2.00)A.报表的主体区域B.页面页眉或页面页脚区域C.报表页眉或报表页脚区域D.组页眉或组页脚区域 解析:组页脚节内主要安排文本框或其他类型控件显示分组统计数据。4.下面的数组声明中,正确的是( )。(分数:2.00)A.Dim pict3,4As IntegerB.Dim pict(3,4)As Integer C.Dim pict34As IntegerD.Dim pict(3:4)As Integer解析:数组元素一般形式为 x(整数),这是对于一维数
14、组而言的;对于二维数 组,只要在圆括号中多加两个整数就可以了,两个整数之间用逗号隔开,其形式为 x(整数 1,整数 2),其中整数 1 代表二维数组的行数,整数 2 代表二维数组的列数。所以正确答 案是选项 B)。5.单击按钮时,以下程序运行后的输出结果是( )。 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=x+y End Sub Private Sub Command1_Click() Dim x As Integer,y As Integer,Z As Integer x=1:y=2:z=3
15、 Call proc1(x,x,z) Print x;x;z Call proc1(x,y,y) Print x;y;y End Sub (分数:2.00)A.Dim NewArray(10)As IntegerB.Dim NewArray(1 T0 10)As Integer C.Dim NewArray(10)IntegerD.Dim NewArray(1 To 10)Integer解析:A)选项定义了 11 个整型数构成的数组,C)选项和 D)选项语法错误。6.设在窗体上有个文本框,然后编写如下的事件过程: Private Sub Text1_KeyDown(KeyCode As Int
16、eger,Shift As Integer) Const Alt=4 Const Key_F2=&H71 altdown%=(Shift And Alt)0 f2down%=(KeyCode=Key_F2) If altdown% And f2down% Then Text1Text=“BBBBB“ End If End Sub 上述程序运行后,如果按【Shift+F2】,则在文本框中显示的是( )。 (分数:2.00)A.Alt+F2B.BBBBBC.随机出几个数D.文本框平均内容无变化 解析: 此题是有关 KeyDown 事件的题目,KeyDown 是当一个键被按下时所产生的事件,而 Ke
17、yUp 是松开被按的键时产生的事件,如果要判断是否按下了某个转换键,可以用逻辑运算符 And。例如:先定义了下面 3 个符号常量:Const Shift=1,Const Ctrl=2,Const Alt=4;然后用下面的语句判断是否按下Shift、Ctrl、Alt 键; 如果 Shift And Shift 0,则按下了 Shift 键; 如果 Shift And Ctrl 0,则按下了 Ctrl 键; 如果 Shift And Alt 0,则按下了 Alt 键; 这里的 Shift时 KeyDown 的第二个参数;此事件过程中的 If 后的条件语句如果为真, 则是按下了 Alt+F2,而本题
18、目中是按下了 Shift+F2,所以不执行 Then 语句,即文本框的内容无变化。 7.某人为计算 n! (0=1 tempstr=tempstr+Mid(xstr,i,1) i=i-1 Loop ystr=tempstr End Sub (分数:2.00)A.fedcba B.abcdefC.afbecdD.defabc解析:被调过程 Invert 的参数 xstr,ystr 从主调函数中收到实参 s1,s2 传来的值“abcdef”,过程Invert 开始声明了两个变量,都是 String 型的:xstr,ystr。I=Len (xstr) 以上语句的功能是:i 的值就是 xstr 的长度
19、,此题为 6。程序代码执行 Do WhileLoop 的循环语句。循环体为tempstr=tempstr+Mid(xstr,i,1),其中变量是 I,由 I= Len(xstr)开始的,每循环一次减 1,;此程序段的最后输出的是字符串 s1 的反向输出,所以正确答案是选项 C)。33.下列程序段的执行结果为( )。 I=4 x=5 Do I=I+1 x=x+2 Loop Until I=7 Print“I=“;I Print“X=“;x (分数:2.00)A.I=4 x=5B.I=7 x=15C.I=6 x=8D.I=7 x=11 解析:此题用的是 Do 循环结构,其格式为: DO 语句块 E
20、xit Do Loop Until 循环条件 此循环由于“先执行后检查”,所以至少执行一次。本题中,程序运行到循环条件 I =7 的值为 True 时才停止。所以当程序结束运行后 I=7 ,x=11。34.有如下程序: Private Sub Commandl_Click() Dim a As Single Dim b As Single a=2:b=4 Call CS(a,b) End Sub Sub CS(x As Single,y As Single) t=X x=t/y y=t Mod y End Sub 程序运行后,单击命令按钮,a 和 b 的值分别为( )。 (分数:2.00)A.
21、0 0B.1 1C.0 2 D.1 2解析:调用一个过程时,必须把实际参数传送给过程,完成形式参数与实际参 数的结合,然后用实际参数执行调用的过程;因为在默认的情况下,变量都是通过“引用” 传送给 Sub 过程,在这种情况下,可以通过改变过程中相应的参数来改变变量的值;过程 Sub 的形参获得 a,b 的地址,此时 x=2,y=4,在过程 Sub 中,将 x,即 2 的值赋给 t,而将 t/ y 的值赋给 x,将 t 除以 y 的余数赋给 y,此时 x,y 的值为0,2。 35.下列程序段的执行结果为( )。 a=1 b=5 Do a=a+b b=b+l Loop While aA.1 5B.
22、12 7 C.a bD.10 25解析:此题比较简单,开始 a 为 1,b 为 5,执行 Do 语句,具体运行为:执行 a=a+b,b=b+1 语句后,a为 6,b 为 6。这样运行到 a=12, 程序终止循环,此时 b=7。二、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:3.00)填空项 1:_ (正确答案:关系)解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。37.用户可以用 1 语句定义自己的数据类型。(分数:3.00)填空项 1:_ (正确答案:TyPe)解析:用户可以
23、用 TyPe 语句来定义数据类型,格式是: Type 数据类型名 数据类型元素名 As类型名 数据类型元素名 As 类型名 EndType 其中“数据类型名”是要定义的数据类型的名字,其命名规则和变量的命名规则相同;“数据类型元素名”也遵守相同的规则,且不能是数组名;“类型名”可以是任何基本数据类型,也可以是用户定义的类型。 38.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下代码: Option Base 1 Private Sub Command1_Click1 Dim Art Arr=Array(43,68,-25,65,-78,12,-79,43,-94,72) po
24、s=0 neg=0 For k=1 To 10 If Arr(k)0 Then 2 Else 3 End If Next k Print pos,neg End Sub 以上程序的功能是,计算并输出数组 Arr 中 10 个数的正数之和 pos 与负数之和 neg,请填空。 (分数:3.00)填空项 1:_ (正确答案:pos=pos+Art(k) , neg=neg+Arr(k))解析:根据题意,如果取出来的是正数,则加到 pos 上;如果是负数,则加到 neg 上。39.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_C
25、lick1 n = 5 f = 1 s = 0 For i = 1 To n f = f 2 s = s + f Next Print s End Sub 该事件过程的功能是计算 s=1+1/2!+1/3!+1/n! 的值。请填空。 (分数:3.00)填空项 1:_ (正确答案:/i)解析:40.如果要将形状控件的内部设置为水平线,应将 Fillstyle 属性设置为 1。(分数:3.00)填空项 1:_ (正确答案:2)解析:在 Visual Basic 中,FillStyle 属性用来设置形状控件内部的填充图案,可以取 8 种值: 0 - Solid:表示填充图案为实心的; 1 - Tra
26、nsparent:表示填充的图案时透明的; 2 - Horizontal Line:表示填充图案为水平线; 3 - Vertical Line:表示填充图案为垂直线; 4 - Upward Diagonal:表示填充图案为向上对角线; 5 - Downward Diagonal:表示填充图案为向下对角线; 6 - Cross:表示填充图案为交叉线; 所以本题的正确答案应该是:2。 41.按“先进后出“原则组织数据的数据结构是 1。(分数:3.00)填空项 1:_ (正确答案:栈)解析:栈是限定只在一端进行插人和删除操作的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。栈按照“先进后出“或
27、“后进先出“的原则组织 数据。42.随机文件使用 Put 语句写数据,使用 1 语句读数据。(分数:3.00)填空项 1:_ (正确答案:Get)解析:随机访问模式中文件的写操作使用 Put 命令,Put 命令是将一个记录变量的内容写入所代开的磁盘文件中指定的记录位置上;随机访问模式中文件的读操作使用 Get 命令,Get 命令是从磁盘文件将一条记录号指定的记录内容读入记录变量中。43.在关系数据库中,用来表示实体之间联系的是 1。(分数:3.00)填空项 1:_ (正确答案:关系)解析:在关系数据库中,用关系(二维表结构)表示实体及其之间联系的模型称为关系数据模型。44.在窗体上有一个命令按
28、钮,然后编写如下程序: Function Trans(ByVal num As Long) As Long Dim k As Long k=l Do While num k=k * (num Mod 10) num=num/10 Loop Trans=k Print Trans End Function Private Sub Commandl_Click1 Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 2,在输入对话框中输入“987”输
29、出 3,在输入对话框中输入“879”,输出结果为 4。 (分数:3.00)填空项 1:_ (正确答案:504)解析:关键字 ByVal 用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字 Byval,则该参数用传值方式传递,否则用传址方式传递;在 Sub 过程中,先将输入的 “456”赋给变量 m,m 作为参数,调用 Trans 过程;在 Trans 过程中以 num 作为 Do While 的循环条件;在循环体中,调用 Mod 函数,将num 的个位数字与 k 相乘,然后赋给 k,第一次循环时,num 的值是 789,所以 k 的值为 9,执行 num = num/10 后,num
30、 的值为 78,循环三次后,num 变为 0;退出循环,k 值等于 987=504,并将 k 的值作为返回值;当输入 “987”或“879”时执行相同的操作,结果都为 504。可以看出,此程序可用于求一个数值各位上数值的乘积。45.在窗体上有二个名称为 Command1 的命令按钮和一个名称为 Text1 的文本框。程序运行后,Command1 为禁用(灰色),此时如果在文本框中输入字符,则命令按钮 Command1 变为可用。请填空。 Private Sub Form_Load1 Commandl.Enabled=False End Sub Private Sub Text1 23 Commandl.Enabled=True End Sub (分数:3.00)填空项 1:_ (正确答案:Change)解析:每当用户修改或通过代码修改文本框中的文本内容时,将触发其 Change 事件。通过该事件可通知程序何时修改了文本框的文本,可以使用该事件随时获得文本框的文本,并更新数据、同步其他控件显示等。