2006年9 月
全国计算机等级考试二级笔试试卷 Visual FoxPro 数据库程序设计
(考试时间 90 分钟,满分 100 分)
一、选择题(每小题 2 分,共 70 分) 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列选项不符合良好程序设计风格的是________。 A)源程序要文档化 B)数据说明的次序要规范化 C)避免滥用goto 语句 D)模块设计要保证高耦合、高内聚
【答案】D
【解析】本题考点是模块的独立性。在设计程序时,要保证模块的独立性。衡量模块独立性使用内聚性和耦合性两个度量标准。模块的内聚性是一个模块内部各个元素之间彼此结合的紧密程度的度量。耦合性是模块间互相连接的紧密程度的度量。为了使模块尽可能的独立,要求尽量做到高内聚和低耦合。
(2)从工程管理角度,软件设计一般分为两步完成,它们是________。 A)概要设计与详细设计 B)数据设计与接口设计 C)软件结构设计与数据设计 C)过程设计与数据设计
【答案】A
【解析】本题考点是软件设计。软件设计是一个把软件需求转换为软件表示的过程。从工程管理角度,软件设计一般分为概要设计和详细设计。概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。 (3)下列选项中不属于软件生命周期开发阶段任务的是________。 A)软件测试 B)概要设计 C)软件维护 D)详细设计
【答案】C
【解析】本题考点是软件生命周期。软件生命周期是将软件产品从提出、实现、使用维护到停止使用退役的过程。软件生命周期包括软件定义、软件开发和软件运行维护3个阶段。其中,软件定义阶段包括可行性研究、需求分析;软件开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役。 (4)在数据库系统中,用户所见的数据模式为________。 A)概念模式 B)外模式 C)内模式 D)物理模式
【答案】B
【解析】本题考点是数据模式。数据模式是数据库系统中数据结构的一种表示形式,它包括外模式、概念模式和物理模式(内模式)。其中,外模式是用户的数据视图,即用户所见到的数据模式。
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和________。 A)编码设计 B)测试阶段 C)运行阶段 D)物理设计
【答案】D
【解析】本题考点是数据库设计。数据库设计目前一般采用生命周期法,即将数据库设计分解成四个目标独立的若干阶段:需求分析、概念设计、逻辑设计和物理设计。 (6)设有如下三个关系表
R S T
A B C A B C
m 1 3 m 1 3
n 1 3 n
下列操作中正确的是________。 A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S
【答案】C
【解析】本题考点是传统关系运算。传统的关系运算包括并(∪)、交(∩)、差(-)和笛卡尔积(×)。本题中,由于关系T中的元组包含R中的A列,S中的B、C列,并且T中的元组的第1列是关系R中的一个元组,3和4列是关系S的元组,因此T=R×S。 (7)下列叙述中正确的是________。
A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间可复杂度必定小
D)上述三种说法都不对 【答案】D
【解析】本题考点是算法复杂度。算法的复杂度包括时间复杂度和空间复杂度。算法时间复杂度是算法的计算工作量或算法的基本运算次数。算法空间复杂度是算法所需要的内存空间。算法时间度和算法空间复杂度没有必然的联系。 (8)在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为________。 A)63 B)64 C)6 D)7
【答案】B
【解析】本题考点是线性表的顺序查找。若线性表长度为n,采用顺序查找,最好的情况是比较1次,最坏的情况是比较n次,平均比较(1+2+?n)/n=(n+1)/2次。 (9)数据库技术的根本目标是要解决数据的________。 A)存储问题 B)共享问题 C)安全问题 D)保护问题
【答案】B
【解析】本题考点是数据库技术。数据库技术的根本目标是要解决数据的共享问题。 (10)对下列二叉树
进行中序遍历的结果是________。
F C E
A D G
B
A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG
【答案】A
【解析】本题考点是二叉树的遍历。二叉树的前序遍历的方法是:若二叉树为空,则结束返回,否则:首先访问根结点,然后前序遍历左子树,最后前序遍历右子树。二叉树的中序遍历的方法是:若二叉树为空,则结束返回,否则:首先中序遍历左子树,然后访问根结点,最后中序遍历右子树。二叉树的后序遍历的方法是:若二叉树为空,则结束返回,否则:首先后序遍历左子树,然后后序遍历右子树,最后访问根结点。
本题中,采用中序遍历的结果是ACBDFEG;采用前序遍历的结果是FCADBEG;采用后序遍历的结果是ABDCGEF。
(11)下列程序段执行以后,内存变量 A 和 B 的值是________。 CLEAR A=10 B=20
SET UDFPARMS TO REFERENCE
DO SQ WITH(A),B &&A参数是值传送,B 是引用传送 ?A,B
PROCEDURE SQ
PARAMETERSX1,Y1 X1=X1*X1 Y1=2*X1 ENDPROC
A)10 200 B)100 200
C)100 20 D)10 20 【答案】A
【解析】本题考点是过程参数传递。在VFP中,可以通过命令SET UDFPARMS命令设置参数传递的方式。该命令的格式是:SET UDFPARMS TO VALUE|REFRENCE,其中,TO VALUE是按值传递,TO REFRENCE是按地址传递。
本题中,主程序中设置了SET UDFPARMS TO REFERENCE,因此参数传递方式是传地址。主程序中调用子过程SQ的语句是DO SQ WITH(A),B,其中, A是采用传值的方式, B是采用传地址的方式。在调用SQ过程之前,主程序中A的值是10,B的值是20;调用SQ
过程时,A传递值给参数X1,即X1的值为10,B传递地址给参数Y1;执行SQ过程时,X1的值修改为100,Y1的值修改为200;调用SWAP过程以后,主程序中,A的值仍然是10,B的值修改为200。
(12)从内存中清除内存变量的命令是________。 A)Release B)Delete C)Erase D)Destroy
【答案】A
【解析】本题考点是内存变量。从内存中清除内存变量的命令是Release或Clear Memory。
(13)操作对象只能是一个表的关系运算是________。
A)联接和选择 B)联接和投影 C)选择和投影 D)自然连接和选择 【答案】C
【解析】本题的考点是关系运算。关系运算中,选择和投影只涉及一个表,联接和自然连接是涉及到两个表以上的操作。
(14)在“项目管理器”下为项目建立一个新报表,应该使用的选项卡是________。
A)数据 B)文档 C)类 D)代码 【答案】B
【解析】本题的考点是项目管理器的组成。项目是VFP中文件、数据、文档和VFP对象的集合。项目管理器是管理项目的工具。项目管理器有6个选项卡。“数据”选项卡包含项目的所有数据:数据库、自由表、查询和视图。“文档”选项卡包含处理数据的3类文件:表单、报表和标签。“类”选项卡用来管理基类和用户定义的类。“代码”选项卡包括3类程序:程序文件(.prg)、函数库和应用程序(.app)。“其他”选项卡包括文本文件、菜单文件和其他文件。“全部”选项卡是上述各类文件的集中显示窗口。 (15)如果有定义 LOCAL data , data 的初值是:________。
A)整数 0 B)不定值 C)逻辑真 D)逻辑假 【答案】D
【解析】本题考点是局部变量。LOCAL命令用来建立局部变量,建立的变量的初值是.F.。
(16)扩展名为 pjx 的文件是________。
A)数据库表文件 B)表单文件 C)数据库文件 D)项目文件 【答案】D 【解析】本题考点是文件扩展名。VFP常用的扩展名如下:.DBC:数据库文件;.CDX:结构索引文件;.DBF:表文件;.FPT:备注文件;.PJX:项目文件;.IDX:单一索引文件;QPR:查询文件;.PRG:程序文件;.SCX:表单文件;.SCT:表单备注文件;FRX:报表文件;.FRT:报表备注文件;MNX:菜单文件;MPR:菜单程序文件。 (17)下列程序执行以后,内存变量 y 的值是________。 x=34567 y=0
DO WHILE x>0 y=x+y*10 x=int(x/10) ENDDO A)3456 B)34567 C)7654 D)76543 【答案】D
【解析】本题考点是DO WHILE循环。程序分析如下 初始值:x=34567;y=0 1 2 3 4 5 6 判断x>0为.T. 判断x>0为.T. 判断x>0为.T. 判断x>0为.T. 判断x>0为.T. 判断x>0为.F. 进入循环 进入循环 进入循环 进入循环 进入循环 退出循环 执行y=x+y*10后y=7 执行y=x+y*10后y=76 执行y=x+y*10后y=765 执行y=x+y*10后y=7654 执行y=x+y*10后y=76543 执行x=int(x/10)后x=3456 执行x=int(x/10)后x=345 执行x=int(x/10)后x=34 执行x=int(x/10)后x=3 执行x=int(x/10)后x=0 因此,y的值是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+y*10 y=x+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+y*10 y=x+y*10 x=int(x/10) x=int(x/10) IF x>0 IF x=0
flag=.F. flag=.T.
ENDIF ENDIF ENDDO ENDDO