Vfp复习样题

更新时间:2024-01-31 00:11:01 阅读量: 教育文库 文档下载

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

Vfp复习样题

一.单项选择题。

1.Visual Foxpro 关系数据库系统能够实现的三种基本关系操作是( );

A)排序、查找、索引

B)选择、投影、连接

C)建库、录入、复制 D)显示、统计、排序 2.VISUAL FOXPRO数据库管理系统支持的数据模型是( );

A)层次型 C)关系型

B)网状型 D)共享型 B)记录

D)数据表文件

3.关系模型的一个关系可用一张二维表表示,它相应于Visual Foxpro 中的一个( );

A)数据库文件 C)字段

4.在Visual Foxpro 数据库管理系统中,备注文件的扩展名是( ) ; A).TXT B).FPT C).DBF D).MEM 5.在VISUAL FOXPRO数据库管理系统中,内存变量文件的扩展名是( ) ; A).TXT B).DBC C).DBF D).MEM

6. 内存变量与字段变量都有5种数据类型,而内存变量特有的数据类型是( ) A)数组型 B)全局型 C)局部型 D)屏幕型 7.在Visual Foxpro 数据库管理系统中依存储方式不同可将使用的变量类型分为( ); A)数据变量与字段变量 B)字段变量和内存变量 C)关系变量和数据变量 D)内存变量和关系变量 8.在Visual Foxpro 中字段变量的数据类型,?可以是字符型(C)、数值型(N)、日期型(D)、逻辑型(L)、( ) 及通用型;

A)全局型(PUB) C)备注型(M)

B)局部型(PRI) D)屏幕型(S)

9.在下述VISUAL FOXPRO 表达式中,结果总是逻辑值的表达式为( );

A)字符表达式 B)算术表达式 C)关系表达式 D)日期表达式

10.当相应的数据库文件已经打开,执行 LOCA FOR 职称=”工程师” 命令后,要使记录指针指向下一条职称为”工程师”的记录,应使用的命令是:( );

A)CONTINUE C)SKIP

B)FIND 工程师

D)LOCA FOR 职称=”工程师”

11.设变量:工资=580、职称=\讲师\、性别=\男\;则结果为假的逻辑表达式是( );

A)工资>550.AND.职称=\助教\OR.职称=\讲师\B)性别=\女\OR.职称=\助教\

C)工资>500.and.职称=\讲师\and.性别=\男\D)工资=580.and.(职称=\教授\or.性别=\男\

12.将\计算机\这三个汉字作为字符串常量,在Visual Foxpro 中可以表示为( );

A){计算机}

B) (计算机)

C)计算机 D)\计算机\

13.如果要将内存变量MX的类型设置为D型,那么给变量MX赋值的方法应是( ); A)MX=01/05/30 B)MX=”01/05/30” C)MX=DTOC(01/05/30) D)MX=CTOD(”01/05/30”)

14.假定x=2,y=5.执行下列运算后,能够得到数值型结果的是( );

A) ? x=y-3 B)? y-3=x

C) x=y D)x+3=y

15. 假定已经执行了正确命令x=\再执行命令 ? x ,屏幕将显示( ) A)30 B)28+2 C)\D)30.00 16. 当VISUAL FOXPRO数据库管理系统执行SET EXACT ON 后,关系表达式\的值是( )

A) 0 B).t. C).f. D)错误

17.设数据库文件已经打开,其中有字段“已婚”为逻辑型,要显示所有未婚者,应使用命令( );

A)LIST FOR NOT 已婚=”已婚” B)LIST FOR NOT 已婚 C)LIST FOR 已婚<>”已婚” D)LIST FOR 已婚=”.T.”

18. 当前数据库文件记录如下:

Record# 姓名 性别 年龄 1 王可斌 女 21 2 李大贵 男 24 3 赵一平 女 20 4 孙克 女 23 5 钱红 男 21

设第二条记录为当前记录,执行命令LIST REST FOR 性别=\女\后,所显示记录的序号是( )

A)1,3,4 B)3,4,5 C)1,2,3,4 D)3,4

19. 当VISUAL FOXPRO数据库管理系统执行SET SAFE OFF 的作用是:( );

A)对同名文件不覆盖 B)对同名文件直接覆盖

C)产生一个新名的文件代替原文件 D)对执行程序不保护

20. 当记录指针指向末记录时,文件结束测试函数EOF()返回值是( ) A)错误标识 C).f.

B)末记录的记录号 D).t.

21.操作的数据库中有字段:姓名(C型)、出生日期(D型)、工资(N型),要显示当前记录的姓名、出生日期和工资,可使用的正确命令是:( );

A)?姓名+出生日期+工资

B)?姓名+DTOC(出生日期)+STR(工资,6) C)?VAL(姓名)+VAL(出生日期)+工资

D)?姓名+出生日期+STR(工资,6) 22. 函数LEN(\的值是( );

A)1 B)6 C)7 D)3

23.若内存变量x=\FIRST\显示该内存变量的值,应使用的命令是( ); A)DISPLAY X B)? X C)? &X D)SAY X 25.函数LEN(\ABC\ABC\的值是( );

A)0 B)3 C)6 D)7

26.下列说法中,不正确的是( );

A)在一个工作区总能打开一个表文件 B)在一个工作区可能打不开一个表文件

C)同一时刻,一个数据表只能在一个工作区开启

D)不同时刻,一个数据表可能在不同工作区开启

27.在定义Visual Foxpro 的数据库中表文件的结构,其逻辑型、日期型、备注型字段的宽度分别固定为( );

A)3、8、4

C)1、8、任意 命令是:( );

A)COUNT 工程师 TO ZRS

B)SUM FOR 职称=”工程师” TO ZRS C)COUNT TO ZRS FOR 职称=”工程师” D)AVERAGE TO ZRS FOR 职称=”工程师”

B)1、6、4 D)1、8、4

28.计算表中所有职称字段值为“工程师”的总人数,并将结果赋予变量ZRS,可使用的

29.在VISUAL FOXPRO 中,要从外存储器中删除一个数据表文件x.dbf,使用的命令是:( ); A)DELE X.DBF B)PACK X.DBF C)ZAP D)DELE FILE X.DBF

要从数据表文件(假设此表已经处于打开状态)产生一个扩展名为.TXT的文本文件,应当使用命令( )

A)MODIFY FILE B)CREATE C)COPY D)MODIFY COMMAND 30.若打开的数据库共有20条记录,?执行了GO 5命令,再执行不带任何选项的LIST后,记录指针指向的是( ); A)文件头

B)文件尾

C)第5号记录 D)第20号记录

31.要生成数据表STD2.DBF,要求其结构与现有数据表STD1.DBF相同,但其记录不同,其建立的方法是( );

A)USE STD1 COPY TO STD2

B)USE STD1 COPY STRU TO STD2

C)COPY FILE STD1.DBF TO STD2.DBF

D)CREATE STD2 FROM STD1

32.下面的命令中,不是专用的执行查询的命令是( ); A)LOCATE B)FIND C)SEEK D)BROWSE

33.在VFP中要对数据表文件AB.DBF进行更名的操作应使用的命令是( );

A)RENA C)ZAP

B)REPLACE

D)MODIFY STRUCTURE

34.将A盘根目录下的STD.PRG文件复制到C盘的\\DB子目录,应使用( ) A)COPY A:STD.PRG C:\\DB

B)COPY FILE A:STD.PRG TO C:DB\\STD.PRG C)COPY A:STD.PRG TO C:\\DB\\STD.PRG

D)COPY TO C:\\DB\\STD.PRG

35.要对所有职称字段值为“工程师”的记录之工资字段值加150元,应使用命令( ) A)CHANGE 工资 WITH 工资+150 FOR 职称=\工程师\ B)REPLACE 工资 WITH 职称=\工程师\

C)CHANGE ALL 工资 WITH 工资+150 FOR 职称=\工程师\ D)REPLACE ALL 工资 WITH 工资+150 FOR 职称=\工程师\

36.使工资表GZ.?DBF按降序排列,要建立一个新表文件PXK.DBF,应使用命令( ) A)SORT ON 工资/D TO PXK B)SET INDEX ON -工资 TO PXK

C)INDEX ON -工资 TO PXK D)SORT ON 工资 TO PXK

二.填空题

1.已知有数据表sb.dbf (编号 C(5),名称 C(6),启用日期 D,价格 N(9,2),部

门 C(2),主要设备 L,备注 M,商标 G)及数据表BMDM.DBF(代码 C(2),名称 C(6)),

欲用SQL –Server命令查询车间使用的设备或价格小于10万元的设备的部门名,查询结果按启用日期从小到大排列。

SELECT SB.名称, SB.启用日期,SB.价格,BMDM.名称; FROM SB INNER JOIN BMDM ON SB.部门=BMDM.代码;

WHERE SB.价格>=100000 OR SB.部门>’12’ ORDER BY SB.启用日期

2.设当前打开的数据文件BOOK.DBF中有“进馆日期”字段(D型),要求显示2005年进馆的图书记录,应输入的命令为: 2. 下列子程序用于逐条显示职称为教授的教师全部记录,请填空补充完整. USE JSK

DO WHILE .NOT. EOF() CLEAR

IF 职称= \教授\

DISP

WAIT \按任意键继续!\ WINDOW

ENDIF

ENDDO USE

RETURN

3. 以下命令,是把数据文件STU.DBF中数值型字段“笔试成绩”和“上机成绩”均及格

(大于等于60分)记录的逻辑字段“合格否”初始值一律修改为逻辑真值。 USE STU

REPL ALL WITH FOR 4. 已建好两个数据库:价格库JGK.DBF 和销售库XSL.DBF,其中价格库JGK.DBF中

“商品名、单价”两个字段,销售库XSL.DBF中有“商品名、销售量、销售额”三个字段,两个数据库中都有若干记录。请按要求在下列程序段中填上适当的语句。 SELE 1 USE XSL SELE 2

*下句为打开JGK.DBF

INDE ON 商品名 TO SPM_1 SELE 1

*下句以“商品名”为关键字建立两个工作区的关联

*下句将XSL.DBF 中所有“销售额”用“销售量”和JGK.DBF中的“单价”的乘积替换

REPL ALL 销售额 CLOSE ALL

5. 设一学生数据库文件stu.dbf中有如下字段:学号、姓名、性别等,现利用过程文件编

程序,统计该库文件中女生人数,并逐个显示男生的情况。 *TYPE P1.PRG SET TALK OFF USE STU SET DO SUB1

CLOSE ALL SET TALK ON RETU

* 设过程文件名为:SUB.PRG,其中有过程sub1

PROCEDURE SUB1 S=0

DO WHILE !EOF() IF 性别=”女”

S=S+1

ELSE ENDIF

ENDDO

? ”女生人数为:” ,S RETURN

6. 设一学生数据库文件stu.dbf中有如下字段:学号、姓名、性别等,现利用过程文件编

程序,统计该库文件中男生人数,并逐个显示女生的情况。 *TYPE P1.PRG SET TALK OFF USE STU SET DO SUB1

CLOSE ALL SET TALK ON RETU

* 过程文件名为:SUB.PRG 7.

PROCEDURE SUB1 S=0

DO WHILE !EOF() IF 性别=”男”

S=S+1 ELSE ENDIF

ENDDO

? ”男生人数为:” ,S RETURN

已建好两个数据库:价格库JGK.DBF 和销售库XSL.DBF,其中价格库JGK.DBF中“商品名、单价”两个字段,销售库XSL.DBF中有“商品名、销售量、销售额”三个字段,两个数据库中都有若干记录。请按要求在下列程序段中填上适当的语句。 SELE 1 USE XSL SELE 2

INDE ON 商品名 TO SPM_1 SELE 1

REPL ALL 销售额 CLOSE ALL

8. 计算机等级考试考生数据库为STUDENT.DBF.笔试和上机成绩已别录入其中的\笔试\和\上机\字段(皆为N型)中,但其\等级\字段(C型)尚无数据.凡笔试和上机两次考试均达到80分以上者,应在等级字段中填入\优秀\填空,以使如下程序实现此功能. SET TALK OFF USE STUDENT

DO WHILE .NOT. EOF()

IF 笔试>=80 .AND. 上机>= 80

ENDIF SKIP ENDDO

SET TALK ON CANCEL

9. 已有学生数据库STUDENT.?DBF,其中字段:编号/N/2,且其字段值从1开始连续排列.欲按编号\、9、17、25.?.. \的规律抽取学生参加比赛,并在屏幕上显示参赛学生的编号.请填空完成可实现此功能的如下程序: SET TALK OFF

DO WHILE .NOT. EOF() IF MOD( ) ? 编号 ENDIF ENDDO USE

SET TALK ON CANCEL

三.读程序,写出程序运行结果:

1.TYPE E1.PRG

SET TALK OFF A=3

B=5

DO PP WITH 2*A, B ? A,B

SET TALK ON

TYPE PP.PRG PARAMETER X,Y CLEAR S=X*Y

? “S=”+STR(S,3) RETURN

RETURN

2.有如下程序段:

SET TALK OFF CLEA M=1

N=1

DO WHILE M<=10

M=M+1

IF MOD(M,3)=0 N=N+M ENDIF

ENDDO

? \ SET TALK ON RETURN

3. 执行如下命令序列:

已知执行命令:select * from sp 之后,有如下显示结果:

若执行如下命令: index on 货号 to hh

list 货号, 品名 for 生产单位='上海' 则最后一条命令显示的结果为: 记录号 货号 品名

7 SY-701 电饭锅

2 YU-120 彩电

4.有如下职工档案数据库文件ZGDA.DBF,其内容如下:

编号 姓名 职称 性别 基本工资 其它工资 扣除 实发工资

1001 张三 讲师 男 800.00 200.00 1002 李四 教授 女 1200.00 500.00 1003 王五 副教授 女 1000.00 200.00 1004 赵六 助教 男 600.00 150.00 1005 周九 研究员 男 1250.00 400.00 执行如下程序: SET TALK OFF CLEAR

SELE 1 USE ZGDA

REPL ALL 实发工资 with 基本工资+其它工资-扣除 T1=0.00 T2=0.00 GO TOP SCAN

IF 性别 = \男\ T1=T1+实发工资 ELSE

T2=T2+实发工资 ENDIF

150 300 200 100 300

ENDSCAN ? T1 ? T2

SET TALK ON RETURN

** 请在答题纸上列出本程序的运行结果。

四.编写程序题

1. 今有以下两个数据库文件:

A)人事数据库RS.DBF,其中包含如下字段: 编号(C/4),姓名(C/8),性别(C/2),出生日期(D/8),文化程度(C/8),职称

(C/6); B)工资数据库GZ.DBF,其中包含如下字段:

编号(C/4),姓名(C/8),基本工资(N/7/2),活工资(N/7/2),补贴(N/7/2),

扣款(N/7/2),实发工资(N/7/2)。

编程序P1.PRG。要求可按“姓名”字段,反复查询任何一个人的姓名、文化程度

和基本工资,并按如下格式输出结果。当用户输入的姓名为空时,程序退出。

姓名:XXXX 文化程度:XXXX

参考答案: TYPE P1.PRG SET TALK OFF SET SAFE OFF

SELE 1

USE RS.DBF

INDE ON 编号 TAG BH SELE 2 USE GZ

SET RELA TO 编号 INTO A DO WHILE .T.

CLEA

ACCE \请输入要查询的职工姓名: (直接按下回车可退出程序)\ TO xm IF LEN(ALLT(XM))=0 EXIT ENDIF

LOCA FOR 姓名=xm IF FOUND( )

CLEA

? \姓名: \

? \文化程度:\文化程度

?? \基本工资:\基本工资,7,2)

WAIT \看清楚后,按任意键继续\ WIND

基本工资:XXXX.XX

ELSE WAIT \输入可能有误,或查无此人. 按下任意键可以重新查找\ ENDIF ENDDO

CLOS ALL SET SAFE ON SET TALK ON RETU

2. 今有以下两个数据库文件: A)人事数据库RS.DBF,其中包含如下字段:

编号(C/4),姓名(C/8),性别(C/2),出生日期(D/8),文化程度(C/8),职称(C/6); B)工资数据库GZ.DBF,其中包含如下字段:

编号(C/4),姓名(C/8),基本工资(N/7/2),活工资(N/7/2),补贴(N/7/2),编写程序P1.PRG 完成如下功能:

统计现在实足年龄在30~50岁之间,职称为副教授或教授的人数,并按如下格式显示这些人的姓名,性别和职称:

青年高级职称简表

姓名

性别 职称 基本工资 ? ? ? ? ? ? ? ?

合计:×× (人)

基本工资总额:×××× (元)

参考答案: TYPE P1.PRG SET TALK OFF SET SAFE OFF

SELE 1 USE GZ

INDE ON 编号 TAG BH SELE 2

USE RS.DBF

SET RELA TO 编号 INTO A N=0

S=0

? “ 姓名

性别

职称

基本工资 “

扣款(N/7/2),实发工资(N/7/2)。

SCAN FOR ((DATE()-出生日期)/365<=50 AND (DATE()-出生日期)/365>=30 ) AND AT(“教授”, 职称)<>0

? 姓名, 性别, 职称, a.基本工资 N=N+1

S=S+ A.基本工资

ENDS

? “合计:”+str(n,2)+”(人)”

?” 基本工资总额:” +STR(S,8,2)+”(元)”

CLOS ALL SET SAFE ON SET TALK ON RETU

3. 一书亭的微机管理系统有二个表:

1) 营业员表(表文件名:MD.DBF) 2) 日流水账表(表文件名:LSZ.DBF) 代号 姓名 金额 代号 书名 单价 册数 金额 9301 张积 9301 BASIC语言 4.50 25 9302 欧阳立春 9302 数据库技术 6.30 15 9303 李莉 9303 操作系统 8.35 16 9304 邹自容 9304 汇编语言 7.60 14 9305 易赛男 9305 BASIC语言 4.50 20 9302 操作系统 8.35 17 试编制一个命令文件(命令文件名为pROG15.PRG),要求如下: 1) 计算每位营业员每种书一天的营业额(册数*单价),并记入LSZ库中“金额”字段中: 2) 统计并显示每位营业员一天的总营业额,营业员一天的营业额记入MD库“金额”字段中:

3) 显示时可选择以营业员代号为序和以营业额多少为序,显示格式如下: 代号 姓名 册数 营业额 9301 张积 25 112.50 . . . . . . . . 合计

注:显示的册数是营业员一天售书的合计册数。

请编写程序完成:要求在屏幕上输入任意自然数

1*2+2*3+?+(N-1)*N

该程序能反复运行,直到用户不想继续为止,自动结束程序的运行.

请完成表单设计,完成自然数N的阶乘计算:

要求在左键单击命令按钮”计算”后,在文本框中输出计算结果;在左键单击命令按钮”退出”后,能释放当前表单.

课本已经给出答案部分的习题

CLOS ALL SET SAFE ON SET TALK ON RETU

3. 一书亭的微机管理系统有二个表:

1) 营业员表(表文件名:MD.DBF) 2) 日流水账表(表文件名:LSZ.DBF) 代号 姓名 金额 代号 书名 单价 册数 金额 9301 张积 9301 BASIC语言 4.50 25 9302 欧阳立春 9302 数据库技术 6.30 15 9303 李莉 9303 操作系统 8.35 16 9304 邹自容 9304 汇编语言 7.60 14 9305 易赛男 9305 BASIC语言 4.50 20 9302 操作系统 8.35 17 试编制一个命令文件(命令文件名为pROG15.PRG),要求如下: 1) 计算每位营业员每种书一天的营业额(册数*单价),并记入LSZ库中“金额”字段中: 2) 统计并显示每位营业员一天的总营业额,营业员一天的营业额记入MD库“金额”字段中:

3) 显示时可选择以营业员代号为序和以营业额多少为序,显示格式如下: 代号 姓名 册数 营业额 9301 张积 25 112.50 . . . . . . . . 合计

注:显示的册数是营业员一天售书的合计册数。

请编写程序完成:要求在屏幕上输入任意自然数

1*2+2*3+?+(N-1)*N

该程序能反复运行,直到用户不想继续为止,自动结束程序的运行.

请完成表单设计,完成自然数N的阶乘计算:

要求在左键单击命令按钮”计算”后,在文本框中输出计算结果;在左键单击命令按钮”退出”后,能释放当前表单.

课本已经给出答案部分的习题

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

Top