计算机等级考试二级VFP习题及答案:第三章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机等级考试⼆级VFP习题及答案:第三章
⼀、思考题
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 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)=“王”
E职⼯
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
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)显⽰所有姓林的教师
(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
参考答案
⼆、选择题
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
LIST NEXT 3 FOR 性别 FIELDS 姓名,出⽣⽇期,职称
(6)从第3条记录开始显⽰到末尾记录
GO 3
LIST REST
(7)显⽰所有男教授的姓名、年龄、基本⼯资
LIST 姓名,年龄,基本⼯资 FOR 性别 AND 职称="教授"
(8)显⽰所有男性教授或副教授
LIST FOR 性别 AND (职称="教授" OR 职称="副教授")
(9)显⽰所有姓林的教师
命令⼀:LIST FOR LEFT(姓名,2)="林"
命令⼆:LIST FOR SUBSTR(姓名,1,2)="林"
命令三: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)="陈" AND 职称="助教")
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为主控索引。
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 "3002"+"丁强"
(5)查找66年8⽉4⽇出⽣的副教授
INDEX ON DTOC(出⽣⽇期)+职称 TO BZC
SEEK "08/04/66"+"副教授"
(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中只有四条记录。