全国计算机等级考试二级笔试样卷Visual FoxPro数据库
程序设计
2009-03-03来源:教育部考试中心

  一、选择题(每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  (1)下列选项中不符合良好程序设计风格的是

  A) 源程序要文档化      B) 数据说明的次序要规范化

  C) 避免滥用goto语句   D) 模块设计要保证高耦合、高内聚

  (2)从工程管理角度,软件设计一般分为两步完成,它们是

  A) 概要设计与详细设计  B) 数据设计与接口设计

  C) 软件结构设计与数据设计  D) 过程设计与数据设计

  (3)下列选项中不属于软件生命周期开发阶段任务的是

  A)软件测试     B)概要设计 C)软件维护 D)详细设计

  (4)在数据库系统中,用户所见的数据模式为

  A) 概念模式    B)外模式  C)内模式   D)物理模式

  (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和

  A) 编码设计    B) 测试阶段    C)运行阶段 D)物理设计

  (6)设有如下三个关系表

  下列操作中正确的是

  A)T=R∩S      B)T=R∪S

  C)T=R×S      D)T=R/S

  (7)下列叙述中正确的是

  A)一个算法的空间复杂度大,则其时间复杂度也必定大

  B)一个算法的空间复杂度大,则其时间复杂度必定小

  C)一个算法的时间复杂度大,则其空间复杂度必定小

  D)上述三种说法都不对

  (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为

  A)63   B)64   C)6    D)7

  (9)数据库技术的根本目标是要解决数据的

  A)存储问题 B)共享问题 C)安全问题 D)保护问题

  (10)对下列二叉树

  进行中序遍历的结果是

  A)ACBDFEG  B)ACBDFGE  C)ABDCGEF  D)FCADBEG

  (11)下列程序段执行以后,内存变量A和B的值是

  CLEAR

  A=10

  B=20

  SET UDFPARMS TO REFERENCE

  DO SQ WITH (A),B   &&参数A是值传送,B是引用传送

  ?A,B

  PROCEDURE SQ

  PARAMETERS X1,Y1

      X1=X1*X1

      Y1=2*X1

  ENDPROC

  A)10   200 B)100  200 C)100  20  D)10   20

  (12)从内存中清除内存变量的命令是

  A) Release B)Delete   C)Erase    D)Destroy

  (13)操作对象只能是一个表的关系运算是

  A)联接和选择   B)联接和投影   C)选择和投影   D)自然连接和选择

  (14)在“项目管理器”下为项目建立一个新报表,应该使用的选项卡是

  A)数据 B)文档 C)类   D)代码

  (15)如果有定义LOCAL data,data的初值是:

  A)整数0    B)不定值   C)逻辑真   D)逻辑假

  (16)扩展名为pjx的文件是

  A)数据库表文件 B)表单文件 C)数据库文件   D)项目文件

  (17)下列程序段执行以后,内存变量y的值是

  x=34567

  y=0

  DO WHILE x>0

        y=x%10+y*10

        x=int(x/10) 

  ENDDO

  A)3456 B)34567    C)7654 D)76543

  (18)下列的程序段中与上题的程序段对y的计算结果相同的是

  A)x=34567                    B)x=34567

     y=0                            y=0

     flag=.T.                         flag=.T.

     DO WHILE flag                  DO WHILE flag

        y=x%10+y*10                   y=x%10+y*10

        x=int(x/10)                      x=int(x/10)           

        IF x>0                          IF x=0

           flag=.F.                          flag=.F.

         ENDIF                          ENDIF

       ENDDO                        ENDDO

  C)x=34567              D)x=34567

     y=0                              y=0

     flag=.T.                            flag=.T.

     DO WHILE !flag                      DO WHILE !flag

        y=x%10+y*10                   y=x%10+y*10

        x=int(x/10)                        x=int(x/10)           

        IF x>0                             IF x=0

           flag=.F.                             flag=.T.

        ENDIF                              ENDIF

       ENDDO                             ENDDO

  (19)在SQL SELECT语句的ORDER BY短语中如果指定了多个字段,则

  A)无法进行排序     B)只按第一个字段排序

  C)按从左至右优先依次排序   D)按字段排序优先级依次排序

  (20)如果运行一个表单,以下事件首先被触发的是

  A)Load     B)Error

  C)Init     D)Click

  (21)在Visual FoxPro中以下叙述正确的是

  A)关系也被称作表单                 B)数据库文件不存储用户数据

  C)表文件的扩展名是.DBC             D)多个表存储在一个物理文件中

  (22)设X=6<5,命令 ? VARTYPE(X)的输出是

  A)N        B)C

  C)L        D)出错

  (23)假设表单上有一选项组:⊙男〇女,如果选择第二个按钮“女”,则该选项组Value属性的值为

  A).F.      B)女

  C)2        D)女  或  2

  (24)假设表单MyForm隐藏着,让该表单在屏幕上显示的命令是

  A)MyForm.List      B)MyForm.Display

  C)MyForm.Show          D)MyForm.ShowForm

  (25)~(33)使用的数据表如下:

  当前盘当前目录下有数据库:大奖赛.dbc,其中有数据库表“歌手.dbf”、“评分.dbf”。

  “歌手”表:

歌手号 姓名
1001 王蓉
2001 许巍
3001 周杰伦
4001 林俊杰
 

  “评分”表:

歌手号 分数 评委号
1001 9.8 101
1001 9.6 102
1001 9.7 103
1001 9.8 104
   

  (25)为“歌手”表增加一个字段“最后得分”的SQL语句是

  A)ALTER TABLE 歌手 ADD 最后得分 F(6,2)

  B)ALTER DBF歌手ADD 最后得分 F 6,2

  C)CHANGE TABLE 歌手 ADD 最后得分 F(6,2)

  D)CHANGE TABLE 学院 INSERT 最后得分F 6,2

  (26)插入一条记录到“评分”表中,歌手号、分数和评委号分别是“1001”、9.9和“105”,正确的SQL语句是

  A) INSERT 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 评分(歌手号,分数,评委号)

  (27)假设每个歌手的“最后得分”的计算方法是:去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表TEMP中,表TEMP中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序排列,生成表TEMP的SQL语句是:

  A)SELECT 歌手号, (COUNT(分数)-MAX(分数)-MIN(分数))/(SUM(*)-2) 最后得分;

  FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC

  B)SELECT 歌手号, (COUNT(分数)-MAX(分数)-MIN(分数))/(SUM(*)-2) 最后得分;

  FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESC

  C)SELECT 歌手号, (SUM (分数)-MAX(分数)-MIN(分数))/(COUNT (*)-2) 最后得分;

  FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESC

  D)SELECT 歌手号, (SUM(分数)-MAX(分数)-MIN(分数))/(COUNT(*)-2) 最后得分;

  FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC

  (28)与 “SELECT * FROM 歌手 WHERE NOT( 最后得分>9.00 OR 最后得分<8.00)”等价的语句是

  A)SELECT * FROM 歌手 WHERE 最后得分 BETWEEN 9.00 AND 8.00

  B)SELECT * FROM 歌手 WHERE 最后得分>=8.00 AND 最后得分<=9.00

  C)SELECT * FROM 歌手 WHERE 最后得分>9.00 OR 最后得分<8.00

  D)SELECT * FROM 歌手 WHERE 最后得分<=8.00 AND 最后得分>=9.00

  (29)为“评分”表的“分数”字段添加有效性规则:“分数必须大于等于0并且小于等于10”,正确的SQL语句是

  A)CHANGE TABLE 评分ALTER 分数 SET CHECK 分数>=0 AND 分数<=10

  B)ALTER TABLE 评分 ALTER 分数 SET CHECK 分数>=0 AND 分数<=10

  C)ALTER TABLE 评分 ALTER 分数 CHECK 分数>=0 AND 分数<=10

  D)CHANGE TABLE 评分 ALTER 分数 SET CHECK 分数>=0 OR 分数<=10

  (30)根据“歌手”表建立视图myview,视图中含有包括了“歌手号”左边第一位是“1”的所有记录,正确的SQL语句是

  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 * FROM 歌手 WHERE LEFT(歌手号,1)="1"

  D)CREATE VIEW myview SELECT * FROM 歌手 WHERE LIKE("1",歌手号)

  (31)删除视图myview的命令是

  A)DELETE myview VIEW

  B)DELETE myview

  C)DROP myview VIEW

  D)DROP VIEW myview

  (32)假设temp.dbf数据表中有两个字段“歌手号”和“最后得分”。下面程序段的功能是:将temp.dbf中歌手的“最后得分”填入“歌手”表对应歌手的“最后得分”字段中(假设已增加了该字段)。在下划线处应该填写的SQL语句是

  USE 歌手

  DO WHILE .NOT. EOF()

  REPLACE  歌手.最后得分 WITH a[2]

  SKIP

  ENDDO

  A)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 TO ARRAY a

  B)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 INTO ARRAY a

  C)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 TO FILE a

  D)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 INTO FILE a

  (33)与“SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=ALL;

  (SELECT 最后得分 FROM  歌手 WHERE SUBSTR(歌手号,1,1)="2")”等价的SQL语

  句是

  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 歌手号 FROM  歌手 WHERE 最后得分>= ANY;

  (SELECT最后得分 FROM 歌手 WHERE SUBSTR(歌手号,1,1)="2")

  D)SELECT DISTINCT 歌手号 FROM  歌手 WHERE 最后得分>= SOME ;

  (SELECT最后得分 FROM 歌手 WHERE SUBSTR(歌手号,1,1)="2")

  (34)以下关于“视图”的描述正确的是

  A)视图保存在项目文件中 B)视图保存在数据库中

  C)视图保存在表文件中   D)视图保存在视图文件中

  (35)关闭表单的程序代码是ThisForm.Release,Release是

  A)表单对象的标题       B)表单对象的属性

  C)表单对象的事件       D)表单对象的方法

  二、填空题(每空2分,共30分)

  请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。

  (1)下列软件系统结构图

  的宽度为  【1】  。

  (2)  【2】  的任务是诊断和改正程序中的错误。

  (3)一个关系表的行称为   【3】   。

  (4)按“先进后出”原则组织数据的数据结构是  【4】    。

  (5)数据结构分为线性结构和非线性结构,带链的队列属于  【5】   。

  (6)可以在项目管理器的 【6】 选项卡下建立命令文件(程序)。

  (7)在Visual FoxPro中所谓自由表就是那些不属于任何 【7】 的表。

  (8)不带条件的DELETE命令(非SQL命令)将删除指定表的 【8】 记录。

  (9)在SQL SELECT语句中为了将查询结果存储到永久表应该使用 【9】 短语。

  (10)在SQL语句中空值用 【10】 表示。

  (11)在Visual FoxPro中视图可以分为本地视图和 【11】 视图。

  (12)在Visual FoxPro中为了通过视图修改基本表中的数据,需要在视图设计器的 【12】 选项卡下设置有关属性。

  (13)在表单设计器中可以通过 【13】 工具栏中的工具快速对齐表单中的控件。

  (14)为了在报表中插入一个文字说明,应该插入一个 【14】 控件。

  (15)如下命令将“产品”表的“名称”字段名修改为“产品名称”

  ALTER TABLE 产品 RENAME  【15】  名称 TO 产品名称