1、国家二级(VF)机试模拟试卷 98 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,不能采用顺序存储结构的是( )。(分数:2.00)A.非完全二叉树B.堆C.队列D.栈2.下列叙述中错误的是,( )。(分数:2.00)A.二叉链表是二叉树的存储结构B.循环链表是循环队列的存储结构C.栈是线性结构D.循环队列是队列的存储结构3.设一棵树的度为 4,其中度为 4,3,2,1 的结点个数分别为 2,3,3,0。则该棵树中的叶子结点数为( )。(分数:2.00)A.16B.15C.17D.不可能有这样的树4.循环队列的存储空间为 Q
2、(1:100),初始状态为 front=rear=100,,经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为( )。(分数:2.00)A.1B.2C.99D.O 或 1005.某系统结构图如下图所示 (分数:2.00)A.5B.4C.2D.16.软件测试用例包括( )。(分数:2.00)A.被测程序和测试规程B.测试计划和测试数据C.输入数据和预期输出结果D.输入数据和输出数据7.软件生存周期中,解决软件“怎么做”的阶段是( )。(分数:2.00)A.软件设计B.需求分析C.软件测试D.可行性研究8.用树型结构表示实体之间联系的模型是( )。(分数:2.0
3、0)A.关系模型B.层次模型C.网状模型D.运算模型9.关系数据模型的三个组成部分中不包括( )。(分数:2.00)A.关系的完整性约束B.关系的数据操纵C.关系的数据结构D.关系的并发控制10.现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中脚为患者编号,Pn 为患者姓名,Pg 为性别,By 为出生日期,Tr(P#,D#,Date,Rt),其中 D#为医生编号,Date 为就诊日期,Rt 为诊断结果。检索在 1 号医生处就诊的病人姓名的表达式是( )。(分数:2.00)A.B. P# ( D#=1 (Tr)C. Pn (P)D.11.下列关于投影运算的描述,错误的是( )。(
4、分数:2.00)A.对关系执行投影运算之后,新的关系仍有可能含有重复行B.投影运算是从关系的垂直方向进行运算C.投影运算是指从关系中指定若于个属性组成新的关系D.对关系执行投影运算之后,运算结果仍是关系12.如果要将系统的默认路径设置为“D:database”,则正确的命令是( )。(分数:2.00)A.SET DEFAULT TO“D:database”B.SET DEFAULT PATH TO“D:database”C.SET DEFAULT DIRECTORY TO“D:database”D.SET DIRECTORY TO“D:database”13.如果要将所有变量名的前 2 个字符
5、为 ab、第 3 个字符为任意字符的变量进行释放,则正确的命令是( )。(分数:2.00)A.RELEASE ALL LIKE ab?B.RELEASE ALL LIKE ab*C.RELEASE ALL LIKE ab_D.RELEASE ALL LIKE ab14.执行下列程序后,显示结果是( )。 cj=75 ? IIF(cj=80,1,IIF(cj=60,2,3)(分数:2.00)A.2B.1C.3D.F15.如果要判断数值型变量 x 能否被 2 整除,错误的条件表达式是( )。(分数:2.00)A.CEILING(x2)=MOD(x,2)B.CEILING(x2)=x2C.x2=0D
6、.MOD(x,2)=016.设 a=2,b=3,c=4,d=5,则表达式 ab And ec 的值为( )。(分数:2.00)A.abedB.FC.2345D.T17.下列关于自由表的描述,正确的是( )。(分数:2.00)A.可以使用 ADD TABLE 命令将自由表添加到数据库中B.不能用 CREATE TABLE 命令创建自由表C.可以对自由表中的字段设置有效性规则D.可以将自由表同时添加到两个数据库中18.打开一个空的数据表,执行下列命令后,会报错的是( )。(分数:2.00)A.GO 1B.GO TOPC.LOCATE WHILE RECNO( )=1D.LOCATE ALL FOR
7、 RECNO( )=119.如果小客车和客车所有人两个表建立了“级联”参照完整性的删除规定,下列选项正确的是( )。(分数:2.00)A.无论客车所有人表中是否有相关的记录,小客车表中的记录都不允许删除B.删除小客车表中的记录时,客车所有人表中的相应记录不变C.删除小客车表中的记录时,客车所有人表中的相应记录系统自动删除D.客车所有人表中的记录不允许删除20.数据库表的字段可以定义规则,规则是( )。(分数:2.00)A.字符表达式B.逻辑表达式C.数值表达式D.日期表达式21.在 SELELT 语句中,使用 MAX(列名)时,对“列名”的数据类型的描述,正确的是( )。(分数:2.00)A.
8、“列名”的数据类型不受限制B.“列名”的数据类型必须是数值型C.“列名”的数据类型必须是数值型或字符型D.“列名”的数据类型不能是通用型和备注型22.设购书表的表结构为(顾客编号,图书号,数量,购书日期),若查询既购买了图书号为“t001”,又购买了 图书号为“t002”的顾客编号,则正确的 SQL 语句是( )。(分数:2.00)A.SELECT DISTINCT p1顾客编号 FROM 购书表 pl JOIN 购书表 p2; ON pi顾客号=p2顾客号 WIIERE p1图书号=t001AND p2图书号=t002B.SELECT DISTINCT p1顾客编号 FROM 购书表 pl
9、JOIN 购书表 p2; ON p1图书号=p2图书号 WHERE p1图书号=t001AND p2图书号=t002C.SELECT DISTINCT 顾客编号 FROM 购书表 WHERE 图书号=t001AND 图书号=t002D.SELECT DISTINCT 顾客编号 FROM 购书表 WHERE 图书号 IN(t001,t002)23.设数据库有如下表: 学生(学号,姓名,出生日期,专业) 成绩(学号,课程号,考试分数) 学生表中的主键是学号,成绩表中的主键是学号和课程号。已知学生表中共有 100 名学生,有 60 人参加了课程号为“C001”的考试,考试分数保存在成绩表中,其中有
10、10 人不及格。执行下列 SQL 语句后, 返回的结果是:( )。 SELECT COUNT(*)FROM 学生; WHERE EXISTS(SELECT*FROM 成绩 WHERE 课程号=C001AND 考试分数0),; 购书日期 D) 下列选项中,能够给“购书日期”字段添加一个默认值为当前系统日期的是( )。(分数:2.00)A.ALTER TABLE 购书表 ALTER 购书日期 DEFAULT DATE( )B.ALTER TABLE 购书表 ALTER 购书日期 SET DEFAULT DATE( )C.ALTER TABLE 购书表 MODIFY 购书日期 SET DEFAULT
11、 DATE( )D.ALTER TABLE 购书表 MODIFY 购书日期 DEFAULT DATE( )25.设成绩(学号,课程号,考试分数),如果要删除成绩表中考试分数为空值的记录,则下面语句正确的是( )。(分数:2.00)A.DELETE*FROM 成绩 WHERE 考试分数=NULLB.DELETE*FROM 成绩 WHERE 考试分数 IS NULLC.DELETE FROM 成绩 WHERE 考试分数=NULLD.DELETE FROM 成绩 WHERE 考试分数 IS NULL26.设数据库有如下表: 图书(图书号,书名,单价) 购书(顾客编号,图书号,数量,购书日期) 已知购
12、书表中已经保存了购买多本图书的信息。下列语句中,与“SELECT*FROM 图书 WHERE 图书号 IN(SELECT 图书号 FROM 购书)”语句等价的是( )。(分数:2.00)A.SELECT*FROM 图书 WHERE 图书号=ANY(SELECT 图书号 FROM 购书)B.SELECT*FROM 图书 WHERE 图书号=ALL(SELECT 图书号 FROM 购书)C.SELECT*FROM 图书 WHERE EXISTS(SELECT 图书号 FROM 购书)D.SELECT*FROM 图书 WHERE 图书号=(SELECT 图书号 FROM 购书)27.SELECT 语
13、句中的 TOP 短语必须要与下列哪个短语同时使用才有效( )。(分数:2.00)A.WHEREB.GROUP BYC.ORDER BYD.HAVING28.设职工表的结构为(职工号,姓名,部门号,出生日期),若要查询既不姓王,也不姓李的职工信息,则正确的 SQL 语句是( )。(分数:2.00)A.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“AND 姓名 NOT LIKE“李“B.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“OR 姓名 NOT LIKE“李“C.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“AND“李“
14、D.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“OR“李“29.下列函数中,操作对象可以是元组的函数是( )。(分数:2.00)A.SUMB.COUNTC.MIND.MAX30.在 SQL SELECT 语句里的“SELECT DISTINCT”表示查询结果中( )。(分数:2.00)A.属性值都不相同B.属性名都不相同C.去掉了重复的列D.元组都不相同31.设数据库中职工表的结构为(职工号,姓名,部门号,出生日期),如果要将职工表的姓名字段设置为不允许为空值,则正确的 SQL 语句是( )。(分数:2.00)A.ALTER TABLE 职工 ALTER 姓名 NOT
15、 NULLB.ALTER TABLE 职工 SET NOT NULL(姓名)C.ALTER TABLE 职工 ALTER 姓名 SET NOT NULLD.ALTER TABLE 职工 SET NOT NULL 姓名32.设数据库有如下表: 部门(部门号,部门名,负责人,电话) 职工(职工号,姓名,部门号,出生日期) 其中部门的负责人参照职工的职工号,职工的部门号参照部门的部门号。若要查询后勤部的负责人信息,则正确的 SQL 语句是( )。(分数:2.00)A.SELECT*FROM 职工 WHERE 姓名 IN(SELECT 负责人 FROM 部门; WHERE 部门名=“后勤部“)B.SE
16、LECT 职工*FROM 部门 JOIN 职工 ON 部门部门号=职工部门号; WHERE 部门名=“后勤部“C.SELECT*FROM 职工 WHERE 部门名=“后勤部“D.SELECT 职工*FROM 部门 JOIN 职工 ON 部门负责人=职工职工号; WHERE 部门名=“后勤部“33.有图书表和借阅表: 图书DBF:总编号 C(6),分类号 C(6),书名 C(30),作者 C(6),出版单位C(20),单价 N(8,2)借阅DBF:借书证号 C(5),总编号 C(6),借书日期 D 查询未被借阅的图书信息,不正确的 SQL 语句是( )。(分数:2.00)A.SELECT*FRO
17、M 图书 WHERE 总编号ALL(SELECT 总编号 FROM 借阅)C.SELECT*FROM 图书 WHERE NOT EXISTS(SELECT*FROM 借阅 WHERE 借阅总编号=图书总编号)D.SELECT*FROM 图书 WHERE 总编号 NOT IN(SELECT 总编号 FROM 借阅)34.下列关于视图的描述中,不正确的是( )。(分数:2.00)A.视图中可以保存数据B.视图既可以访问本地数据源,又可以访问远程数据源C.视图只能从属于某一个数据库D.对视图的操作最终都转换为对源数据表的操作35.打开一个视图的命令时( )。(分数:2.00)A.OPENB.OPEN
18、 VIEWC.USED.USE VIEW36.下列程序段的循环结构执行后,x 的值为 FOR x=1 TO 8 STEP 2 y=y+x ENDFOR ?x(分数:2.00)A.9B.8C.16D.因为 y 的初始值不知道,所以结果无法确定37.执行下列程序后,显示结果是( )。 *主程序 mainprg RELEASE ALL PRIVATE x,y x=1 y=2 DO pl ?x,y PROCEDURE pl LOCAL y x=10 y=x RETURN(分数:2.00)A.1 10B.1 2C.10 2D.10 1038.执行下列程序之后的显示结果是( )。 CLEAR xl=l x
19、2=2 DO p1 with x1,x1+x2 ?“xl=“+STR(x1,1),“)x2=“+STR(x2,1) RETURN PROC p1 PARA w1w2 w1=w1*2 w2=w2*2 RFTURN(分数:2.00)A.x1=1 x2=2B.x1=2 x2=2C.xl=2 x2=6D.x1=1 x2=639.下列控件中属于容器控件的是( )。(分数:2.00)A.列表框B.组合框C.复选框D.页框40.设已经为一个表单建立了快捷菜单,如果要激活、打开这个菜单,则应该( )。(分数:2.00)A.用事件B.用快捷键C.用热键D.用菜单二、基本操作题(总题数:1,分数:2.00)41.
20、(1)在考生文件夹下建立数据库 BOOKAUTHDBC,把表 BOOKS 和 AUTHORS 添加到该数据库中。 (2)为AUTHORS 表建立主索引,索引名为“PK”,索引表达式为“作者编号”。 (3)为 BOOKS 表建立两个普通索引,第一个索引名为“PK”,索引表达式为“图书编号”;第二个索引名和索引表达式均为“作者编号”。(4)建立 AUTHORS 表和 BOOKS 表之间的永久联系。(分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.(1)用 SQL 语句完成下列操作:检索“田亮”所借图书的书名、作者和价格,结果按价格降序存入book_temp 表中。 (2)在考生
21、文件夹下有一个名为 menu_lin 的下拉式菜单,请设计一个名为 form_menu的顶层表单,将菜单 menu_lin 加入到该表单中,使得运行表单时菜单显示在该表单中,并且,表单退出时释放菜单。(分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.在考生文件夹下完成下列操作: (1)建立一个表单名和文件名均为 myform 的表单,如下图所示。表单的标题为“教师情况”,表单中有两个命令按钮(Commandl 和 Command2),两个复选框(Checkl 和 Check2)和两个单选按钮(Optionl 和 Optiort2)。Commandl 和 Command2 的
22、标题分别是“生成表”和“退出”,Checkl 和 Check2 的标题分别是“系名”和“工资”,Optionl 和 Option2 的标题分别是“按职工号升序”和“按职工号降序”。 (分数:2.00)_国家二级(VF)机试模拟试卷 98 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,不能采用顺序存储结构的是( )。(分数:2.00)A.非完全二叉树 B.堆C.队列D.栈解析:解析:根据完全二叉树的性质 6,满二叉树和完全二叉树可以按层序进行顺序存储,但一般的二叉树不适用。堆可以用一维数组来存储也可以用完全二叉树来直观地表示堆的
23、结构。队列、栈本身就是顺序存储的。故本题答案为 A 选项。2.下列叙述中错误的是,( )。(分数:2.00)A.二叉链表是二叉树的存储结构B.循环链表是循环队列的存储结构 C.栈是线性结构D.循环队列是队列的存储结构解析:解析:循环队列是队列的一种顺序存储结构,用队尾指针 real 指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置。循环链表是用不连续的存储单元存储数据,它有一个表头结点,队头指针指向表头结点,最后一个结点的指针域指向表头结点。二叉链表是树的二叉链表实现方式。栈是一种特殊存取方式的线性表。故本题答案为 B 选项。3.设一棵树的度为 4,其中度为 4,3,2,
24、1 的结点个数分别为 2,3,3,0。则该棵树中的叶子结点数为( )。(分数:2.00)A.16 B.15C.17D.不可能有这样的树解析:解析:根据题目,树的结点数=4 2+33+2 3+10+根结点=8+9+6+0+1=24,即总结点数为24, 总结点数减去度不为 0 的结点数即是叶子结点,24-(2+3+ 3)=16。故本题答案为 A 选项。4.循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100,,经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为( )。(分数:2.00)A.1B.2C.99D.O 或 100 解析:解析
25、:在循环队列中,用队尾指针 real 指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加 1,朝前移动。只不过当头尾指针指向向量上界时,其加 1 操作的结果是指向向量的下界 0。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。故本题答案为 D 选项。5.某系统结构图如下图所示 (分数:2.00)A.5 B.4C.2D.1解析:解析:系统结构图的宽度指整体控制跨度(横向最大模块数)的表示。本题中,模块数最多的是第 3层,即“功 能 xx”的模块个数就是宽度,有 5 个。故本题答案为
26、A 选项。6.软件测试用例包括( )。(分数:2.00)A.被测程序和测试规程B.测试计划和测试数据C.输入数据和预期输出结果 D.输入数据和输出数据解析:解析:测试用例(Test Case)是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成。故本题答案为 C 选项。7.软件生存周期中,解决软件“怎么做”的阶段是( )。(分数:2.00)A.软件设计 B.需求分析C.软件测试D.可行性研究解析:解析:软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即解决软件“怎么做”的问题。故本题答案
27、为 A 选项。8.用树型结构表示实体之间联系的模型是( )。(分数:2.00)A.关系模型B.层次模型 C.网状模型D.运算模型解析:解析:用树形结构表示实体及其之间联系的模型称为层次模型。在层次模型中,结点是实体,树枝是联系,从上到下是一对多的关系。故本题答案为 B 选项。9.关系数据模型的三个组成部分中不包括( )。(分数:2.00)A.关系的完整性约束B.关系的数据操纵C.关系的数据结构D.关系的并发控制 解析:解析:关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整住约束。故本题答案为 D 选项。10.现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中脚为患
28、者编号,Pn 为患者姓名,Pg 为性别,By 为出生日期,Tr(P#,D#,Date,Rt),其中 D#为医生编号,Date 为就诊日期,Rt 为诊断结果。检索在 1 号医生处就诊的病人姓名的表达式是( )。(分数:2.00)A. B. P# ( D#=1 (Tr)C. Pn (P)D.解析:解析: 表示投影运算,针对属性; 表示选择运算,针对元组; 表示自然连接。首先在Tr 表中选择 D#为 1 的记录 D#=1 (Tr),并检索这些记录中患者的编号 P# ( D#=1 (Tr),检索结果与表 P 进行自然连接生成中间表 P# ,最后在中间表中检索患者的姓名 Pn 11.下列关于投影运算的描
29、述,错误的是( )。(分数:2.00)A.对关系执行投影运算之后,新的关系仍有可能含有重复行 B.投影运算是从关系的垂直方向进行运算C.投影运算是指从关系中指定若于个属性组成新的关系D.对关系执行投影运算之后,运算结果仍是关系解析:解析:从关系模式中指定若干个属性组成新的关系称为投影,C 选项叙述正确;投影是从列的角度进行的运算,相当于对关系进行垂直分解,B 选项叙述正确;经过投影运算可以得到一个新的无重复元组的关系,D 选项叙述正确,A 选项叙述错误。12.如果要将系统的默认路径设置为“D:database”,则正确的命令是( )。(分数:2.00)A.SET DEFAULT TO“D:da
30、tabase”B.SET DEFAULT PATH TO“D:database” C.SET DEFAULT DIRECTORY TO“D:database”D.SET DIRECTORY TO“D:database”解析:解析:SET DEFAULT TO路径?命令的功能是:设置默认的工作目录,故 B 选项正确。13.如果要将所有变量名的前 2 个字符为 ab、第 3 个字符为任意字符的变量进行释放,则正确的命令是( )。(分数:2.00)A.RELEASE ALL LIKE ab? B.RELEASE ALL LIKE ab*C.RELEASE ALL LIKE ab_D.RELEASE
31、ALL LIKE ab解析:解析:清除内存变量可以使用 RELEASE ALLLIKE通配符EXCEPT通配符格式,其中 LIKE短语只显示与通配符相匹配的内存变量,*表示任意多个字符,?表示任意一个字符。本题中显示前 2 个字符 ab,第 3 个字符为任意字符,应表示为 RELEASE ALL LIKE ab?,故 A 选项正确。14.执行下列程序后,显示结果是( )。 cj=75 ? IIF(cj=80,1,IIF(cj=60,2,3)(分数:2.00)A.2 B.1C.3D.F解析:解析:条件测试函数 IIF 的格式为:IIF(逻辑表达式,表达式 1,表达式 2),功能为:测试逻辑表达式
32、的值,若为逻辑真(T),函数返回表达式 1的值;若为逻辑假(F),函数返回表达式 2的值。本题中逻辑表达式“cj=60”结果为逻辑真(T),故函数IIF(cj=60,2,3)返回值为 2;逻辑表达式“cj=80”的结果为逻辑假(F),故函数IIF(cj=80,l,IIF(cj=60,2,3)返回值为 2,A 选项正确。15.如果要判断数值型变量 x 能否被 2 整除,错误的条件表达式是( )。(分数:2.00)A.CEILING(x2)=MOD(x,2) B.CEILING(x2)=x2C.x2=0D.MOD(x,2)=0解析:解析:CELLING(数值表达式)返回大于或等于给定数值表达式的最
33、小整数,B 选项中表达式的左侧 CEIIJNG(x2)返同 x 除以 2 后的整数值,表达式的右侧 x2 返回 x 除以 2 的结果,若左侧与右侧相等,则表示 x 为能被 2 整除的数值;C 选项中表达式 x2=0 表示 x 与 2 求余的结果为 0,即 x 能被 2 整除;D 选项中 MOD 函数返回两个数值相除后的余数,若表达式 MOD(x,2)的结果为 0,则表达式 x 能被 2整除;A 选项中左右两个表达式的值相等并不能判断 x 能被 2 整除,故 A 选项符合题意。16.设 a=2,b=3,c=4,d=5,则表达式 ab And ec 的值为( )。(分数:2.00)A.abedB.
34、FC.2345D.T 解析:解析:不同类型的运算符出现在同一个表达式中。这时它们的运算优先级顺序为:先执行算术运算、字符串运算和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。本题中首先执行 3*a 结果为6,然后执行 ab 结果为F,执行 cc 结果为T,整个表达式为FAndTOrT,逻辑运算符的优先级为 NOT、AND、OR 所以FAndT结果为F,FOrT结果为T,最终表达式的执行结果为T,D 选项正确。17.下列关于自由表的描述,正确的是( )。(分数:2.00)A.可以使用 ADD TABLE 命令将自由表添加到数据库中 B.不能用 CREATE TABLE 命令创建自由表C
35、.可以对自由表中的字段设置有效性规则D.可以将自由表同时添加到两个数据库中解析:解析:所谓自由表,就是那些不属于任何数据库的表,在 Visual FoxPro 中创建表时,如果当前没有打开数据库,则创建的数据表即为自由表。可以使用 CREATE TABLE 命令创建自由表,B 选项叙述错误;自由表不能建立字段级规则和约束,C 选项叙述错误;一个表只能属于一个数据库,不能将一个自由表同时添加到两个数据库中,D 选项叙述错误;可以使用 ADD TABLE 命令添加一个自由表到当前数据库中,A选项叙述正确。18.打开一个空的数据表,执行下列命令后,会报错的是( )。(分数:2.00)A.GO 1 B
36、.GO TOPC.LOCATE WHILE RECNO( )=1D.LOCATE ALL FOR RECNO( )=1解析:解析:GO 1 是将指针移动到记录号为 1 的记录上;GO TOP 在不使用索引时移动到表的第一条记录,使用索引时移动到索引项排在最前面的索引对应的记录。有索引时打开的表的第一条记录不一定是记录号为 1 的记录,如果表内一条记录都没有的话,执行 GO 1 命令会报错,但是 GOTOP 命令不会报错。LOCATE命令是按条件定位记录的位置,C 选项和 D 选项表示查找记录号是 1 的记录并指向它。故本题 A 选项符合题意。19.如果小客车和客车所有人两个表建立了“级联”参照
37、完整性的删除规定,下列选项正确的是( )。(分数:2.00)A.无论客车所有人表中是否有相关的记录,小客车表中的记录都不允许删除B.删除小客车表中的记录时,客车所有人表中的相应记录不变C.删除小客车表中的记录时,客车所有人表中的相应记录系统自动删除 D.客车所有人表中的记录不允许删除解析:解析:参照完整性与表之间的联系有关,它的含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,用来检验对表的数据操作是否正确。参照完整性规则包括更新规则、删除规则和插入规则,其中删除规则规定了当删除父表中的记录时,如何处理子表中的相关记录:如果选择“级联”,则自动删除子表中的所有
38、相关记录,故 C 选项叙述正确。20.数据库表的字段可以定义规则,规则是( )。(分数:2.00)A.字符表达式B.逻辑表达式 C.数值表达式D.日期表达式解析:解析:在表设计器中,可以简单地建立字段有效性规则。Visual FoxPro 提供的字段有效性规则有3 类:规则,信息,默认值。其中“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则视字段的类型而定,故 B 选项正确。21.在 SELELT 语句中,使用 MAX(列名)时,对“列名”的数据类型的描述,正确的是( )。(分数:2.00)A.“列名”的数据类型不受限制B.“列名”的数据类型必须是数值型C.“列名”的数据类型必
39、须是数值型或字符型D.“列名”的数据类型不能是通用型和备注型 解析:解析:SQL 不仅具有一般的检索能力,同时还支持对查询结果数据的统计,其中 MAX(字段名)函数的功能是求字段名所指定字段的最大值,且字段可以是数值型、字符型和日期型数据,故 D 选项叙述正确。22.设购书表的表结构为(顾客编号,图书号,数量,购书日期),若查询既购买了图书号为“t001”,又购买了 图书号为“t002”的顾客编号,则正确的 SQL 语句是( )。(分数:2.00)A.SELECT DISTINCT p1顾客编号 FROM 购书表 pl JOIN 购书表 p2; ON pi顾客号=p2顾客号 WIIERE p1
40、图书号=t001AND p2图书号=t002 B.SELECT DISTINCT p1顾客编号 FROM 购书表 pl JOIN 购书表 p2; ON p1图书号=p2图书号 WHERE p1图书号=t001AND p2图书号=t002C.SELECT DISTINCT 顾客编号 FROM 购书表 WHERE 图书号=t001AND 图书号=t002D.SELECT DISTINCT 顾客编号 FROM 购书表 WHERE 图书号 IN(t001,t002)解析:解析:SQL SELECT 语句中与连接运算有关语法格式如下: SELECT FROM数据库表1INNERLEFTRIGHTFULL
41、 JOIN数据库表 2 ON连接条件 WHERE 其中:INNER JOIN 等价于 JOIN,为普通连接; LEFT JOIN 为左连接; RIGHT JOIN 为右连接; FULL JOIN 为全连接; ON连接条件指定两个表进行连接的条件字段。 为了实现题目所需功能,需要对购书表进行自连接,对购书表使用别名 p1 和 p2,ON p1顾客号=p2顾客号为查询指定连接条件,WHERE p1图书号=t001AND p2图书号=t002,用于指定购买了图书号为t001又购买了图书号为t002的顾客信息,故 A 选项符合题意。23.设数据库有如下表: 学生(学号,姓名,出生日期,专业) 成绩(学
42、号,课程号,考试分数) 学生表中的主键是学号,成绩表中的主键是学号和课程号。已知学生表中共有 100 名学生,有 60 人参加了课程号为“C001”的考试,考试分数保存在成绩表中,其中有 10 人不及格。执行下列 SQL 语句后, 返回的结果是:( )。 SELECT COUNT(*)FROM 学生; WHERE EXISTS(SELECT*FROM 成绩 WHERE 课程号=C001AND 考试分数0),; 购书日期 D) 下列选项中,能够给“购书日期”字段添加一个默认值为当前系统日期的是( )。(分数:2.00)A.ALTER TABLE 购书表 ALTER 购书日期 DEFAULT DA
43、TE( )B.ALTER TABLE 购书表 ALTER 购书日期 SET DEFAULT DATE( ) C.ALTER TABLE 购书表 MODIFY 购书日期 SET DEFAULT DATE( )D.ALTER TABLE 购书表 MODIFY 购书日期 DEFAULT DATE( )解析:解析:修改表结构的命令是 ALTER TABLE,以下格式可以修改数据表的默认值: ALTER TABLE TableNamel ALTERCOLUMNFieldName2NULLNOT NULL SET DEFAULT eExpression2SET CHECK lExpression2ERRO
44、R cMessageText2/ DROP DEFAULTDROP CHECK 本题中给“购书日期”字段添加一个默认值为当前系统日期的表达式为:ALTER TABLE 购书表 ALTER 购书日期 SETDEFAULT DATE( ),故 B选项正确。25.设成绩(学号,课程号,考试分数),如果要删除成绩表中考试分数为空值的记录,则下面语句正确的是( )。(分数:2.00)A.DELETE*FROM 成绩 WHERE 考试分数=NULLB.DELETE*FROM 成绩 WHERE 考试分数 IS NULLC.DELETE FROM 成绩 WHERE 考试分数=NULLD.DELETE FROM
45、 成绩 WHERE 考试分数 IS NULL 解析:解析:SQL 从表中删除数据的命令格式如下: DELETE FROM TableNameWHERE Condition 这里FROM 指定从哪个表中删除数据,WHERE 指定被删除的记录所满足的条件。本题要删除成绩表中考试分数为空值的记录,语句应表示成:DELETE FROM 成绩 WHERE=考试分数 IS NULL,故 D 选项正确。26.设数据库有如下表: 图书(图书号,书名,单价) 购书(顾客编号,图书号,数量,购书日期) 已知购书表中已经保存了购买多本图书的信息。下列语句中,与“SELECT*FROM 图书 WHERE 图书号 IN
46、(SELECT 图书号 FROM 购书)”语句等价的是( )。(分数:2.00)A.SELECT*FROM 图书 WHERE 图书号=ANY(SELECT 图书号 FROM 购书) B.SELECT*FROM 图书 WHERE 图书号=ALL(SELECT 图书号 FROM 购书)C.SELECT*FROM 图书 WHERE EXISTS(SELECT 图书号 FROM 购书)D.SELECT*FROM 图书 WHERE 图书号=(SELECT 图书号 FROM 购书)解析:解析:在 SQL 中量词 ANY 表示在进行比较运算时只要子查询中有一行能使结果为真,则结果就是真,量词 ALL 表示表
47、示在进行比较运算时只有子查询中所有行能使结果为真。则结果才是真。本题中语句“SELECT*FROM 图书 WHERE 图书号 IN(SELECT 图书号 FROM 购书)”表示查找出被顾客购买的图书信息,此处的 IN 相当于集合运算符 E,与量词 ANY 相同,故 A 选项正确。27.SELECT 语句中的 TOP 短语必须要与下列哪个短语同时使用才有效( )。(分数:2.00)A.WHEREB.GROUP BYC.ORDER BY D.HAVING解析:解析:TOP 短语要与 ORDER BY 短语同时使用才有效,C 选项正确。28.设职工表的结构为(职工号,姓名,部门号,出生日期),若要查
48、询既不姓王,也不姓李的职工信息,则正确的 SQL 语句是( )。(分数:2.00)A.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“AND 姓名 NOT LIKE“李“ B.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“OR 姓名 NOT LIKE“李“C.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“AND“李“D.SELECT*FROM 职工 WHERE 姓名 NOT LIKE“王“OR“李“解析:解析:LIKE 是字符串匹配运算符,通配符“”表示 0 个或多个字符,“_”表示一个字符。本题中要查询既不姓王,也不姓李的职工信息,条件语句应该表示成:姓名 NOT LIKE“王”AND 姓名 NOT LIKE“李”,故 A