第三章习题及答案

更新时间:2023-12-13 05:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、思考题

1.什么是数据库表?什么是自由表?

2.什么是表结构?表的哪几种字段的宽度是固定不变的?

3.打开表文件之后,为什么在Visual FoxPro主窗口没有任何显示信息? 4.如何编辑备注型字段的值?

5.LIST命令和DISPLAY命令有什么区别?

6.如果缺省范围子句,哪几条命令只对当前记录操作? 7.ZAP命令和PACK命令有什么区别? 8.什么是记录指针,它的作用是什么?

9.什么是排序和索引?为什么索引的查询效率高? 10.Visual FoxPro有几种类型的索引?是否所有的索引都可以在自由表中使用?在表设计器中可以创建的索引文件是哪一种?

11.什么是主控索引文件和主控索引标识?它们的作用是什么?

12.LOCATE、FIND、SEEK命令在使用上有什么区别?怎么判断查询是否成功? 二、选择题

1.某表文件有5个字段,其中3 个字符型宽度分别为6、12、和10,另外还有一个逻辑型字段和一个日期型字段,该数据库文件中每条记录的总字节数是 。

A)37 B)38 C)39 D)40 2.在表文件文件尾部增加一条空记录,应该使用命令 。

A)APPEND B)APPEND BLANK C)INSERT D)INSERT BLANK 3.设表文件及其索引文件已打开,为了确保指针定位在物理记录号为1的记录上,应该使用命令 。

A)GO TOP B)GO BOF() C)SKIP 1 D)GO 1

4.设职工表文件已经打开,其中有工资字段,要把指针定位在第一个工资大于620元的记录上,应使用命令 。

A)FIND FOR 工资>620 B)SEEK 工资>620 C)LOCATE FOR 工资>620 D)FIND 工资>620 5.删除学生表中姓王的学生,应使用命令 。

A)DELETE FOR “王”$姓名 B)DELETE FOR SUBSTR (姓名,1,2)=“王”

C)DELETE FOR 姓名=王* D)DELETE FOR RIGHT (姓名,1)=“王” 6.USE职工

LOCATE FOR工资=900

为了将指针定位在下一个工资是900的记录上,应该接着使用命令 。

A)SKIP B)CONTINUE C)SEEK 900 D)FIND 900 7.设当前表有10条记录,当EOF()为真时,命令?RECNO()的显示结果是 。

A)10 B)11 C)0 D)空

8.设当前表中姓名字段为字符型,要把内存变量NAME 字符串的内容输入到当前记录的姓名字段,应当使用命令 。

A)姓名=NAME B)REPLACE 姓名 WITH NAME

C)REPLACE 姓名 WITH &NAME D)REPLACE ALL 姓名 WITH NAME 9.在Visual FoxPro中,打开索引文件的命令中,错误的是 。

A) USE<库文件名> INDEX TO <索引文件名>

1

B) USE<库文件名> INDEX <索引文件名> C) INDEX ON 职工号 TO <索引文件名> D) SET INDEX TO <索引文件名>

10.顺序执行下面命令之后,屏幕所显示的记录号顺序是 。

USE XYZ GO 6

LIST NEXT 4

A)1~4 B)4~7 C)6~9 D)7~10 11.在Visual FoxPro中,可以使用FOUND()函数来检测查询是否成功的命令包括 。

A) LIST、FIND、SEEK B)FIND、SEEK、LOCATE C) FIND、DISPLAY、SEEK D) LIST、SEEK、LOCATE 三、上机题

1.建立表与复制表操作:

(1)建立一个职工表(zg.dbf),字段有:职工号(C,6),姓名(C,8),性别(L),出生日期(D),职称(C,10),基本工资(N,8,2),奖金(N,8,2),实发工资(N,8,2),其内容如下:

(2)修改职工表表结构,在实发工资前增加一个新的字段,扣款(N,8,2)。 (3)将zg.dbf的表结构复制到新表zg1.dbf中。

(4)将zg.dbf 中的所有男教师的记录都复制到zg2.dbf中。 2.写出下列显示表记录的命令。 (1)显示zg.dbf中所有的讲师 (2)显示所有女教师的姓名 (3)显示70年后出生的教师 (4)显示第三条记录的内容

(5)显示前三条男教师的姓名,出生日期,职称 (6)从第3条记录开始显示到末尾记录 (7)显示所有男教授的姓名、年龄、基本工资 (8)显示所有男性教授或副教授 (9)显示所有姓林的教师

2

(10)显示姓名中有“林”字的记录。 3.修改命令。

(1)计算实发工资字段的值,实发工资=基本工资+津贴-扣款。

(2)在实发工资为0的情况下,分别执行下列三条命令,比较它们的执行结果。 Repl 实发工资 with 基本工资+津贴-扣款

Repl 实发工资 with 基本工资+津贴-扣款 for 职称=\讲师\Repl all 实发工资 with 基本工资+津贴-扣款 4.完成下列删除与恢复的命令。 (1)删除所有男教师的记录

(2)在删除所有男教师的记录的前提下,除姓“林”的外,恢复所有男教师的记录 (3)在删除所有男教师的记录的前提下,除姓“陈”的助讲外,恢复所有男教师的记录 5.对zg.dbf完成下排序、索引命令。 (1)按基本工资降序建立排序文件szg1.dbf (2)按基本工资建立单项索引,文件名为izg1.idx (3)按基本工资建立结构复合索引文件,按降序索引

(4)按基本工资建立独立复合索引文件,索引标识为jbgz,按降序索引,文件名为zgd1.cdx (5)按基本工资升序,基本工资相同再按出生年月建立索引文件,文件名为zgd2.cdx (6)分别按姓名、职称、出生日期建立结构复合索引文件,索引标识分别为XM、ZC、BIRTHDAY。

(7)打开前面所建的所有索引文件,设置结构复合索引文件为主控索引文件,设置XM为主控索引。 6.查找与统计。 (1)查找林一凡 (2)查找姓王的人

(3)查找工资是820.00的记录

(4)查找职工号为3002姓名为丁强的记录 (5)查找66年8月4日出生,职称为副教授的记录 (6)统计男教师与女教师的人数 (7)统计女教师的实发工资、津贴总和 (8)求男教师的平均基本工资

(9)计算平均基本工资、平均津贴、最高基本工资和最少基本工资 (10)按职称进行基本工资的汇总,汇总结果写入表zchz.dbf

3

参考答案

二、选择题

1、B 2、B 3、D 4、C 5、B 6、B 7、B 8、B 9、A 10、C 11、B 三、上机题

1.建立表与复制表操作:

(1)用表设计器建立表zg.dbf,步骤详见4.1.2建立表结构。 (2)修改zg.dbf表结构,步骤详见4.2.1 表结构的修改。 (3)将zg.dbf的表结构复制到新表zg1.dbf中。

USE ZG

COPY STRU TO ZG1

(4)将zg.dbf 中的所有男教师的记录都复制到zg2.dbf中。

USE ZG

COPY TO ZG2 FOR 性别 2.写出下列显示表记录的命令。 (1)显示zg.dbf中所有的讲师

USE ZG

LIST FOR 职称=“讲师” (2)显示所有女教师的姓名

LIST 姓名 FOR 性别=.F.(或 LIST 姓名 FOR !性别 ) (3)显示70年后出生的教师

LIST FOR 出生日期>{^1970/01/01} 或 LIST FOR YEAR(出生日期)>1970 (4)显示第三条记录的内容 LIST RECO 3

(5)显示前三条男教师的姓名,出生日期,职称 GO TOP

LIST NEXT 3 FOR 性别 FIELDS 姓名,出生日期,职称 (6)从第3条记录开始显示到末尾记录

GO 3 LIST REST

(7)显示所有男教授的姓名、年龄、基本工资

LIST 姓名,年龄,基本工资 FOR 性别 AND 职称=\教授\(8)显示所有男性教授或副教授

LIST FOR 性别 AND (职称=\教授\职称=\副教授\(9)显示所有姓林的教师

命令一:LIST FOR LEFT(姓名,2)=\林\命令二:LIST FOR SUBSTR(姓名,1,2)=\林\

4

命令三:LIST FOR 姓名=\林\(10)显示姓名中有“林”字的记录。

LIST FOR \林\姓名 3.修改命令

(1)计算实发工资字段的值,实发工资=基本工资+津贴-扣款。 REPL ALL 实发工资 WITH 基本工资+津贴-扣款

(2)在实发工资为0的情况下,分别执行下列三条命令,比较它们的执行结果。

REPL 实发工资 WITH 基本工资+津贴-扣款

REPL 实发工资 WITH 基本工资+津贴-扣款 FOR 职称=\讲师\REPL ALL 实发工资 WITH 基本工资+津贴-扣款 4.完成下列删除与恢复的命令 (1)删除所有男教师的记录

DELE FOR 性别

(2)在删除所有男教师的记录的前提下,除姓“林”的外,恢复所有男教师的记录 RECA FOR !(SUBSTR(姓名,1,2)=\林\

(3)在删除所有男教师的记录的前提下,除姓“陈”的助讲外,恢复所有男教师的记录 RECA FOR !(SUBSTR(姓名,1,2)=\陈\职称=\助教\5.对zg.dbf完成下排序、索引命令

(1)按基本工资降序建立排序文件szg1.dbf

SORT ON 基本工资/D TO SZG1

(2)按基本工资降序建立单项索引,文件名为izg1.idx

INDEX ON -基本工资 TO IZG1

(3)按基本工资建立结构复合索引文件,按降序索引 INDEX ON 基本工资 TAG GZ DESC

(4)按基本工资建立独立复合索引文件的降序,索引标识为jbgz,文件名为zgd1.cdx INDEX ON 基本工资 DESC TAG JBGZ OF ZGD1

(5)按基本工资升序,基本工资相同再按出生年月建立索引文件,文件名为zgd2.cdx USE ZG

INDEX ON STR(基本工资,6,2)+DTOC(出生日期) TAG GZCS OF ZGD2

(6)分别按姓名、职称、出生日期建立结构复合索引文件,索引标识分别为XM、ZC、BIRTHDAY。 USE ZG1

INDEX ON 姓名 TAG XM INDEX ON 职称 TAG ZC

INDEX ON 出生日期 TAG BIRTHDAY

(7)打开前面所建的所有索引文件,设置结构复合索引文件为主控索引文件,设置XM为主控索引。

5

SET INDEX TO IZG1, ZGD1,ZGD2 ORDER TAG XM 或 SET INDEX TO IZG1, ZGD1,ZGD2 SET ORDER TO TAG XM 6.查找与统计 (1)查找林一凡

USE ZG

SET INDEX TO XM FIND 林一凡 SEEK \林一凡\(2)查找姓王的人 FIND 王

SEEK \王\

(3)查找工资是820.00的记录

INDEX ON 基本工资 TAG SALARY FIND 820 或SEEK 820

(4)查找职工号为3002叫丁强的记录

INDEX ON职工号+姓名 TAG GHXM FIND 3002丁强 或 SEEK \丁强\(5)查找66年8月4日出生的副教授 INDEX ON DTOC(出生日期)+职称 TO BZC

SEEK \副教授\(6)统计男教师与女教师的人数

COUNT FOR 性别 TO X1 COUNT FOR !性别 TO X2 (7)统计女教师的实发工资、津贴总和

SUM 实发工资,津贴 FOR !性别 TO Y1,Y2 (8)求男教师的平均基本工资 AVERAGE 基本工资 FOR 性别

(9)计算平均基本工资、平均津贴、最高基本工资和最少基本工资

CALC AVG(基本工资),AVG(奖金),MAX(基本工资),MIN(基本工资) (10)按职称进行基本工资的汇总,汇总结果写入表zchz.dbf

SET ORDER TO TAG ZC

TOTAL ON 职称 TO ZCHZ FIELDS 基本工资 USE ZCHZ LIST

注意:在zchz.dbf中只有4条记录。

6

本文来源:https://www.bwwdw.com/article/fiq5.html

Top