1、国家二级(VB)机试-试卷 12 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.窗体上有一个名称为 CD1 的通用对话框,一个名称为 Command1 的命令按钮,其事件过程如下:Private Sub Command1_Click() CD1.Filter = “All File|*.*|Word|*.Doc|*.exe|*.exe“ CD1.FilterIndex = 2 CD1.DialogTitle = “Open File“ CD1.FileName = “E:/Test.doc“ CD1.InitDir = “E:“ CD1.S
2、howOpenEnd Sub 对于以上程序,以下叙述中错误的是(分数:2.00)A.程序的功能是打开文件名为 E:/Test.doc 的文件B.CD1 被激活为“打开“文件对话框C.对话框的标题是“Open File“D.打开对话框时的默认文件类型是.Doc 文件2.以下关于使用菜单编辑器设计菜单的叙述中错误的是(分数:2.00)A.若菜单项的“可见“选项被标记为“,该菜单项不显示在菜单中B.若菜单项的“有效“选项未标记为“,该菜单项显示为灰色C.菜单中各菜单项可以是控件数组元素D.菜单项中的分隔条也必须有唯一的名称3.窗体的单击事件过程如下:Private Sub Form_Click()
3、x = InputBox(“Input X:“) Select Case Sgn(x) Case -1 Print “y=“; x * Sgn(x) Case 0 Print “y=“; Sgn(x) * 5 Case 1 Print “y=“; x * Sgn(x) + 1 Case Else Print “y=“; 10 End SelectEnd Sub 运行程序时,单击窗体,以下叙述中错误的是(分数:2.00)A.当输入值为 2 时,输出为 y=10B.当输入值为-1 时,输出为 y=1C.当输入值为 0 时,输出为 y=0D.当输入值为 1 时,输出为 y=24.窗体的单击事件过程如
4、下: Private Sub Form_Click() K = 1 For i = 5 To 1 Step -1 T = T * 10 + K S = S + T Next i Print SEnd Sub 运行程序时,单击窗体后,显示的是(分数:2.00)A.12345B.54321C.0D.111115.窗体的单击事件过程代码如下:Private Sub Form_Click() Dim a(5, 5) As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = i + j Print a(i, j); Next j Print Next iEnd
5、 Sub 运行程序,单击窗体后,窗体上显示的是(分数:2.00)A.2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 6 7 8 9 10B.1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9C.3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 6 7 8 9 10 7 8 9 10 11D.2 3 4 5 66.窗体上有名称为 Command1 的命令按钮,程序代码如下:Dim x As Integer, y As Integer, z As IntegerSub p(a As Integer, ByVa
6、l b As Integer) Dim c As Integer a = a * 2 b = b + 2 z = a + bEnd SubPrivate Sub Form_Click() x = 4: y = 5: z = 6 Call p(x, y) Print x, y, zEnd Sub 运行程序,单击命令按钮后,窗体上显示的是(分数:2.00)A.8 5 15B.4 5 6C.4 5 15D.8 10 157.程序代码如下: Option Base 1Private Sub Form_Click() Dim a(5, 5) As Integer Randomize For i = 1
7、To 5 For j = 1 To 5 If i = j Then a(i, j) = 1 Else a(i, j) = Int(Rnd * 50) End If Print a(i, j); Next j Print Next iEnd Sub 以下关于上述程序的叙述中,错误的是(分数:2.00)A.程序为数组 a 的所有元素赋了随机值B.Randomize 的作用是避免同一序列随机数的反复出现C.程序产生随机数的范围是大于等于 0,小于 50D.输出结果组成的方阵中对角线上的值为 18.窗体上有一个名称为 Combo1 的组合框。在组合框的文本输入区输入字符串并按回车后,检查该字符串是否在
8、组合框中已存在。若不存在,则将其添加到组合框中。相关的事件过程如下:Private Sub Combo1_KeyPress(KeyAscii As Integer) Dim flag As Boolean If KeyAscii = 13 Then flag = False For i = 0 To Combo1.ListCount - 1 If Combo1.Text = Combo1.List(i) Then flag = True Exit For End If Next i If flag = False Then Combo1.AddItem Combo1.Text End If E
9、nd IfEnd Sub 对于上述事件过程,以下叙述中错误的是(分数:2.00)A.程序有错,不应该使用 Exit ForB.flag 为 True 时,表明输入的字符串已存在C.参数 KeyAscii 表示输入字符的 ASCII 码D.flag = False 的含义是组合框中没有与输入字符串相同的表项9.窗体上有一个名称为 Text1 的文本框,名称为 Check1 的两个复选框构成的控件数组,下标分别为1、2。窗体外观如图所示。 (分数:2.00)A.将 If Index=1 And Check1(1).Value Then 改为 If Check1(1).Value ThenB.将第
10、1 个 If 条件中的 Check1(1).Value 改为 Check1(1).Value =TrueC.将第 2 个 If 条件中的 Check1(2).Value=1 改为 Check1(2).Value =TrueD.将第 3 个 If 条件中的 Check1(2).Value=0 改为 Check1(2).Value= False10.工程文件包含 Form1、Form2 两个窗体。Form1 有包含二个菜单命令的菜单;Form2 上有一个名称为Command1 的命令按钮,如图所示。 (分数:2.00)A.Form1 中定义的菜单只出现在 Form1B.执行 Form2 的命令按钮
11、单击事件过程,显示 Form1 的同时隐藏 Form2C.Form1 的 2 个菜单命令都能隐藏 Form1D.执行“隐藏 Form1“菜单命令会出错,因为没有窗体被打开11.编写程序,要求输入一个正整数,计算各位数字之和,并将计算结果显示在窗体上。程序如下:Private Sub Command1_Click() Dim Sum As Integer, k As Long k = Val(InputBox(“输入正整数:“) Do While k 0 Sum = Sum + ( _ ) k = k / 10 Loop Print Sum End Sub 程序不完整,应该在_ 处填写的内容是(
12、分数:2.00)A.k Mod 10B.kC.left(CStr(k), 1D.mid (CStr(k), 1,1)12.窗体上有一个名称为 Command1 的命令按钮,一个名称为 List1 的列表框。命令按钮的单击事件过程如下:Private Sub Command1_Click() Open “c:/f1.txt“ For Input As #1 Do While Not EOF(1) Input #1, str1 List1.AddItem str1 Loop CloseEnd Sub 对于上述程序,以下叙述中错误的是(分数:2.00)A.以输入方式打开随机文件 f1.txtB.Cl
13、ose 的作用是关闭已经打开的数据文件C.单击命令按钮后,把 f1.txt 中的所有内容添加到列表框中D.运行程序后,列表框中的列表项都是 f1.txt 中的记录13.在最坏情况下(分数:2.00)A.快速排序的时间复杂度比冒泡排序的时间复杂度要小B.快速排序的时间复杂度比希尔排序的时间复杂度要小C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的14.在深度为 7 的满二叉树中,度为 2 的结点个数为(分数:2.00)A.64B.63C.32D.3115.设栈的顺序存储空间为 S(1: m),初始状态为 top=m+1。现经过一系列入栈
14、与退栈运算后,top=20,则当前栈中的元素个数为(分数:2.00)A.30B.20C.m-19D.m-2016.算法空间复杂度的度量方法是(分数:2.00)A.算法程序的长度B.算法所处理的数据量C.执行算法所需要的工作单元D.执行算法所需要的存储空间17.下面不属于软件开发阶段任务的是(分数:2.00)A.测试B.可行性研究C.设计D.实现18.下面属于字符类的实例是(分数:2.00)A.518B.5C.nmD./n19.某系统结构图如下图所示 (分数:2.00)A.nB.1C.3D.420.一个兴趣班可以招收多名学生,而一个学生可以参加多个兴趣班。则实体兴趣班和实体学生之间的联系是(分数
15、:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系21.有三个关系表 R、S 和 T 如下,其中三个关系对应的关键字分别为 A,B 和复合关键字(A,B)。(分数:2.00)A.实体完整性约束B.参照完整性约束C.用户定义的完整性约束D.关系完整性约束22.在数据库系统中,给出数据模型在计算机上物理结构表示的是(分数:2.00)A.概念数据模型B.逻辑数据模型C.物理数据模型D.关系数据模型23.以下合法的 VB 变量名是(分数:2.00)A.x_B.3xC.var nameD.print24.VB 变量 x! 的数据类型是(分数:2.00)A.单精度类型B.字符串类
16、型C.整型D.双精度类型25.以下关于方法的叙述中,错误的是(分数:2.00)A.在调用方法时,对象名称是必不可缺少的B.方法是一种特殊的过程或函数C.不同对象的方法可以同名D.方法可以带有参数26.设有名称为 p 的 Sub 过程首行,其形式参数是一维整型数组,以下定义语句中正确的是(分数:2.00)A.Private Sub p(A() As Integer)B.Private Sub p(A(10) As Integer)C.Private Sub p(ByVal A() As Integer)D.Private Sub p(A As Integer)27.语句 Print String
17、(3, “string“)的功能是(分数:2.00)A.在窗体上显示字符串 sssB.把数值型数据 3 转换为字符串C.从字符串 string 左起取出 3 个字符输出D.从字符串 string 第 3 个字符开始至末尾取子字符串28.Print Abs(-52)+Int(-52)的输出结果是(分数:2.00)A.0B.1C.-1D.-5029.设程序中分别将 a、b、c、d 定义为布尔型、整型、字符串型、日期型变量,下列赋值语句错误的是(分数:2.00)A.a= #True#B.b=4.6C.c=5 x * Sgn(x) Case 0 Print “y=“; Sgn(x) * 5 Case
18、1 Print “y=“; x * Sgn(x) + 1 Case Else Print “y=“; 10 End SelectEnd Sub 运行程序时,单击窗体,以下叙述中错误的是(分数:2.00)A.当输入值为 2 时,输出为 y=10 B.当输入值为-1 时,输出为 y=1C.当输入值为 0 时,输出为 y=0D.当输入值为 1 时,输出为 y=2解析:解析:程序大意是,当输入的数字为负数时,y=x*(-1);当输入数字为 0 时,y=0*5=0;当输入数字为正数时,y=x*1+1。经过验证,B 项,C 项,D 项表述都正确。对于 A 项,当输入值为 2 时,y=3,故 A 项表述错误
19、。4.窗体的单击事件过程如下: Private Sub Form_Click() K = 1 For i = 5 To 1 Step -1 T = T * 10 + K S = S + T Next i Print SEnd Sub 运行程序时,单击窗体后,显示的是(分数:2.00)A.12345 B.54321C.0D.11111解析:解析:Step -1 表述步长为-1,For 循环体从 i=5 执行到 i=1(i=5,4,3,2,1)。T 和 S 默认值为0,当 i=5 时,T=0*10+1=1,S=0+1=1;当 i=4 时,T=1*10+1=11,S=1+11=12;当 i=3 时,
20、T=111,S=123;依次类推,当 i=1 时,T=11111,S=12345,故选择 A 项。5.窗体的单击事件过程代码如下:Private Sub Form_Click() Dim a(5, 5) As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = i + j Print a(i, j); Next j Print Next iEnd Sub 运行程序,单击窗体后,窗体上显示的是(分数:2.00)A.2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 6 7 8 9 10 B.1 2 3 4 5 2 3 4 5
21、 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9C.3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 6 7 8 9 10 7 8 9 10 11D.2 3 4 5 6解析:解析:本程序主要是先定义 a(5, 5)的数组,然后当 i 从 1 到 5 时,j 从 1 到 5 时,对二维整型数组 a(5,5)中的部分元素赋值 a(i,j) =i +j,最后输出数组 a 中的这部分元素值,得到 A 项的显示结果。6.窗体上有名称为 Command1 的命令按钮,程序代码如下:Dim x As Integer, y As Integer, z As IntegerSub p(
22、a As Integer, ByVal b As Integer) Dim c As Integer a = a * 2 b = b + 2 z = a + bEnd SubPrivate Sub Form_Click() x = 4: y = 5: z = 6 Call p(x, y) Print x, y, zEnd Sub 运行程序,单击命令按钮后,窗体上显示的是(分数:2.00)A.8 5 15 B.4 5 6C.4 5 15D.8 10 15解析:解析:a 参数是传地址的,即变量将地址传递给实参 a,a 的变化能改变了变量的值;ByVal 在参数b 前,表明参数 b 是传值参数,将变
23、量值传给实参 b,b 的变化不影响变量变化。调用 p(x,y),变量 x将地址传递给实参 a,变量 y 将值传递给实参 b,a=4*2=8,b=5+2=7,z=15。a 的变化,改变了 x 的值,x=a=8,b 的变化并不改变 y 的值,y 仍为 5,z 为 15,故选择 A 项。7.程序代码如下: Option Base 1Private Sub Form_Click() Dim a(5, 5) As Integer Randomize For i = 1 To 5 For j = 1 To 5 If i = j Then a(i, j) = 1 Else a(i, j) = Int(Rnd
24、 * 50) End If Print a(i, j); Next j Print Next iEnd Sub 以下关于上述程序的叙述中,错误的是(分数:2.00)A.程序为数组 a 的所有元素赋了随机值 B.Randomize 的作用是避免同一序列随机数的反复出现C.程序产生随机数的范围是大于等于 0,小于 50D.输出结果组成的方阵中对角线上的值为 1解析:解析:本题中,Rnd(x)是一个随机函数,它能产生一个 0 到 1 之间(不包括 0 和 1)之间的单精度随机数,其中变量 x 是种子数,若省略 x,Rnd 函数采用系统时间为种子值。Randomize 省略了参数,用系统计时器 返回的
25、值作为新的种子值,如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值,Randomize 避免同一序列随机数反复出现,故 B 项表述正确。本程序中定义 a(5, 5)的数组,这个数组对角线上数值为 1,其余元素值为 Int(rnd*50),除了对角线上元素,其余元素被赋予随机值。故 A 表述错误, D 表述正确。Rnd 的范围在 0 到 1 之间,故 rnd*50 的范围在 0 到 50 之间(不包括 0 和 50),Int(Rnd * 50)值为不大于(Rnd * 50)的最大整数,即范围是大于等于 0 且小于50,C 表述正确。8.窗体上有一个
26、名称为 Combo1 的组合框。在组合框的文本输入区输入字符串并按回车后,检查该字符串是否在组合框中已存在。若不存在,则将其添加到组合框中。相关的事件过程如下:Private Sub Combo1_KeyPress(KeyAscii As Integer) Dim flag As Boolean If KeyAscii = 13 Then flag = False For i = 0 To Combo1.ListCount - 1 If Combo1.Text = Combo1.List(i) Then flag = True Exit For End If Next i If flag =
27、False Then Combo1.AddItem Combo1.Text End If End IfEnd Sub 对于上述事件过程,以下叙述中错误的是(分数:2.00)A.程序有错,不应该使用 Exit For B.flag 为 True 时,表明输入的字符串已存在C.参数 KeyAscii 表示输入字符的 ASCII 码D.flag = False 的含义是组合框中没有与输入字符串相同的表项解析:解析:判断是否回车,可通过判断当前按键 ASCII 码是否为 13, C 选项表述正确。通过 For 循环,利用 If Combo1.Text = Combo1.List(i)语句,依次将输入的
28、文本与组合框中的选项逐一比较,若输入文本和其中一个选项相同,那么 flag 赋值为 True,表明该字符串在组合框中已存在。如果 For 循环完毕,flag 仍为 False,意味着字符串在组合框中不存在,则通过 Combo1.AddItem Combo1.Text 语句将其添加到组合框中。这个程序中,For 循环是必要的,A 选项表述错误,B,D 选项表述正确。9.窗体上有一个名称为 Text1 的文本框,名称为 Check1 的两个复选框构成的控件数组,下标分别为1、2。窗体外观如图所示。 (分数:2.00)A.将 If Index=1 And Check1(1).Value Then 改
29、为 If Check1(1).Value Then B.将第 1 个 If 条件中的 Check1(1).Value 改为 Check1(1).Value =TrueC.将第 2 个 If 条件中的 Check1(2).Value=1 改为 Check1(2).Value =TrueD.将第 3 个 If 条件中的 Check1(2).Value=0 改为 Check1(2).Value= False解析:解析:复选框中的 Value 属性用来返回或设置复选的状态,值取 0 时,表示没有选中复选框,1 表示选中复选框,2 为该复选框为禁止。故进行修改应在第一个 If 条件中将“If Index
30、=1 And Check1(1).Value“ 改为“If Check1(1).Value“。这是因为当勾选斜体项时, Check1(1).Value 为 True,设置文本为斜体,否则将文本不设置为斜体。故选择 A。10.工程文件包含 Form1、Form2 两个窗体。Form1 有包含二个菜单命令的菜单;Form2 上有一个名称为Command1 的命令按钮,如图所示。 (分数:2.00)A.Form1 中定义的菜单只出现在 Form1 B.执行 Form2 的命令按钮单击事件过程,显示 Form1 的同时隐藏 Form2C.Form1 的 2 个菜单命令都能隐藏 Form1D.执行“隐藏
31、 Form1“菜单命令会出错,因为没有窗体被打开解析:解析:由图和程序可知,A 项表述正确。执行 Form2 的命令按钮单击事件过程,只显示 Form1,对Form2 没有设置相关隐藏操作,故 B 选项表述错误。Form1 的 2 个菜单命令一个是隐藏 Form1,一个是显示 Form2,故 C 错误。执行 Form2 的命令按钮单击事件过程不会出错,因为窗体已经初始化了,故 D 错误。11.编写程序,要求输入一个正整数,计算各位数字之和,并将计算结果显示在窗体上。程序如下:Private Sub Command1_Click() Dim Sum As Integer, k As Long k
32、 = Val(InputBox(“输入正整数:“) Do While k 0 Sum = Sum + ( _ ) k = k / 10 Loop Print Sum End Sub 程序不完整,应该在_ 处填写的内容是(分数:2.00)A.k Mod 10 B.kC.left(CStr(k), 1D.mid (CStr(k), 1,1)解析:解析:k = Val(InputBox(“输入正整数:“)的意思是将输入对话框中输入的数据转换成数字赋给变量 k。 在内层循环中,循环体的意思是将 k 除 10 的余数(k mod 10)加入到 sum 变量中,然后 k 重新赋值, k 除以 10 的整数
33、赋值给 k。执行循环体,直到 k=0 为止。最后得到的 sum 就是输入整数的各位数字之和,故选择 A 项。12.窗体上有一个名称为 Command1 的命令按钮,一个名称为 List1 的列表框。命令按钮的单击事件过程如下:Private Sub Command1_Click() Open “c:/f1.txt“ For Input As #1 Do While Not EOF(1) Input #1, str1 List1.AddItem str1 Loop CloseEnd Sub 对于上述程序,以下叙述中错误的是(分数:2.00)A.以输入方式打开随机文件 f1.txt B.Close
34、 的作用是关闭已经打开的数据文件C.单击命令按钮后,把 f1.txt 中的所有内容添加到列表框中D.运行程序后,列表框中的列表项都是 f1.txt 中的记录解析:解析:FreeFile 函数返回一个整数,即下一个可供 OPEN 语句使用的文件号,EOF 函数用来返回测试文件的结束状态,对于顺序文件来说,如果已达到文件尾,则函数返回值为 True,否则返回值为False。利用 EOF 函数,可以避免在文件输入时出现“输入超出文件尾“的错误。EOF(1)的含义是已到达文件号为 1 的文件尾,Not EOF(1)的含义是没有到达文件号为 1 所对应文件的末尾。Open 语句兼有打开文件和建立文件两种
35、功能。题目中采用 Input 方式打开文件,指定文件顺序输入方式,故 Open 打开的是顺序文件。故 A 项错误。Close 作用是关闭一个文件,在本题中作用是关闭已经打开的数据文件,故 B 选项表述正确。Input 是从一个顺序文件中读出一个数据项,并把它赋值给一个变量。Input #1, str1 和List1.AddItem str1 两个语句通过 str1,将文件中的一个数据项添加到 List1 中,如此循环,直到文件末尾,程序运行结束, f1.txt 中的所有内容被添加到列表框中,列表框中的列表项都是 f1.txt 中的记录。故 C,D 项表述正确。13.在最坏情况下(分数:2.00
36、)A.快速排序的时间复杂度比冒泡排序的时间复杂度要小B.快速排序的时间复杂度比希尔排序的时间复杂度要小C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小 D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的解析:14.在深度为 7 的满二叉树中,度为 2 的结点个数为(分数:2.00)A.64B.63 C.32D.31解析:解析:在树结构中,一个节点所拥有的后件个数称为该节点的度。深度,定义一棵树的根节点所在的层次为,其他节点所在的层次等于它的父节点所在的层次加,树的最大层次称为树的深度。满二叉树指除最后一层外,每一层上的所有节点都有两个子节点的二叉树。一棵深度为 K 的满二叉树,整棵二
37、叉树共有 2K-1 个节点;满二叉树在其第 i 层上有 2i-1 个节点。在满二叉树中,只有度为 2 和度为 0 的节点。深度为 7 的满二叉树,节点个数为 27-1=127,第七层叶节点个数为 27-1=64,则 127-64=63, B 选项正确。15.设栈的顺序存储空间为 S(1: m),初始状态为 top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为(分数:2.00)A.30B.20C.m-19 D.m-20解析:解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。
38、栈为空时,栈顶指针 top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为 top=m+1,当 top=20 时,元素依次存储在单元 20:m中,个数为 m-19,C 选项正确。16.算法空间复杂度的度量方法是(分数:2.00)A.算法程序的长度B.算法所处理的数据量C.执行算法所需要的工作单元D.执行算法所需要的存储空间 解析:解析:算法的空间复杂度是指执行这个算法所需要的内存空间,。算法执行期间所需的存储空间包括 3 个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。D 选项正确。17.下面不属于软件开发阶段任务的是(分数:2.00)A.测试
39、B.可行性研究 C.设计D.实现解析:解析:软件生命周期分为 3 个时期共 8 个阶段:软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。可行性研究属于软件定义期任务,B 选项错误。18.下面属于字符类的实例是(分数:2.00)A.518B.5C.nmD./n 解析:解析:字符实例的一般形式是用一对单引号括起来的一个字符。另外 ASCII 码中还有一些控制字符,C 语言中用转义字符的形式来书写这些常,转义字符一反斜杠(/)开始,后面跟 1 个字符或字符序列。518单引号中有三个字符,A 选项错误。“5“双引号为字符串,B
40、 选项错误。nm单引号中有两个字符,C 选项错误。/n为换行符,属于字符类实例,D 选项正确。19.某系统结构图如下图所示 (分数:2.00)A.n B.1C.3D.4解析:解析:扇出指的是由一个模块直接调用的其他模块数。题干中某系统为一个模块,其扇出数目为n(n3),功能 1 与功能 n 模块扇出数均为 2,故 A 选项正确。20.一个兴趣班可以招收多名学生,而一个学生可以参加多个兴趣班。则实体兴趣班和实体学生之间的联系是(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系 解析:解析:一般来说,实体集之间必须通过联系来建立联接关系,分为 3 类:一对一联系(1
41、:1)、一对多联系(1:m)、多对多联系(m:n)。多个兴趣班与多个学生的关系为 m:n 联系,D 选项正确。21.有三个关系表 R、S 和 T 如下,其中三个关系对应的关键字分别为 A,B 和复合关键字(A,B)。(分数:2.00)A.实体完整性约束B.参照完整性约束 C.用户定义的完整性约束D.关系完整性约束解析:解析:关系模型中可以有 3 类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整性约束。实体完整性约束是指,若属性是关系的主键,则属性中的属性值不能为空值。T 中主键不为空,A 选项错误。参照完整性约束是指,若属性(或属性组)A 是关系 M 的外键,它与关系 M 的主码相
42、对应,则对于关系 M 中的每个元组在 A 上的值必须为:要么取空值;要么等于关系 M 中某个元组的主码值。属性B 为关系 S 的外键,它与关系 S 的主键相对应,则 T 中元组在 B 上应该为空或者与 S 中主键值相等,题目中不相等,违反参照完整性约束,B 选项正确。此题关系中无语义要求,C 选项错误。22.在数据库系统中,给出数据模型在计算机上物理结构表示的是(分数:2.00)A.概念数据模型B.逻辑数据模型C.物理数据模型 D.关系数据模型解析:解析:数据模型按照不同的应用层次分为以下 3 种类型:概念数据模型,重于对客观世界复杂事物的描述及对它们内在联系的刻画;逻辑数据模型,是面向数据库
43、系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。C 选项正确。23.以下合法的 VB 变量名是(分数:2.00)A.x_ B.3xC.var nameD.print解析:解析:在 VB 中,变量名的第一个字符必须是英文字母,故 B 选项错误;变量名只能由字母、数字、下划线组成,故 C 选项错误;保留字不能作为变量名,D 选项中 print 为保留字,故 D 选项错误;A 选项符合变量的命名规则,故选 A。24.VB 变量 x! 的数据类型是(分数:2.00)A.单精度类型 B.字符串类型C.整型D.双精度类型解析
44、:解析:在 VB 中,单精度浮点型的类型说明符为!,整型的类型说明符为%,字符串类型的类型说明符为$,双精度类型的类型说明符为#,故选择 A 项。25.以下关于方法的叙述中,错误的是(分数:2.00)A.在调用方法时,对象名称是必不可缺少的 B.方法是一种特殊的过程或函数C.不同对象的方法可以同名D.方法可以带有参数解析:解析:调用方法时,对象名称可省略,此时调用的是当前对象的方法,故选项 A 错误。方法可以理解为一种特殊的过程或函数,故选项 B 正确。不同对象的方法可以同名,这是因为虽然方法同名,但是只要调用对象不同,调用就不会出错,选项 C 正确。方法可以带参数,选项 D 表述正确。26.
45、设有名称为 p 的 Sub 过程首行,其形式参数是一维整型数组,以下定义语句中正确的是(分数:2.00)A.Private Sub p(A() As Integer) B.Private Sub p(A(10) As Integer)C.Private Sub p(ByVal A() As Integer)D.Private Sub p(A As Integer)解析:解析:选项 A 符合题目要求和数组参数的过程定义规则,故 A 项正确。因为形参是一个数组,而不是单个元素,所以数组名后面只需加上一对括号,不需要写数组下标,故 B 错误。数组一般是通过传地址的方式传送的,故形参前不加 ByVal
46、,选项 C 错误。如果形参是数组,那么应在数组名的后面加上一对括号,避免与普通变量混淆,故选项 D 错误。27.语句 Print String(3, “string“)的功能是(分数:2.00)A.在窗体上显示字符串 sss B.把数值型数据 3 转换为字符串C.从字符串 string 左起取出 3 个字符输出D.从字符串 string 第 3 个字符开始至末尾取子字符串解析:解析:String(n,s)生产 n 个同一字符组成的字符串,此字符由 s 指定,当 s 为字符是,生产 n个由 s 组成的字符串,当 s 为字符串时,字符为 s 的第一个字符。String(3,“string“)生产
47、3 个由同一字符s组成的字符串“sss“,故选项 A 正确。28.Print Abs(-52)+Int(-52)的输出结果是(分数:2.00)A.0 B.1C.-1D.-50解析:解析:数学函数 Abs(x)返回值是自变量 x 的绝对值,故题目中的 Abs(-52)值为 10,;取整函数Int(x)返回不大于自变量 x 的最大整数,故 Int(-52)值为-10,故 print Abs(-52)+Int(-52)的输出结果 0,选择 A 选项。29.设程序中分别将 a、b、c、d 定义为布尔型、整型、字符串型、日期型变量,下列赋值语句错误的是(分数:2.00)A.a= #True# B.b=4
48、.6C.c=5 & 10D.d=#2013/01/01#解析:解析:对于布尔型的常量具有 True 和 False 两个值,布尔型的变量也具有 True 和 False 两个值,故布尔型的 a,直接赋值即 a=true 即可,故 A 选项错误。整型变量直接赋值,故 B 正确。“&“运算符作字符串连接符使用,进行字符串连接操作,故 C 项正确。对日期型常量赋值是用一对双引号或者一对“#“号作为定界符,故选项 D 正确。30.以下叙述中错误的是(分数:2.00)A.事件过程可以像通用过程一样由用户指定过程名 B.在 Sub 过程中可以调用其它过程C.在 Sub 过程中不能定义其它过程D.如果过程被
49、定义为 Static 类型,则该过程中的局部变量都是 Static 类型解析:解析:事件不同通用过程,事件过程名是系统自动生成的,不能通过用户指定,故选项 A 表述错误。Sub 过程可以调用其他过程,但是不能在过程中定义其他过程,故选项 B、C 表述正确。如果过程被定义为 Static,即静态类型,则该过程中的局部变量也是 Static 类型,故 D 项表述正确。31.以下语句或语句组中,不能找出 x、y 中最大值的是(分数:2.00)A.If y x Then Max = y: Max = x B.Max = x: If y = x Then Max = yC.If x y Then Max = x Else Max = yD.Max = IIf(x y, x, y)解析:解析:A 项语句组中执行 If Then 语句后,都将 x 赋值给 Max,不能找出最大值,实际上,这个 IF语句缺少 Else,故选项 A 不能找出最大值;选项 B 和选项 C 能找出最大值。IIF 函数实际上可以理解成“If.Then.Else“的另外一种表现形式,即 IIf(条件,True 部分,False 部分),