2017年9月全国计算机等级考试《二级Visual FoxPro数据库程序设计》历年真题与模拟试题详解(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-25 18:17:55

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

2017年9月全国计算机等级考试《二级Visual FoxPro数据库程序设计》历年真题与模拟试题详解

2017年9月全国计算机等级考试《二级Visual FoxPro数据库程序设计》历年真题与模拟试题详解试读:

第一部分 历年真题及详解

2016年3月全国计算机等级考试《二级Visual FoxPro数据库程序设计》真题及详解

(考试时间120分钟  满分100分)

一、选择题(每小题1分,共40分)

1.下面属于黑盒测试方法的是(   )。

A.边界值分析法

B.基本路径测试

C.条件覆盖

D.条件-分支覆盖【答案】A【解析】常用的黑盒测试方法有:①等价类划分法;②边界值分析法;③错误推测法;④因果图等。常用的白盒测方法有:①逻辑覆盖测试,包括语句覆盖、路径覆盖、判断覆盖、条件覆盖;②基本路径测试等。

2.在数据库设计中,将E-R图转换成关系数据模型的过程属于(   )。

A.逻辑设计阶段

B.需求分析阶段

C.概念设计阶段

D.物理设计阶段【答案】A【解析】逻辑设计阶段将不适用于计算机处理的E-R图转换成关系模式。

3.当用命令CREATE DATABASE db创建一个数据库后,磁盘上不会出现的文件是(   )。

A.db.DBF

B.db.DBC

C.db.DCT

D.db.DCX【答案】A【解析】A项,DBF是数据表的扩展名,命令只建立了数据库,并没有建立表,所以不会出现表文件。BCD三项文件都会出现,其中,B项,db.DBC是db的数据库文件;C项,db.DCT是数据库db的备注文件;D项,db.DCX是数据库db的索引文件。这些文件都会出现。

4.Visual FoxPro的设计器是创建和修改应用系统各种组件的可视化工具,打开设计器的方式不包括(  )。

A.使用命令方式

B.从系统的“工具”菜单选择并打开

C.在项目管理器环境下调用、打开

D.以上都不对【答案】B【解析】设计器可以通过项目管理器和命令方式打开,但不能从系统的“工具”菜单打开。

5.设某二叉树的前序遍历为ABC,中序遍历为CBA,则该二叉树的后序遍历为(  )。

A.BCA

B.CBA

C.ABC

D.CAB【答案】B【解析】二叉树遍历方式有:①前序遍历,访问根结点在访问左子树和访问右子树之前;②中序遍历,访问根结点在访问左子树和访问右子树之间;③后序遍历,访问根结点在访问左子树和访问右子树之后。因为前序遍历为ABC,所以A为根结点;因为中序遍历为CBA,所以C和B均为A的左子树结点,且B是C的父结点,由此可知整棵树结点的关系,后序遍历为CBA。

6.在查询设计器中,要想将查询结果直接送至Visual FoxPro主窗口显示,查询去向应指定为(  )。

A.浏览

B.临时表

C.屏幕

D.报表【答案】C【解析】查询去向有:浏览、临时表、表、图形、屏幕、报表、标签。查询去向指定为屏幕可以直接把查询结果送至Visual FoxPro主窗口显示。

7.一个兴趣班可以招收多名学生,而一个学生可以参加多个兴趣班。则实体兴趣班和实体学生之间的联系是(  )。

A.1∶1联系

B.1∶m联系

C.m∶1联系

D.m∶n联系【答案】D【解析】实体集之间的联系包括:①一对一联系,记作1∶1;②一对多联系,记作1∶m;③多对多联系,记作m∶n。一个兴趣班可以招收多个学生,一个学生可以参加多个兴趣班,所以兴趣班与学生之间的联系为多对多m∶n联系。

8.在建立数据库表baby.dbf时,将年龄字段的字段有效性规则设为“年龄>0”,能保证数据的(  )。

A.域完整性

B.实体完整性

C.参照完整性

D.表完整性【答案】A【解析】“年龄>0”保证了单个字段年龄的域完整性,域完整性是指对表中字段取值的限定;实体完整性是指保证表中记录惟一的特性;参照完整性跟表之间的联系有关。

9.设表student(学号,姓名,年龄)共有4条记录。其记录值如下:(1,张三,18)(2,李斯,20)(3,钱力,18)(4,章好,18)

执行如下程序后,屏幕显示学生信息的记录数是(  )。

CLEAR

USE student

SCAN WHILE年龄﹤=18

DISPLAY

ENDSCAN

USE

A.0

B.1

C.2

D.3【答案】B【解析】SCAN循环首先指明需要处理的记录范围及应满足的条件,然后记录指针就会自动地在当前表的指定范围内且满足条件的记录上移动,对每一条记录执行循环体内的命令。DISPLAY默认显示当前记录,所以虽然满足条件的记录有3条,但屏幕中只显示一条。

10.在最坏情况下(  )。

A.快速排序的时间复杂度比冒泡排序的时间复杂度要小

B.快速排序的时间复杂度比希尔排序的时间复杂度要小

C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小

D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的【答案】C【解析】对长度为n的线性表排序时,各种算法的时间复杂度如下:

希尔排序的时间效率与所取的增量序列有关,如果增量序列为:d=n/2,d=d/2,那么最坏情况下的时间复杂度为O()。1i+1i

11.设采购表包含产品号、单价、数量和金额四个字段,其中单价、数量和金额字段都是数值型。如果把所有的金额都直接修改成单价*数量,下列正确的命令是(  )。

A.UPDATE ALL金额WITH单价*数量

B.REPLACE ALL金额WITH单价*数量

C.CHANGE ALL金额WITH单价*数量

D.EDIT ALL金额WITH单价*数量【答案】B【解析】REPLACE命令常用来修改记录,对指定范围内符合条件的记录,用指定的<表达式>值替换指定<字段>的内容,格式为:REPLACE<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>]…[FOR<条件表达式>]。因为要替换所有记录,所以使用REPLACE ALL。

12.有两个关系R与S如下,由关系R和S得到关系T,则所使用的操作为(  )。

A.并

B.自然连接

C.笛卡尔积

D.交【答案】C【解析】关系T是由关系R中的成员和关系S中的成员的所有可能的有序对组成,是笛卡尔积运算。并又写为R∪S,是将S中的记录追加到R后面;交又写为R∩S,结果是既属于R又属于S的记录组成的集合;自然连接是指去掉重复属性的等值连接。

13.下列叙述中正确的是(  )。

A.有两个指针域的链表称为二叉链表

B.循环链表是循环队列的链式存储结构

C.带链的栈有栈顶指针和栈底指针,因此又称为双重链表

D.结点中具有多个指针域的链表称为多重链表【答案】D【解析】A项错误,双向链表有两个指针域,但它不是二叉链表;B项错误,循环链表与循环队列是不同的存储结构,循环队列是一种顺序存储结构;C项错误,带链的栈,结点只有一个指针域是单链表。

14.下面有关视图的叙述中错误的是(   )。

A.视图的数据源只能是数据库表和视图,不能是自由表

B.在视图设计器中不能指定“查询去向”

C.视图没有相应的文件,视图定义保存在数据库文件中

D.使用USE命令可以打开或关闭视图【答案】A【解析】视图的数据可以来自数据库表、自由表和其他视图。B项正确,视图设计器不能指定查询去向;C项正确,视图不作为独立的文件存储,只是在数据库文件中保存视图定义;D项正确,建立视图后,可以用USE命令打开和关闭视图。

15.下面对类和对象主要特征描述正确的是(   )。

A.对象惟一性

B.对象无关性

C.类的单一性

D.类的依赖性【答案】A【解析】对象的特点主要包括:①标识惟一性;②分类性;③多态性;④封装性;⑤模块独立性。类是关于对象的抽象描述。

16.查询设计器和视图设计器很像,以下哪个选项卡是查询设计器没有的(   )。

A.联接

B.筛选

C.排序依据

D.更新条件【答案】D【解析】查询设计器的选项卡有:①字段;②联接;③筛选;④排序依据;⑤分组依据;⑥杂项。视图设计器比查询设计器多一个“更新条件”选项卡。

17.设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是(   )。

A.R={(1,2),(3,4),(5,1)}

B.R={(1,3),(4,1),(3,2),(5,4)}

C.R={(1,2),(2,3),(4,5)}

D.R={(1,3),(2,4),(3,5)}【答案】B【解析】线性结构是指有且只有一个根结点,且每个结点最多有一个前件,也最多有一个后件的非空数据结构。A项错误,3和5都为根结点;C项错误,1和4都为根结点;D项错误,1和2都为根结点。

18.LEFT("123456789",LEN("中国"))的计算结果是(  )。

A.1234

B.3456

C.12

D.89【答案】A【解析】LEN(<字符表达式>)用来求字符串长度,即返回字符个数,每个中文占两个字符,所以LEN("中国")=4。LEFT(<字符表达式>,<长度>)用来取子串,函数值是在指定表达式的左端取一个指定长度的子串,LEFT("123456789",4)的值为“1234”。

19.查询2013年已经年检的驾驶证编号和年检日期,正确的SQL语句是(  )。

A.SELECT 驾驶证编号,年检日期 FROM 驾驶证年检 WHERE year(年检日期)=2013

B.SELECT 驾驶证编号,年检日期 FROM 驾驶证年检 WHERE 年检日期=2013

C.SELECT 驾驶证编号,年检日期 FROM 驾驶证年检 WHERE 年检日期=year(2013)

D.SELECT 驾驶证编号,年检日期 FROM 驾驶证年检 WHERE year(年检日期)=year(2013)【答案】A【解析】筛选年检日期为2013的语句应为:year(年检日期)=2013。year()返回日期型或日期时间型数据的年份。

20.通常软件测试实施的步骤是(   )。

A.集成测试、单元测试、确认测试

B.单元测试、集成测试、确认测试

C.确认测试、集成测试、单元测试

D.单元测试、确认测试、集成测试【答案】B【解析】软件测试的步骤为:①单元测试;②集成测试;③确认测试;④系统测试。

21.在当前工作区打开了一个包含10条记录的表,在执行了GO BOTTOM和SKIP两条命令后,如下函数返回真(T)的是(  )。

A.FOUND( )

B.BOF( )

C.EOF( )

D.ERROR( )【答案】C【解析】GO BOTTOM执行后,记录指针指向最后一条记录;SKIP执行后记录指针指向最后一条记录后面的位置。EOF( )用于测试当前表文件记录指针是否指向文件尾,所以返回真;BOF( )用于测试当前表文件或指定表文件中记录指针是否指向文件首,返回假。

22.下面程序的运行结果是(  )。

CLEAR

S=0

i=-1

DO WHILE i﹤=20

i=i+2

IF i%5!=0

i=i+1

LOOP

ENDIF

s=s+i

ENDDO

?s

A.0

B.30

C.35

D.45【答案】D【解析】循环体内i首先自增2,然后判断i是否能整除5,不能自增1,否则s=s+i。在循环中,当i=10、15和20时,s=10+15+20=45。

23.Show方法用来将表单的(  )。

A.Enabled属性设置为.F.

B.Visible属性设置为.F.

C.Visible属性设置为.T.

D.Enabled属性设置为.T.【答案】C【解析】Visible属性表示表单或控件是否可见,Enabled属性表示表单或控件是否可用。Show方法用来将表单的Visible属性设置为.T.。

24.在当前数据库中添加一个表的命令是(   )。

A.ADD命令

B.ADD TABLE命令

C.APPEND命令

D.APPEND TABLE命令【答案】B【解析】ADD TABLE命令是在当前数据库中添加一个自由表。APPEND命令用来在表的尾部增加记录。没有ADD命令和APPEND TABLE命令。

25.某二叉树中共有935个结点,其中叶子结点有435个,则该二叉树中度为2的结点个数为(  )。

A.64

B.66

C.436

D.434【答案】D【解析】在二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,而且任一结点的后继结点数不超过2个,所以叶子结点有435个,度为2的结点数为434个。

26.SQL SELECT语句中的GROUP BY子句对应于查询设计器的(  )。

A.“字段”选项卡

B.“排序依据”选项卡

C.“分组依据”选项卡

D.“筛选”选项卡【答案】C【解析】查询设计器中,“字段”选项卡对应SQL中的SELECT语句;“排序依据”选项卡对应SQL的ORDER BY子句;“分组依据”选项卡对应SQL中的GROUP BY子句;“筛选”选项卡对应SQL中WHERE子句。

27.下列关于Visual FoxPro索引的说法,错误的是(  )。

A.索引是由一个指向.dbf文件记录的指针构成的文件

B.主索引和候选索引都要求建立索引的字段值不能重复

C.在数据表和自由表中均可建立主索引和候选索引

D.索引会降低插入、删除和修改等操作的效率【答案】C【解析】主索引在指定字段或表达式中只能由数据库表建立,字段值不能重复;候选索引与主索引类似,指定字段或表达式可以由数据库表和自由表建立,不能有重复值。

28.从“货物”表中检索重量(数据类型为整数)大于等于30并且小于80的记录信息,正确的SQL命令是(  )。

A.SELECT*FROM货物WHERE重量BETWEEN 30 AND 79

B.SELECT*FROM货物WHERE重量BETWEEN 30 TO 79

C.SELECT*FROM货物WHERE重量BETWEEN 30 AND 80

D.SELECT*FROM货物WHERE重量BETWEEN 30 TO 80【答案】A【解析】筛选条件为BETWEEN 30 AND 79,表示大于等于30并且小于等于79,等价于大于等于30并且小于80。

29.设用户表和话单表的结构分别为(手机号,姓名)和(手机号,通话起始日期,通话时长,话费),如果希望查询“在2012年里有哪些用户没有通话记录”,则应该使用的SQL语句是(   )。

A.SELECT用户*FROM用户JOIN话单ON用户.手机号=话单.手机号;

WHERE YEAR(通话起始日期)=2012 AND话单.手机号IS NOT NULL

B.SELECT用户*FROM用户,话单;

WHERE YEAR(通话起始日期)=2012 AND用户.手机号=话单.手机号

C.SELECT*FROM用户WHERE NOT EXISTS;(SELECT*FROM话单WHERE YEAR(通话起始日期)=2012)

D.SELECT*FROM用户WHERE NOT EXISTS;(SELECT*FROM话单WHERE YEAR(通话起始日期)=2012 AND用户.手机号=话单.手机号)【答案】D【解析】AB两项错误,其查询结果是“在2012年里有通话记录的用户”;C项错误,缺少了用户表和话单表的连接条件。

30.某系统结构图如下图所示,该系统结构图的宽度是(  )。

A.2

B.3

C.4

D.n【答案】D【解析】系统结构图的密度是指最大模块数的层的控制跨度。题目中系统第一层只有1个模块,第二层有n(n>3)个模块,第三层有4个模块,最大的跨度为n。

31.在SQL查询中将结果存储于临时表应使用短语(   )。

A.INTO TABLE 

B.TO TABLE

C.TO CURSOR

D.INTO CURSOR【答案】D【解析】INTO DBF|TABLE TableName用来将查询结果存放到永久表中;INTO CURSOR CursorName可以将查询结果存放到临时表中。

32.下列程序段的输出结果是(  )。

ACCEPT TO A

IF A=[789]

S=0

ENDIF

S=1

?S

A.1

B.2

C.789

D.程序出错【答案】A【解析】程序中,无论if条件是否成立,语句S=1都会执行,所以S的最终值为1。ACCEPT TO A表示通过键盘给变量A赋值。

33.有如下用户表:

用户(用户名C,密码C,性别L,电子邮箱C)

假设已存在与表各字段变量同名的内存变量,现在要把这些内存变量的值作为一条新记录的值插入表中。正确的SQL语句是(   )。

A.INSERT TO用户WITH MEMVAR

B.INSERT INTO用户WITH MEMVAR

C.INSERT TO用户FROM MEMVAR

D.INSERT INTO用户FROM MEMVAR【答案】D【解析】INSERT命令用于在一个表中添加新记录,并为其字段赋值。格式为:INSERT INTO dbf_name FROM ARRAY ArrayName│FROM MEMVAR,其中ARRAY ArrayName表明指定的数组,FROM MENVAR说明根据同名的内存变量来插入记录值,如果同名的变量不存在,那么相应的字段为默认值或空值。

34.有订单表如下:

订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))

查询2014年之前签订的所有的订单信息,正确的SQL语句是(   )。

A.SELECT*FROM订单WHERE签订日期<{^2014-1-1}

B.SELECT*FROM订单WHERE签订日期<2014

C.SELECT*FROM订单WHERE签订日期BEFORE 2014

D.SELECT*FROM订单WHERE签订日期<2014年【答案】A【解析】查询的语法格式为SELECT…… FROM ……WHERE……,其中,SELECT说明要查询的字段,FROM说明来自哪个表或哪些表,WHERE说明查询条件。本题的限定条件应该是“签订日期<{^2014-1-1}”。

35.下列叙述中错误的是(  )。

A.在带链队列中,队头指针和队尾指针都是在动态变化的

B.在带链栈中,栈顶指针和栈底指针都是在动态变化的

C.在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的

D.在带链队列中,队头指针和队尾指针可以指向同一个位置【答案】B【解析】带链队列用一个单链表来表示队列,带链栈用一个单链表来表示栈。栈的入栈和退栈操作只在栈顶进行,所以在带链栈中,栈顶指针变化,栈底指针不变。

36.执行下列程序后,变量y的值是(  )。

SET TALK OFF

CLEAR 

x=2000

DO CASE

CASE x﹤=1000

y=x*0.1

CASE x﹥1000

y=x*0.2

CASE x﹥1500

y=x*0.3

CASE x﹥2500

y=x*0.4

ENDCASE

?y

A.200

B.400

C.600

D.800【答案】B【解析】多分支语句应逐个判断CASE后的条件是否成立,当某个CASE后的条件成立时,就运行该CASE和下一个CASE间的命令,然后跳转到ENDCASE执行后面的语句。若所有的条件都不成立,则运行OTHERWISE与ENDCASE之间的命令,然后转向ENDCASE后面的语句。本题运行为y=x*0.2=400。

37.用于声明某变量为全局变量的命令是(   )。

A.GLOBAL

B.PUBLIC

C.PRIVATE

D.LOCAL【答案】B【解析】PUBLIC用于声明公共变量(全局变量);PRIVATE用于声明私有变量;LOCAL用于声明局部变量。

38.有如下职员表和订单表:

职员(职员号(C,3),姓名(C,6),性别(C,2),职务(C,10))

订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))

查询签订了订单号为“0036”的订单的职员信息,正确的SQL语句是(   )。

A.SELECT职员号,姓名FROM职员WHERE订单.订单号="0036"

B.SELECT职员.职员号,职员.姓名FROM职员,订单;

WHERE订单号="0036"AND职员.职员号=订单.职员号

C.SELECT职员.职员号,职员.姓名FROM职员JOIN订单;

WHERE职员.职员号=订单.职员号AND订单号="0036"

D.SELECT职员.职员号,职员.姓名FROM职员,订单ON职员.职员号=订单.职员号AND订单号="0036"【答案】B【解析】查询字段应该是“表名.字段名”的格式,并且本题应该通过职员号这一共同字段将订单表和职员表的信息相连,且限定查询的条件为订单号=“0036”。SQL查询的基本形式由“SELECT字段名FROM表名WHERE”组成,多个查询块可以嵌套执行。

39.有如下职员表和订单表:

职员(职员号(C,3),姓名(C,6),性别(C,2),职务(C,10))

订单(订单号(C,4),客户号(C,4),职员号(C,3)。签订日期(D),金额(N,6,2))

统计每个职员签订的订单金额合计,正确的SQL语句是(   )。

A.SELECT职员.职员号,SUM(金额)金额合计FROM职员,订单;

ON职员.职员号=订单.职员号GROUP BY职员.职员号

B.SELECT职员.职员号,SUM(金额)金额合计FROM职员JOIN订单;

WHERE职员.职员号=订单.职员号GROUP BY职员.职员号

C.SELECT职员.职员号,SUM(金额)金额合计FROM职员JOIN订单;

ON职员.职员号=订单.职员号GROUP BY职员.职员号

D.SELECT职员.职员号,SUM(金额)金额合计FROM职员JOIN订单;

ON职员.职员号=订单.职员号ORDER BY职员.职员号【答案】C【解析】查询的基本形式为:SELECT<字段名列表>FROM<表名>WHERE<查询条件>GROUP BY<字段>HAVING<条件>ORDER BY<字段>INTO DBF|TABLE,其中,SELECT说明要查询的字段;FROM说明来自哪个表或哪些表;WHERE说明查询条件;ORDER BY用来对结果排序;GROUP BY子句用来进行分组,本题应用GROUP BY子句。多表连接的的基本格式为SELECT…FROM<数据库表1>INNER|LEFT|RIGHT|FULL JOIN<数据库表2>ON连接条件WHERE其他条件。

40.设教师表保存的是教师信息,教师表的表结构为(教师编号,姓名,职称),图书出版表保存的是教师出版图书的情况,图书出版表的表结构为(ISBN号,教师编号,图书名,出版社,出版年份)。如果希望查询从来没有出版过图书的教师编号和姓名,正确的SQL语句是(   )。

A.SELECT 教师表.教师编号,姓名FROM教师表JOIN图书出版表;

ON教师表.教师编号=图书出版表.教师编号WHERE 教师表.教师编号IS NULL

B. SELECT 教师表.教师编号,姓名FROM教师表LEFT JOIN图书出版表;

ON教师表.教师编号=图书出版表.教师编号WHERE 图书出版表.教师编号IS NULL

C. SELECT 教师表.教师编号,姓名FROM教师表INNER JOIN图书出版表;

ON教师表.教师编号=图书出版表.教师编号WHERE 图书出版表.教师编号IS NULL

D. SELECT 教师表.教师编号,姓名FROM教师表RIGHT JOIN图书出版表;

ON教师表.教师编号=图书出版表.教师编号WHERE 图书出版表.教师编号IS NULL【答案】B【解析】在SQL语句中,超连接查询有四种连接方式,其基本格式为SELECT……FROM左表INNER│LEFT│RIGHT│FULL JOIN右表ON连接条件WHERE其他条件。其中:①普通连接为INNER JOIN等价于JOIN,普通连接只有满足连接条件的记录才出现在查询结果中;②左连接为LEFT JOIN,第一个表中所有记录都会出现在查询结果中,不满足连接条件的记录的对应部分为NULL;③右连接为RIGHT JOIN,第二个表中所有记录都会出现在查询结果中,不满足连接条件的记录的对应部分为NULL;④全连接为FULL JOIN,两个表中的所有记录都会出现在查询结果中,不满足连接条件的记录的对应部分为NULL。查询从来没有出版过图书的教师编号和姓名应该使用左连接。

二、基本操作题(共18分)

在考生文件夹下完成下列操作:(1)新建“点歌”数据库,将考生文件夹下的所有自由表添加到该数据库中。(2)新建一个项目“点歌系统”,将“点歌”数据库添加进该项目。(3)为“歌曲”表创建一个主索引,索引名为PK,索引表达式为“歌曲id”;再创建一个普通索引,索引名和索引表达式均为“演唱者”,以上索引都为升序。(4)为“歌手”表创建一个主索引,索引名和索引表达式都为“歌手id”,升序。为“歌曲”和“歌手”表创建永久联系,并设置参照完整性约束:更新规则为“级联”,其他默认。

答:(1)步骤1:单击工具栏中的“新建”按钮。

步骤2:在“新建”对话框中,选择“数据库”,再单击“新建文件”按钮,弹出“创建”对话框。

步骤3:在创建对话框中输入数据库名“点歌”,再按回车键或单击“保存”按钮,弹出“数据库设计器-点歌”对话框,如图1所示。图1(2)步骤1:单击工具栏中的“新建”按钮,选择“文件类型”为项目,弹出创建对话框,输入项目名称后,点击保存,如图2所示。

步骤2:在“项目管理器-点歌系统”中点击数据,再点击数据库,在菜单中选择“添加”,并选择相应的数据库文件即可(点歌.dbc),如图3所示。图2(a)图2(b)图3(3)步骤1:单击工具栏中的“打开”按钮,选择“文件类型”为数据库,打开“点歌.dbc”。

步骤2:在“数据库设计器-点歌”中,选择表“歌曲”并右击,选择“修改”命令,在“表设计器-歌曲.dbf”中,单击“索引”选项卡,然后输入索引名“PK”,选择类型为“主索引”,表达式为“歌曲id”,然后输入索引名“演唱者”,选择类型为“普通索引”,索引表达式为“演唱者”,最后单击“确定”按钮,再单击“是(Y)”,索引即被建立,如图4所示。图4(4)步骤1:在“数据库设计器-点歌”中,选择表“歌手”并右击,选择“修改”命令,在“表设计器-歌手.dbf”中,单击“索引”选项卡,然后输入索引名“歌手id”,选择类型为“主索引”,索引表达式为“歌手id”,最后单击“确定”按钮,再单击“是(Y)”主索引即可建立,如图5所示。图5

步骤2:在“数据库设计器-点歌”中,选择“歌曲”表中主索引“PK”,拖动到“歌手”表中的索引为“歌手id”处,如图6所示。图6

步骤3:在表“歌曲”与表“歌手”已建立永久性联系后,双击关系线,并显示“编辑关系”对话框。

步骤4:在“编辑关系”对话框中,单击“参照完整性”按钮,并显示“参照完整性生成器”。

步骤5:在“参照完整性生成器”对话框中,单击“更新规则”选项卡,并选择“级联”单选按钮,其余保持默认,最后单击“是(Y)”按钮,即可生成指定参照完整性,如图7所示。图7(a)图7(b)

注意:可能会出现要求清理数据库,那么请清理后重新做操作。

三、简单应用题(共24分)

在考生文件夹下完成下列操作:(1)使用SQL语句完成下面的操作:根据“国家”和“获奖牌情况”两个表统计每个国家获得的金牌数(“名次”为1表示获得一块金牌),结果包括“国家名称”和“金牌数”两个字段,并且先按“金牌数”降序排列,若“金牌数”相同再按“国家名称”降序排列,然后将结果存储到表temp中。最后将该SQL语句存储在文件three.prg中。(2)建立一个文件名和控件名均为myform的表单,如下图所示。表单中包括一个列表框(List1)、一个选项组(Optiongroup1)和一个“退出”命令按钮(Command1),这三个控件名使用系统默认的名称。相关控件属性按如下要求进行设置:表单的标题为“奖牌查询”,列表框的数据源使用SQL语句根据“国家”表显示国家名称,选项组中有3个按钮,标题分别为金牌(Option1)、银牌(Option2)和铜牌(Option3)。

答:(1)新建程序three.prg,然后输入以下命令语句。

********three.prg中的代码*******

&&选择查询字段,通过AS短语制定显示字段

SELECT国家.国家名称,COUNT(获奖牌情况.名次)AS金牌数;

&&指定字段来源

FROM国家.获奖牌情况;

&&设置查询条件

WHERE 国家.国家代码=获奖牌情况.国家代码;

AND 获奖牌情况.名次=1;

&&GROUP BY子句用于按国家名称分组

GROUP BY国家.国家名称;

&&查询结果按金牌数降序排列,金牌数相等时按国家名称降序排列

ORDER BY 2DESC,国家.国家名称DESC;

&&将查询结果存储到 temp.dbf中

INTO TABLE temp.dpf

*********************************

保存并运行程序。(2)新建一个表单,按题目要求添加一个列表框、一个选项组和一个命令按钮,并修改其属性如下:表单的Name属性为myform,Caption属性为“奖牌查询”;列表框的RowSourceType属性为“3—SQL语句”,RowSource属性为“SELECT国家姓名FORM国家INTO Cursor LSB”;选项组的ButtonCount属性为3;单选钮1的Caption属性为“金牌”;单选钮2的Caption属性为“银牌”;单选钮3的Caption3属性为“铜牌”;命令按钮的Caption属性为“退出”。

保存表单为myfrom,运行以查看表单的设计结果。

四、综合应用题(共18分)

在考生文件夹下完成下列操作:

在考生文件夹下创建一个名为mymenu.mnx的下拉式菜单,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前Visual FoxPro系统菜单的“帮助”菜单之前插入一个“考试”菜单,如下图所示。“统计”和“返回”菜单命令的功能都通过执行“过程”完成。“统计”菜单命令的功能是以组为单位求“订单金额”的和。统计结果包含“组别”、“负责人”和“合计”3项内容,其中“负责人”为该组组长(取自employee中的“职务”字段)的姓名,“合计”为该组所有职员所签订单的金额总和。统计结果按“合计”降序排序,并存放在tabletwo表中。“返回”菜单命令的功能是返回Visual FoxPro的系统菜单。

菜单程序生成后,运行菜单程序并依次执行“统计”和“返回”菜单命令。

答:步骤1:新建一个菜单,并按照题目的要求设计菜单的显示方式及位置,如图8所示。图8(a)图8(b)图8(c)图8(d)

步骤2:按照题目要求设计各级菜单,如图9所示。图9(a)图9(b)

步骤3:选中“统计”行,单击后面的“创建”按钮,在弹出的窗口中输入如下代码,为“统计”菜单编写代码,如图10所示。图10

步骤4:为“返回”菜单编写代码“SET SYSMENU TO DEFAULT”,方法同步骤3。

步骤5:保存菜单并生成可执行文件mymenu.mpr,如图11所示。图11(a)图11(b)图11(c)

步骤6:在命令窗口中输入“do mymenu.mpr”运行程序,分别执行“统计”和“返回”菜单命令,如图12所示。图12

2015年9月全国计算机等级考试《二级Visual FoxPro数据库程序设计》真题及详解

(考试时间120分钟  满分100分)

一、选择题(每小题1分,共40分)

1.算法时间复杂度的度量方法是(   )。

A.算法程序的长度

B.执行算法所需要的基本运算次数

C.执行算法所需要的所有运算次数

D.执行算法所需要的时间【答案】B【解析】算法的时间复杂度是用执行算法所需要的基本运算次数来度量的。

2.以下数据结构中,属于非线性数据结构的是(   )。

A.栈

B.线性表

C.队列

D.二叉树【答案】D【解析】线性结构必须满足下列两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。如果一个数据结构不是线性结构,二叉树中的结点后继不惟一,属于非线性结构。栈和队列都是操作受限的线性表,是线性结构。

3.一个栈的初始状态为空。现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为(  )。

A.ABC

B.CBA

C.EDC

D.CDE【答案】C【解析】栈具有先进后出的特点,要求插入和删除都只能在表的同一端进行;队列具有先进先出的特点,在表的一端进行插入,另一端进行删除。元素入栈后为ABCDE,出栈并入队后,队中元素为EDC,因此出队顺序为EDC。

4.设有下列二叉树:

对此二叉树前序遍历的结果为(  )。

A.ZBTYCPXA

B.ATBZXCYP

C.ZBTACYXP

D.ATBZXCPY【答案】B【解析】二叉树的前序遍历是指首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,故该二叉树的前序遍历结果为“ATBZXCYP”。

5.下列数据结构中,能用二分法进行查找的是(   )。

A.顺序存储的有序线性表

B.线性链表

C.二叉链表

D.有序线性链表【答案】A【解析】二分查找只适用于顺序存储的有序表。有序表是指线性表中的元素按值非递减排列,即从小到大,但允许相邻元素值相等。

6.下列关于类、对象、属性和方法的叙述中,错误的是(   )。

A.类是对一类具有相同的属性和方法对象的描述

B.属性用于描述对象的状态

C.方法用于表示对象的行为

D.基于同一个类产生的两个对象不可以分别设置自己的属性值【答案】D【解析】类是对一类具有相同的属性和方法对象的抽象。属性表示对象的状态,方法表示对象的行为,基于同一个类产生的两个对象属性相同,但是属性值可以由对象自己设定。

7.软件需求规格说明书的作用不包括(   )。

A.软件验收的依据

B.用户与开发人员对软件要做什么的共同理解

C.软件设计的依据

D.软件可行性研究的依据【答案】D【解析】需求规格说明书是需求分析的成果,其作用是:①便于用户、开发人员进行理解和交流;②反映用户问题的结构,可作为软件开发工作的基础和依据;③可作为确认测试和验收的依据;④为成本估算和编制计划进度提供基础;⑤软件不断改进的基础。D项,可行性研究是在需求分析之前进行的,软件需求规格说明书不可能作为可行性研究的依据。

8.软件详细设计产生的图如下:

该图是(  )。

A.N-S图

B.PAD图

C.程序流程图

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载