1、二级 VISUAL+FOXPRO笔试-302 及答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:27,分数:70.00)1.在结构化程序设计中,模块划分的原则是( )。(分数:2.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度2.下面选项中小属于面向对象程序设计特征的是( )。(分数:2.00)A.继承性B.多态性C.类比性D.封装性3.如果指定参照完整性的删除规则为“级联”,则当删除父表中的记录时,( )。(分数:2.00)A.系统自动备份父表中被删除记录到一个新表中B.若子表中有相关记
2、录,则禁止删除父表中记录C.会自动删除子表中所有相关记录D.不作参照完整性检查,删除父表记录与子表无关4.在关系数据库中,用来表示实体之间联系的是( )。(分数:2.00)A.树结构B.网结构C.线性表D.二维表5.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3种说法都不对6.对于创建新类,Visual FoxPro 提供的工具有( )。(分数:2.00)A.类设计器和报表设计器B.类设计器和表单设计器C.类设计器和查询设计
3、器D.类设计器7.下列选项中不属于结构化程序设计方法的是( )。(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用8.设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表( )。(分数:2.00)A.在父表联接字段上建立普通索引,在于表联接字段上建立主索引B.在父表联接字段上建立主索引,在子表联接字段上建立普通索引C.在父表联接字段上不需要建立任何索引,在子表联接字段上建立普通索引D.在父表和子表的连接字段上都要建立主索引9.一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为( )。(分
4、数:2.00)A.221B.219C.231D.22910.以下关于“查询”的描述正确的是( )。(分数:2.00)A.查询保存在项目文件中B.查询保存在数据库文件中C.查询保存在表文件中D.查询保存在查询文件中11.在 Visual FoxPro中,下面关于索引的正确描述是( )。(分数:2.00)A.当数据库表建立索引以后,表中的记录的物理顺序将被改变B.索引的数据将与表的数据存储在一个物理文件中C.建立索引是创建一个索引文件,该文件包含指向表记录的指针D.使用索引可以加快对表的更新操作12.在 Visual FoxPro中,下列关于表的叙述正确的是( )。(分数:2.00)A.在数据库表
5、和自由表中,都能给字段定义有效性规则和默认值B.在自由表中,能给表中的字段定义有效性规则和默认值C.在数据库表中,能给表中的字段定义有效性规则和默认值D.在数据库表和自由表中,都不能给字段定义有效性规则和默认值13.单击项目上的“连编”,则可以生成( )文件。(分数:2.00)A.BATB.APPC.DATD.DAC14.数据库技术的根本目标是要解决数据的( )。(分数:2.00)A.存储问题B.共享问题C.安全问题D.保护问题15.设当前表有 10条记录,若要在第 5条记录的前面插入一条记录,在执行 GO 5后再执行如下命令( )。(分数:2.00)A.INSERTB.INSERT BLAN
6、KC.INSERT BEFORED.APPEND BEFORE16.下列叙述中错误的是( )。(分数:2.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持17.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为( )。(分数:2.00)A.n+1B.n-1C.2nD.n/218.表格控件的数据源可以是( )。(分数:2.00)A.视图B.表C.SQL SELECT语句D.以上 3种都可以(25)(33)小题使用的数据表如下:当前盘当前目录下有
7、数据库:大奖赛.dbc,其中有数据库表“歌手 dbf”、“评分.dbf”。“歌手”表:“评分”表:(分数:18.00)(1).为“歌手”表增加一个字段“最后得分”的 SQL语句是( )。(分数:2.00)A.ALTER TABLE歌手 ADD最后得分 F(6,2)B.ALTER DBF歌手 ADD最后得分 F 6,2C.CHANGE TABLE歌手 ADD最后得分 F(6,2)D.CHANGE TABLE学院 INSERT最后得分 F 6,2(2).插入一条记录到“评分”表中,歌手号、分数和评委号分别是“1001”、9.9 和“105”,正确的 SQL语句是( )。(分数:2.00)A.INS
8、ERT VALUES(“1001“,9.9,“105“)INTO评分(歌手号,分数,评委号)B.INSERT TO评分(歌手号,分数,评委号)VALUES(“1001“,9.9,“105“)C.INSERT INTO评分(歌手号,分数,评委号)VALUES(“1001“,9.9,“105“)D.INSERT VALUES(“1001“,9.9,“105“)TO评分(歌手号,分数,评委号)(3).假设每个歌手的“最后得分”的计算方法是;去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表 TEMP中,表 TEMP中有两个字段:“歌手号”和“最后得分”,
9、并且按最后得分降序排列,生成表 TEMP的 SQL语句是( )。(分数:2.00)A.SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY歌手号 ORDER BY最后得分 DESCB.SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY评委号 ORDER BY最后得分 DESCC.SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数)/(COUNT(*)-2)最后
10、得分;FROM评分 INTO DBF TEMP GROUP BY评委号 ORDER BY最后得分 DESCD.SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数)/(COUNT(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY歌手号 ORDER BY最后得分 DESC(4).与“SELECT* FROM 歌于 WHERE NOT(最后得分9.00 OR 最后得分8.00)”等价的语句是( )。(分数:2.00)A.SELECT*FROM歌手 WHERE最后得分 BETWEEN 9.00 AND 8.00B.SELECT*FROM歌手 WHERE最后
11、得分=8.00 AND 最后得分=9.00C.SELECT*FROM歌手 WHERE最后得分9.00 OR 最后得分8.00D.SELECT*FROM歌手 WHERE最后得分=8.00 AND 最后得分=9.00(5).为“评分”表的“分数”字段添加有效性规则:“分数必须大于等于。并且小于等于 10”,正确的SQL语句是( )。(分数:2.00)A.CHANGE TABLE评分 ALTER分数 SET CHECK分数=0 AND 分数=10B.ALTER TABLE评分 ALTER分数 SET CHECK分数=0 AND 分数=10C.ALTER TABLE评分 ALTER分数 CHECK分数
12、=0 AND 分数=10D.CHANGE TABLE评分 ALTER分数 SET CHECK分数=0 OR 分数=10(6).根据“歌手”表建立视图 myview,视图中含有包括了“歌于号”左边第一位是“1”的所有记录,正确的 SQL语句是( )。(分数:2.00)A.CREATE VIEW myview AS SELECT* FROM歌手 WHERE LEFT(歌手号,1)=“1“B.CREATE VIEW myview AS SELECT* FROM 歌手 WHERE LIKE(“1”,歌手号)C.CREATE VIEW myview SELECT *PROM 歌手 WHERE LEFT(
13、歌手号,1)=“1”D.CREATE VIEW myview SELECT *FROM 歌手 WHERE LIKE(“1”,歌手号)(7).删除视图 myview的命令是( )。(分数:2.00)A.DELETE myview VIEWB.DELETE myviewC.DROP myview VIEWD.DROP VIEW myview(8).假设 temp. dbf数据表中有两个字段“歌手号”和“最后得分”。下面程序段的功能是:将 temp. dbf中歌手的“最后得分”填入“歌手”表对应歌手的“最后得分”字段中(假设已增加了该字段)。在下划线处应该填写的 SQL语句是( )。USE 歌手DO
14、 WHILE. NOT. EOF ()_REPLACE 歌手 .最后得分 WITH a2SKIPENDDO(分数:2.00)A.SELECT *FROM temp WHERE temp .歌手号=歌于 .歌手号 TO ARRAY aB.SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 INTO ARRAY aC.SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 TO FILE sD.SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 INTO FILE a(9).与“SELECT DISTINC
15、T 歌手号 FROM 歌手 WHERE 最后得分=ALL;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR (歌手号,1,1)=“2”)”等价的 SQL语句是( )。(分数:2.00)A.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=;(SELECT MAX(最后得分)FROM 歌手 WHERE SUBSTR(歌手号,1,1)=“2”)B.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=;(SELECT MIN(最后得分)FROM 歌手 WHERE SUBSTR(歌手号,1,1)=“2”)C.SELECT DIST
16、INCT 歌手号 FROM 歌手 WHERE 最后得分=AVY;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR(歌于号,1,1)=“2”)D.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=SOME;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR (歌手号,1,1)=“2”)19.设有如下 3个关系表: (分数:2.00)A.T=RRSB.T=RSC.TRSD.T=R/S20.有关连编应用程序,下面的描述正确的是( )。(分数:2.00)A.项目连编以后应将主文件视作只读文件B.个项目中可以有多个主文件C.数据库文件可以被指
17、定为主文件D.在项目管理器中,文件名左侧带有符号“”的文件在项目连编后是只读文件21.数据库表的字段可以定义规则,规则是( )。(分数:2.00)A.逻辑表达式B.字符表达式C.数值表达式D.前 3种说法都不对22.当内存变量与字段名变量重名时,系统优先处理( )。(分数:2.00)A.内存变量B.字段名变量C.全局变量D.局部变量23.运行程序:AA=0FORI=2TO 100 STEP 2AA=AA+IENDFOR? AARETURN该程序得到的结果为( )。(分数:2.00)A.1100 中奇数的和B.1100 中偶数的和C.1100 中所有数的和D.没有意义24.设 X=10,语句?V
18、ARTYPE(“X“)的输出结果是( )。(分数:2.00)A.NB.CC.10D.X25.在 ESQL语句中,与表达式“供应商名 LIKE“%北京%“”功能相同的表达式是( )。(分数:2.00)A.LEFT(供应商名,4)=“北京”B.“北京”供应商名C.供应商名 In“%北京%”D.AT(供应商名,“北京”)26.以下关于“视图”的描述正确的是( )。(分数:2.00)A.视图保存在项目文件中B.视图保存在数据库中C.视图保存在表文件中D.视图保存在视图文件中二、填空题(总题数:7,分数:20.00)27.设一棵完全二叉树共有 700个结点,则在该二叉树中有 【1】 个叶子结点。(分数:
19、2.00)填空项 1:_28.在面向对象方法中, 【2】 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_29.诊断和改正程序中错误的工作通常称为 【3】 。(分数:2.00)填空项 1:_30.对下列二叉树进行中序遍历的结果为 【4】 。(分数:2.00)填空项 1:_31.在结构化分析使用的数据流图(DFD) 中,利用 【5】 对其中的图形元素进行确切解释。(分数:2.00)填空项 1:_32.想要定义标签控件的 Caption显示效果的大小,要定义标签属性的 【6】 。(分数:2.00)填空项 1:_在第(7)(10)小题中使用如下三个表:零件. DBF:零件号 C
20、(2),零件名称 C(10),单价 N(10),规格 C(8)使用零件 .DBF:项目号 C(2),零件号 C(2),数量 1项目 .DBF:项目号 C(2),项目名称 C(20),项目负责人 C(10),电话 C(20)(分数:8.00)(1).为“数量”字段增加有效性规则:数量0,应该使用的 SQL语句是( )。 【7】 TABLE 使用零件 【8】 数量 SET 【9】 数量0(分数:2.00)填空项 1:_(2).查询与项目“s1”(项目号)所使用的任意一个零件相同的项目号、项目名称、零件号和零件名称,使用的 SQL语句是:SELECT 项目. 项目号,项目名称,使用零件. 零件号,零
21、件名称;FROM 项目,使用零件,零件;WHERE 项目,项目号=使用零件. 项目号 【10】 ;使用零件. 零件号=零件. 零件号 AND 使用零件. 零件号 【11】 (SELECT 零件号 FROM 使用零件 WHERE 使用零件. 项目号=s1)(分数:2.00)填空项 1:_(3).建立一个由零件名称、数量、项目号、项目名称字段构成的视图,视图中只包含项目号为“s2”的数据,应该使用的 SQL语句是,CREATE VIEW item view 【12】 SELECT 零件. 零件名称,使用零件,数量,使用零件. 项目号,项目.项目名称FROM 零件 INNER JOIN 使用零件IN
22、NER JOIN 【13】 ON 使用零件.项目号=项目.项目号ON 零件. 零件号=使用零件.零件号WHERE 项目. 项目号=s2(分数:2.00)填空项 1:_(4).从上一题建立的视图中查询使用数量最多的两个零件的信息,应该使用的 SQL语句是( )。SELECT* 【14】 2 FROM item_ view, 【15】 数量 DESC(分数:2.00)填空项 1:_二级 VISUAL+FOXPRO笔试-302 答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:27,分数:70.00)1.在结构化程序设计中,模块划分的原则是( )。(分数:2.00)A.各模块应包
23、括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度 解析:解析 模块划分的原则有:模块的功能应该可预测,如果包含的功能太多,则不能体现模块化设计的特点,选项 A错误。模块规模应适中,一个模块的规模不应过大,选项 B错误。改进软件结构,提高模块独立性。通过模块的分解或合并,力求降低耦合提高内聚,所以选项 C错误,选项 D正确。2.下面选项中小属于面向对象程序设计特征的是( )。(分数:2.00)A.继承性B.多态性C.类比性 D.封装性解析:解析 面向对象方法具有封装性、继承性、多态性几大特点。3.如果指定参照完整性的删除规则为“级联”
24、,则当删除父表中的记录时,( )。(分数:2.00)A.系统自动备份父表中被删除记录到一个新表中B.若子表中有相关记录,则禁止删除父表中记录C.会自动删除子表中所有相关记录 D.不作参照完整性检查,删除父表记录与子表无关解析:解析 在 Visual FoxPro中对参照完整性的删除规则所作的规定是:如果指定参照完整性的删除规则为“级联”,则当删除父表中的记录时,会自动删除子表中所有相关记录。4.在关系数据库中,用来表示实体之间联系的是( )。(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用二维表
25、格数据来表示实体本身及其相互之间的联系。5.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述 3种说法都不对解析:解析 正面向对象的程序设计中,对象是面向对象的软件的基本模块。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项 A与选项 B错误,选项 C正确。6.对于创建新类,V
26、isual FoxPro 提供的工具有( )。(分数:2.00)A.类设计器和报表设计器B.类设计器和表单设计器C.类设计器和查询设计器D.类设计器 解析:解析 在 Visual FoxPro中创建新类,只能通过类设计器来创建。7.下列选项中不属于结构化程序设计方法的是( )。(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则有 4点:自顶向下(选项 A) 、逐步求精(选项 B) 、模块化(选项 C) ,限制使用 GOTO语句。没有可复用原则。8.设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规
27、则”,为此要求这两个表( )。(分数:2.00)A.在父表联接字段上建立普通索引,在于表联接字段上建立主索引B.在父表联接字段上建立主索引,在子表联接字段上建立普通索引 C.在父表联接字段上不需要建立任何索引,在子表联接字段上建立普通索引D.在父表和子表的连接字段上都要建立主索引解析:解析 在 Visual FoxPro中为了建立参照完整性,必须首先建立表之间的联系。在数据库设计器中设计表之间的联系时,要在父表建立主索引,在子表建立普通索引,然后通过父表的主索引和子表的普通索引建立两个表之间的关系。9.一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为( )。(
28、分数:2.00)A.221B.219 C.231D.229解析:解析 在任意二叉树中,度为 0的结点(也就是叶子结点)总比度为 2的结点多一个。由于本题中的二叉树有 70个叶了结点,所以有 69个度为 2的结点。该二叉树中总结点数为:度为 2的结点数+度为1的结点数+度为 0的结点数=69+80+70=219。10.以下关于“查询”的描述正确的是( )。(分数:2.00)A.查询保存在项目文件中B.查询保存在数据库文件中C.查询保存在表文件中D.查询保存在查询文件中 解析:解析 查询就是预先定义好的一个 SQL SELECT语句,在不同的需要场合可以直接或反复使用,查询以扩展名为.QBR 的文
29、件单独保存在磁盘上,在 Visual FoxPro中认为此类文件为查询文件。11.在 Visual FoxPro中,下面关于索引的正确描述是( )。(分数:2.00)A.当数据库表建立索引以后,表中的记录的物理顺序将被改变B.索引的数据将与表的数据存储在一个物理文件中C.建立索引是创建一个索引文件,该文件包含指向表记录的指针 D.使用索引可以加快对表的更新操作解析:解析 索引是以独立的索引文件的形式存在,并根据指定的索引关键字表达式建立。索引文件可以看成索引关键字的值与记录号之间的对照表,也就是说,在该文件中,包含有指向表记录的指针。12.在 Visual FoxPro中,下列关于表的叙述正确
30、的是( )。(分数:2.00)A.在数据库表和自由表中,都能给字段定义有效性规则和默认值B.在自由表中,能给表中的字段定义有效性规则和默认值C.在数据库表中,能给表中的字段定义有效性规则和默认值 D.在数据库表和自由表中,都不能给字段定义有效性规则和默认值解析:解析 在 Visual FoxPro中,只有数据库表中的字段才能定义字段的有效性规则,自由表不可以。13.单击项目上的“连编”,则可以生成( )文件。(分数:2.00)A.BATB.APP C.DATD.DAC解析:解析 要生成应用程序,可以单击项目上的“连编”,并选择“连编应用程序”按钮,则可以生成应用程序 APP文件。14.数据库技
31、术的根本目标是要解决数据的( )。(分数:2.00)A.存储问题B.共享问题 C.安全问题D.保护问题解析:解析 数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。数据库技术的根本目标就是解决数据的共享问题。15.设当前表有 10条记录,若要在第 5条记录的前面插入一条记录,在执行 GO 5后再执行如下命令( )。(分数:2.00)A.INSERTB.INSERT BLANKC.INSERT BEFORE D.APPEND BEFORE解析:解析 在 Visual FoxPro中,只有 INSERT命令可在表的中间插入记录。INSERT 命令中的 BEF
32、ORE 选项如果被省略,将在当前指针的后面插入一条记录,反之在当前记录的前面插入一条空记录。16.下列叙述中错误的是( )。(分数:2.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致 B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持解析:解析 数据的逻辑结构是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。选项 A的说法是错误的。17.某二叉树中有 n个度为 2的结点,则该
33、二叉树中的叶子结点数为( )。(分数:2.00)A.n+1 B.n-1C.2nD.n/2解析:解析 对任意一棵二叉树,若终端结点(即叶子结点)数为 n0,而其度数为 2的结点数为 n2,则n0=n2+1。由此可知,若二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 n+1。18.表格控件的数据源可以是( )。(分数:2.00)A.视图B.表C.SQL SELECT语句D.以上 3种都可以 解析:解析 表格控件的数据源可以为表、别名、提示、查洵、SQL 语句等,而视图可以说是在数据库表的基础上创建的一种虚拟表,也可以认为是一种特殊的 SQL语句,所以视图、表及 SQL SELECT语句
34、均可以作为表格控件的数据源。(25)(33)小题使用的数据表如下:当前盘当前目录下有数据库:大奖赛.dbc,其中有数据库表“歌手 dbf”、“评分.dbf”。“歌手”表:“评分”表:(分数:18.00)(1).为“歌手”表增加一个字段“最后得分”的 SQL语句是( )。(分数:2.00)A.ALTER TABLE歌手 ADD最后得分 F(6,2) B.ALTER DBF歌手 ADD最后得分 F 6,2C.CHANGE TABLE歌手 ADD最后得分 F(6,2)D.CHANGE TABLE学院 INSERT最后得分 F 6,2解析:解析 修改字段属性的命令的语法格式是;ALTER TABLE
35、TableName1 ALTER FieldName2 FieldTypenFieldWidth,从 4个候选项中可以看出,只有选项 A是正确的。选项 C和 D关键字 CHANGE有误,而选项 B用来指定表的短语 DBF错误。(2).插入一条记录到“评分”表中,歌手号、分数和评委号分别是“1001”、9.9 和“105”,正确的 SQL语句是( )。(分数:2.00)A.INSERT VALUES(“1001“,9.9,“105“)INTO评分(歌手号,分数,评委号)B.INSERT TO评分(歌手号,分数,评委号)VALUES(“1001“,9.9,“105“)C.INSERT INTO评分
36、(歌手号,分数,评委号)VALUES(“1001“,9.9,“105“) D.INSERT VALUES(“1001“,9.9,“105“)TO评分(歌手号,分数,评委号)解析:解析 使用 SQL语言向表中插入数据的命令是 INSERT INTO,命令格式为:INSERT INTO表名(字段名 1,字段名 2,.)VALUES(表达式 1,表达式 2,.)或 INSEERT INTO表名FROM ARRAY数组名FROM MEMVAR,作用是在表尾插入一条记录。而在本题的 4个选项中:选项 A的顺序不正确,选项 B则使用了错误的关键字 TO,选项 D除了顺序不正确之外,还使用了错误的关键字 T
37、O。(3).假设每个歌手的“最后得分”的计算方法是;去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表 TEMP中,表 TEMP中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序排列,生成表 TEMP的 SQL语句是( )。(分数:2.00)A.SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY歌手号 ORDER BY最后得分 DESCB.SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2
38、)最后得分;FROM评分 INTO DBF TEMP GROUP BY评委号 ORDER BY最后得分 DESCC.SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数)/(COUNT(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY评委号 ORDER BY最后得分 DESCD.SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数)/(COUNT(*)-2)最后得分;FROM评分 INTO DBF TEMP GROUP BY歌手号 ORDER BY最后得分 DESC 解析:解析 根据题意,在此 SQL语句中,首先要根据“歌手号”分组计算
39、出每个歌手的总成绩,然后去掉该歌手的最高分及最低分,并且根据评委人数(减去两个去掉分数的评委数量)来计算平均分,将结果保存在表 TEMP中,并按照“最后得分”的降序排列。在此题选项中,选项 A及选项 B在计算歌手总分数时使用了错误的函数 COUNT,并在计算评委人数时使用了错误的函数 SUM,所以不正确。而选项 C虽然使用了正确的函数,但用来指定分组的 GROUP BY 子句后面错误地使用了“评委号”字段(应当使用“歌手号”字段),所以也不正确。选项 D正确表达了题意,所以为正确答案。(4).与“SELECT* FROM 歌于 WHERE NOT(最后得分9.00 OR 最后得分8.00)”等
40、价的语句是( )。(分数:2.00)A.SELECT*FROM歌手 WHERE最后得分 BETWEEN 9.00 AND 8.00B.SELECT*FROM歌手 WHERE最后得分=8.00 AND 最后得分=9.00 C.SELECT*FROM歌手 WHERE最后得分9.00 OR 最后得分8.00D.SELECT*FROM歌手 WHERE最后得分=8.00 AND 最后得分=9.00解析:解析 题干中 SELECT语句的意义为:选择出“歌手”表中所有“最后得分”字段中值不大于9.00(包括 9.00)及不小于 8.00(包括 8.00)记录的所有字段,因此选项 C中 SQL语句的意义为选出
41、“歌手”表中所有“最后得分”字段值大于 9.00或小于 8.00的记录,与题意不符。选项 D中 SQL语句的意义为选出“歌手”表中所有“最后得分”字段值小于等于 9.00或大于等于 8.00的记录,与题意不符。选项 A有中使用了 BETWEEN. AND. 表达式,但当 BETWEEN作取值范围限定时,包括限定条件的两个端点值,并且使用 BETWEEN. AND. 的两个限定值应当遵循从小到大的原则,而此题正好相反,所以不可能查询出结果,故也为错误答案。(5).为“评分”表的“分数”字段添加有效性规则:“分数必须大于等于。并且小于等于 10”,正确的SQL语句是( )。(分数:2.00)A.C
42、HANGE TABLE评分 ALTER分数 SET CHECK分数=0 AND 分数=10B.ALTER TABLE评分 ALTER分数 SET CHECK分数=0 AND 分数=10 C.ALTER TABLE评分 ALTER分数 CHECK分数=0 AND 分数=10D.CHANGE TABLE评分 ALTER分数 SET CHECK分数=0 OR 分数=10解析:解析 本题考查使用 SQL对表文件的字段进行有效性设置。可以使用命令 ALTER TABLE来实现对表的字段进行有效性设置,选项 A和选项 D错误在于使用了错误的关键字 CHANGE,选项 C缺少子句关键字 SET。(6).根据
43、“歌手”表建立视图 myview,视图中含有包括了“歌于号”左边第一位是“1”的所有记录,正确的 SQL语句是( )。(分数:2.00)A.CREATE VIEW myview AS SELECT* FROM歌手 WHERE LEFT(歌手号,1)=“1“ B.CREATE VIEW myview AS SELECT* FROM 歌手 WHERE LIKE(“1”,歌手号)C.CREATE VIEW myview SELECT *PROM 歌手 WHERE LEFT(歌手号,1)=“1”D.CREATE VIEW myview SELECT *FROM 歌手 WHERE LIKE(“1”,歌手
44、号)解析:解析 SQL 中创建视图的命令格式是:CREATE VIEW view_ hame ) cloumn_ name, column name.)AS select_ statment,在本题中,因为其缺少 AS关键字,故选项 C及选项 D错误,选项 B错误,因为使用了错误的函数 LIKE。(7).删除视图 myview的命令是( )。(分数:2.00)A.DELETE myview VIEWB.DELETE myviewC.DROP myview VIEWD.DROP VIEW myview 解析:解析 删除视图的命令格式为 DROP VIEW视图名,用来删除指定名称视图。(8).假设
45、 temp. dbf数据表中有两个字段“歌手号”和“最后得分”。下面程序段的功能是:将 temp. dbf中歌手的“最后得分”填入“歌手”表对应歌手的“最后得分”字段中(假设已增加了该字段)。在下划线处应该填写的 SQL语句是( )。USE 歌手DO WHILE. NOT. EOF ()_REPLACE 歌手 .最后得分 WITH a2SKIPENDDO(分数:2.00)A.SELECT *FROM temp WHERE temp .歌手号=歌于 .歌手号 TO ARRAY aB.SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 INTO ARRAY a C.
46、SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 TO FILE sD.SELECT *FROM temp WHERE temp .歌手号=歌手 .歌手号 INTO FILE a解析:解析 根据题干可以看出,该程序首先将“歌手”表中当前记录的歌手号在 temp表中的记录值存放在数组 a中,然后再将其“最后得分”字段的值替换为数组中的值,所以该处应当填写如何将 temp 表中相应记录值输出的数组 a中的 SQL语句。在 SQL语句中,指定在数组中保存查询结果的子句为 INTO ARRAY数组名,所以选择选项 B。(9).与“SELECT DISTINCT 歌手号
47、 FROM 歌手 WHERE 最后得分=ALL;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR (歌手号,1,1)=“2”)”等价的 SQL语句是( )。(分数:2.00)A.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=;(SELECT MAX(最后得分)FROM 歌手 WHERE SUBSTR(歌手号,1,1)=“2”) B.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=;(SELECT MIN(最后得分)FROM 歌手 WHERE SUBSTR(歌手号,1,1)=“2”)C.SELECT DISTINCT
48、 歌手号 FROM 歌手 WHERE 最后得分=AVY;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR(歌于号,1,1)=“2”)D.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分=SOME;(SELECT 最后得分 FROM 歌手 WHERE SUBSTR (歌手号,1,1)=“2”)解析:解析 题干中的 SQL语句的功能是:查询“最后得分”比“歌手号”字段中第一个字符为“2”(SUBSTR(歌于号,1,1)=“2”)的歌手的“最后得分”高的歌手号。在本题中 4个选项中只有选项 A中的查询条件与此等价,用(SELECT MAX(最后得分)FROM. WHERE.)实现选择出最高的最后得分。选项 B的查询条件表示最后得分大于“歌手号”字段中第一个字符为“2”的歌手的最低的“最后得分”。选项 C和 D中的 ANY和 SOME是同义词,表示查询出只要“歌手号”字段中第一个字符为“2”的歌手任何一个最后得分高的记录即可。19.设有如下 3个关系表: (分数:2.00)A.T=RRSB.T=RSC.TRS D.T=R/S解析:解析 R 表中只有一个域名 A,有两个记录,分别是 m和 n: s