
FP试卷六及答案 成都电子机械高等专科学校 2001/2002学年2学期(Visual FoxPro》试卷(B卷) 考试方法闭整适用班级00521,00522、00523、00531、00532共7页 考生注意:请将所有答案写在答题纸上,写在试卷上无效。 一,判断题(1分/题。共15分,对面√,错面×》 1,可向菜单弱统中添加清理代码来跳过菜单及菜单项。 2、一个内存变量只在它建立的级和以下的更深的级是“可见”的。 3、变量若为全局变量,则可川于所有过程和函数。 4,利用调试器可限馨代码、挂起程序的执行并直看存储的值。 5、从一个项目中,可以建立应用程序文作(pp)或者可执行文件(e©). 6、报表包括两个基本组成部分:数据源和布局, 7,报表设计中的布局文件保存了要输出的表中字段的值。 8、报表授计中的字段控件可用于表示出现在报表中的字符。 9.DISF孔4Y在VFP中与DISPLY命令等效. 10、视图兼有表和查询的特点。 11、VFP中的麦量分内存变量和字段变量。 12、VF配刚开始工作时,系统默认选择为第一号工作区。 13,VF甲中的注释可为:NOT配引幸或 14、表阿的关系分三种:一对一关系、一对多关系和多对多关系。 15,7,若要同时使用多个表,就要使用多个工作区。 二.选择题(每个选择1.5分,共30分) 1,统计女生人数并将结果存放于变量X中的命令是() (A)COUNT FOR,NOT.性别=“男”T0X (B)C0NTFR(性别“女)=.I.T0X (C)5IFOR(性别O°男门=.T.T0X (D)MF0R性别”女”TDX 2在已打开的表中,要水久除当输记录位置开始的10条记录,可用() 》先执行回ETE NEXT 10金令,后用PCK命令
VFP 试卷六及答案 成都电子机械高等专科学校 2001/2002 学年 2 学期 《Visual FoxPro》试卷 (B 卷) 考试方法 闭卷 适用班级 00521、00522、00523、00531、00532 共 7 页 考生注意:请将所有答案写在答题纸上,写在试卷上无效。 一. 判断题(1 分/题,共 15 分,对画√,错画×) 1、可向菜单系统中添加清理代码来跳过菜单及菜单项。 2、一个内存变量只在它建立的级和以下的更深的级是“可见”的。 3、变量若为全局变量,则可用于所有过程和函数。 4、利用调试器可跟踪代码、挂起程序的执行并查看存储的值。 5、从一个项目中,可以建立应用程序文件 (.app) 或者可执行文件 (.exe)。 6、报表包括两个基本组成部分:数据源和布局。 7、报表设计中的布局文件保存了要输出的表中字段的值。 8、报表设计中的字段控件可用于表示出现在报表中的字符。 9. DISPLAY 在 VFP 中与 DISPLY 命令等效。 10、视图兼有表和查询的特点。 11、VFP 中的变量分内存变量和字段变量。 12、VFP 刚开始工作时,系统默认选择为第一号工作区。 13、VFP 中的注释可为:NOTE|* 或 && 14、表间的关系分三种:一对一关系、一对多关系和多对多关系。 15、7.若要同时使用多个表,就要使用多个工作区。 二. 选择题(每个选择 1.5 分,共 30 分) 1.统计女生人数并将结果存放于变量 X 中的命令是( ) (A) COUNT FOR .NOT. 性别="男" TO X (B) COUNT FOR ( 性别="女")=.T. TO X (C) SUM FOR ( 性别<>"男")=.T. TO X (D) SUM FOR 性别="女" TO X 2. 在已打开的表中,要永久删除当前记录位置开始的 10 条记录,可用( ) (A) 先执行 DELETE NEXT 10 命令,后用 PACK 命令

B)先执行DELETE RE0ORD10命◆,后用PACK命令 (C)先执行DELETE FOR REC>10命令,后用PCK命令 (D)ZAP NEXT 10 &从表c知st0r中提取所有记录生成查询,并将查询结果存放于表0 ursor的SgL 命令为(》 (A)SELECT FROM custorer INTO CURSOR MyCursor (B)SELECT FROM custoner INTO TABLE MyCursor (C)SELECT ALL.FROM custoner INTO TABLE MyCursor (D)CREATE SOL VIEN MyCursor AS SELECT FROM custoner 4、对学生成锁数据岸文件按总分//62降序、姓名/C/8升序素引。应当使用命令 A)INTE置T0ABN总分,姓名 B卧INET0AB度GN一总分,姓名 C)INE红T0ABN5TR(一总分,5,1)+姓名 D)INDEX T0 BC ON STR(1000一总分)+姓名 点按照数据库的数据核型分类,FP属于() 》层次型 ⑧关系型 C)网状型 )混合型 6、命令sECT0的功能是 A》选择区号最小的空闲工作区 卧选择区号最大的空闲工作区 CO这择当前工作区的区号加1的工作区 D)随机遗择一个工作区的区号 7、设积工数据库和按”工作日期”索引的索引文件已经打开,要把记录指针定位到工作 刚好满30天的职工,应当使用命令 A)FIND DATE ()-30 B)SEEK DATE()30 C)FIND DATE ()30 D)SEEK DATE()-30 8,下列概念中,正确的是()
(B) 先执行 DELETE RECORD 10 命令,后用 PACK 命令 (C)先执行 DELETE FOR RECORD> 10 命令,后用 PACK 命令 (D)ZAP NEXT 10 3.从表 customer 中提取所有记录生成查询,并将查询结果存放于表 MyCursor 的 SQL 命令为( ) (A) SELECT * FROM customer INTO CURSOR MyCursor (B) SELECT * FROM customer INTO TABLE MyCursor (C) SELECT ALL FROM customer INTO TABLE MyCursor (D) CREATE SQL VIEW MyCursor AS SELECT * FROM customer 4、对学生成绩数据库文件按总分/N/6.2 降序、姓名/C/8 升序索引。应当使用命令 A)INDEX TO ABC ON 总分,姓名 B)INDEX TO ABC ON -总分,姓名 C)INDEX TO ABC ON STR(-总分,5,1)﹢姓名 D)INDEX TO ABC ON STR(1000-总分) ﹢姓名 5.按照数据库的数据模型分类,VFP 属于( ) (A) 层次型 (B) 关系型 (C) 网状型 (D) 混合型 6、命令 SELECT 0 的功能是 A)选择区号最小的空闲工作区 B)选择区号最大的空闲工作区 C)选择当前工作区的区号加 1 的工作区 D)随机选择一个工作区的区号 7、设职工数据库和按"工作日期"索引的索引文件已经打开,要把记录指针定位到工作 刚好满 30 天的职工,应当使用命令 A)FIND DATE ( )-30 B)SEEK DATE( )30 C)FIND DATE ( )30 D)SEEK DATE( )-30 8、下列概念中,正确的是( )

人在一个工作区中只能打开一个表文件,打开新的表文件后,里米所打开的表文作就自 动关闭 B一个表文件可以在不同的工作区同时打开 C一个工作区中可以同时打开多个表文作 DJ0N命令生成的表文件可以与连接文件在一个工作区同时打开 9,在F甲中,可以使用OND()函数米检测查山是否成功的命令包括 A)LIST,FIND、SEEK E)FIND、SEEK、LOCATE C)FIND、DISPLAY、.SEE区D)LIST、SEEK,LOCATE 10,在下面FoxBASE命令中,不能修改数据记录的命令是 ABN清SEB)EDIT C)CHANGE D)MODIFY 11,设数据库文件及其需引文件己打开,为了确保指针定位在物理记录号为1的记录上, 应该使用命令 A)GO TOP B)GO BOP (C)SKIP 1 D)GO 1 2、设职工表文件己经打开,其中有工资字段,煲把指针定位在第一个工货大于20 元的记承上,应使用命◆ A)FIND F0R工货>620B)S3摆工隆>820 C)L0 CATE FOR工资>620D)F1ND工资>620 13,在幸帐套程序结构中,可以使用L00P和XIT语句的基本程序结构是()。 A)TET一ENDTEXT B)D0阳ILE一ENDO C)IF-ENDIF D)DO CASE-ENDCASE 14、设表文件已经在当前工作区打开,有关索引文件已经建立,要打开该表文件的某素 引文件,应该使用命令 A)SET INDEX TO(索引文件名) B卧OPEN INDEX《素引文件名》 C)USE INDEX(需引文件名> )必须与表文件一起打开 15,在以下关于素引的说明中,错误的是 A)索引可以提高查询速度B)索引可能降低更新速度 C)索明和排序具有不同的含复D)不能更新素引字段
A.在一个工作区中只能打开一个表文件,打开新的表文件后,原来所打开的表文件就自 动关闭 B.一个表文件可以在不同的工作区同时打开 C.一个工作区中可以同时打开多个表文件 D.JOIN 命令生成的表文件可以与连接文件在一个工作区同时打开 9、在 VFP 中,可以使用 FOUND( )函数来检测查询是否成功的命令包括 A)LIST、FIND、SEEK B)FIND、SEEK、LOCATE C)FIND、DISPLAY、SEEK D)LIST、SEEK、LOCATE 10、在下面 FoxBASE 命令中,不能修改数据记录的命令是 A)BROWSE B)EDIT C)CHANGE D)MODIFY 11、设数据库文件及其索引文件已打开,为了确保指针定位在物理记录号为 1 的记录上, 应该使用命令 A)GO TOP B)GO BOP() C)SKIP 1 D)GO 1 12、设职工表文件已经打开,其中有工资字段,要把指针定位在第一个工资大于 620 元的记录上,应使用命令 A)FIND FOR 工资>620 B)SEEK 工资>620 C)LOCATE FOR 工资>620 D)FIND 工资>620 13、在非嵌套程序结构中,可以使用 LOOP 和 EXIT 语句的基本程序结构是( )。 A)TEXT--ENDTEXT B)DO WHILE--ENDDO C)IF--ENDIF D)DO CASE--ENDCASE 14、设表文件已经在当前工作区打开,有关索引文件已经建立,要打开该表文件的某索 引文件,应该使用命令 A)SET INDEX TO B)OPEN INDEX C)USE INDEX D)必须与表文件一起打开 15、在以下关于索引的说明中,错误的是 A)索引可以提高查询速度 B)索引可能降低更新速度 C)索引和排序具有不同的含义 D)不能更新索引字段

16.函数LEN(CE(⑤)-SPACE(1)的返回值是() )错误信息 )17 C)6 0)4 17.某表文件中有日期型字段“出生日期°,设N01/01/80,下列命令正确的是(》 (A)L0CATF0R出生日期='01/01/80 BL0CATE发出生日期=N (C)L0 CATE FOR DT0C(出生日期-W D)L0 CATE FOR DT0C(出生日-CTON) 18,在图书数据库文件中,书号字段为字符型,要求将书号以字母D开头的所有图书记 录打上副除标记,应使用命令 A).ETE FOR“D'S书号 B)DELETE FOR SUBSTR(书号,1,1)="D C)DELETE FOR书号-D◆ D)DELETE FOR RIGHT(书号,I》-D 19表与相应索引文件已经打开,内存变量“李春”,执行时会产生逐辑情误的命令 是(). A)1.0 CATE FO限姓名-DB)FIND AXM C)SEEK X D》LOCATE POR姓名-=AXW 0、“计算机等级考试“这七个汉字作为字符串常量,在甲中,可表示为(》. A[计算机等级考试》B(计算机等级考试) C计算机等级考试D.“计算机等级考试 三.配序填空(每空3分,共2分) 1,设表S,那中有“学号,姓名、性别、出生日期,班级”等字段。程序完成根据 姓名透行的查询: set talk off use stu store space(6)【0xn index on学号toxh
16.函数 LEN(SPACE(5)-SPACE(1))的返回值是( ) (A) 错误信息 (B) 17 (C) 6 (D) 4 17.某表文件中有日期型字段"出生日期",设 N='01/01/80',下列命令正确的是( ) (A) LOCATE FOR 出生日期='01/01/80' (B) LOCATE FOR 出生日期=&N (C) LOCATE FOR DTOC(出生日期)=N (D) LOCATE FOR DTOC(出生日期)=CTOD(N) 18、在图书数据库文件中,书号字段为字符型,要求将书号以字母 D 开头的所有图书记 录打上删除标记,应使用命令 A)DELETE FOR "D"$书号 B)DELETE FOR SUBSTR (书号,1,1)="D" C)DELETE FOR 书号=D * D)DELETE FOR RIGHT (书号,1)="D" 19.表与相应索引文件已经打开,内存变量 XM="李春",执行时会产生逻辑错误的命令 是( )。 A)LOCATE FOR 姓名=XM B)FIND &XM C)SEEK XM D)LOCATE FOR 姓名=&XM 20、"计算机等级考试"这七个汉字作为字符串常量,在 VFP 中,可表示为( ). A.{计算机等级考试} B.(计算机等级考试) C.计算机等级考试 D."计算机等级考试" 三. 程序填空(每空 3 分,共 42 分) 1. 设表 STU.DBF 中有“学号、姓名、性别、出生日期、班级”等字段,程序完成根据 姓名进行的查询: set talk off use stu store space(6) to xm index on 学号 to xh

1 acc0pt“输入姓名:”tox国 locate for姓名=x■ 2 display else ?查无此人 endif a1t“继铁吗”t0yn if upper(yn)='N' exit else loop endif enddo use set talk off 2有12个结构完全相同的表01,02,.Y11,Y12,下列程序完成的功能是:顺 序打开每一个表并海览之, SET TALK OFF G=1 DO WHILE G=10 G='Y+一3 ENDCASE B8XOW
______ 1_______ accept "输入姓名:" to xm locate for 姓名=xm ______ 2_______ display else ?'查无此人' endif wait "继续吗?" to yn if upper(yn)='N' exit else loop endif enddo use set talk off 2.有 12 个结构完全相同的表 WY01,WY02,.......WY11,WY12,下列程序完成的功能是:顺 序打开每一个表并浏览之. SET TALK OFF G=1 DO WHILE G=10 GW='WY'+______ 3_______ ENDCASE USE______ 4_______ BROW

USE ENDDO RETU 3、一学生档案表ST.6F,其字段有:学号、姓名、专业、出生日期、入学成镜、 简历,表中己有数据。另有一学生成镜表0REDF。其字段有:学号,平均分,操行成镜, 表中己有数据。以下程序实现输入学号后根据平均分和操行成镜判断该学生的奖学金等级, 最后输出学号、姓名、奖学金等级。 SET TALK OFF SELE 1 USE STUDENT 6 USE SCORE INDEX0W学号TOXH SELE A 0CEPT”请输入学生学号”TDN0 SE注KND 2=8 9 DO CASE CSE平均分>-90.AND.ZX-"优 J戊”甲等“ CSE平均分>-80.AD.後ZX-"优”.0R.ZX-良) J戊J“乙等 CASE平均分>=75.ND.ZX-“优”.0R.ZX-“良") J戊=”丙等 OTHERWISE “无” ENDCASE
______ 5_______ USE ENDDO RETU 3、一学生档案表 STUDENT.DBF,其字段有:学号、姓名、专业、出生日期、入学成绩、 简历,表中已有数据。另有一学生成绩表 SCORE.DBF,其字段有:学号、平均分、操行成绩, 表中已有数据。以下程序实现输入学号后根据平均分和操行成绩判断该学生的奖学金等级, 最后输出学号、姓名、奖学金等级。 SET TALK OFF SELE 1 USE STUDENT ______ 6_______ USE SCORE INDEX ON 学号 TO XH SELE A ______ 7_______ ACCEPT "请输入学生学号" TO NO SEEK NO ZX=______8_______ ______9_______ DO CASE CASE 平均分>=90 .AND. &ZX="优" JXJ="甲等" CASE 平均分>=80 .AND. (&ZX="优".OR.&ZX="良") JXJ="乙等" CASE 平均分>=75 .AND. (&ZX="优".OR.&ZX="良") JXJ="丙等" OTHERWISE JXJ="无" ENDCASE

?“学号”,学号,“姓名”,姓名,“奖学金”,JX ENDIF CLOSE ALL. SE打TALK ON 4有以下5 TD.DBF表文件: Record:准考证号姓名性别笔试成绩上机成锁合格否 1101001刘林芬女7278.民 2101003林育成男8778.F 3101006张鸿宾男602.F 4101014柳林男9060,F. 5101016江小涛女566.R 44444 将STDF数据库中笔试成锁和上机成绩均及格的(大于等于0分)学生记录的合格香 字段修改为逻辑真,然后将合格的记录复制生成合格数据库瓜F。请对以下操作填空。 USE STD LIST EPLACE ALL.合格否 10FOR 11 00Py1T0G12 接下来对面.固F数据库建立索引,按笔试成境与上机成绩的总分升序,然后查询。请 对以下操作填空。 USE HG INDEX 13T0U FIND 150 ?姓名,笔试成镜。上机成领,笔试成绩+上机成镇 请回答1最后的?命令显示的内容是一14 四.编写程序(共13分) 假定表距RF中包含姓名和姓名缩写信息(字段有:FIRSTNA哑、1 ASTNAME, PERSON_ID)字段。当向表中增加一条记录时,输入姓名(即FIRSTNA妮和LASTN4WE》后: 则白动生成姓名缩写(即ES0NID)的值。如果表中已有相同的姓名缩写,则给姓名缩写 如一个数字。.例如:lichael Suyar国的增写为s,rgaret Sun的姓名增写与之相同
? "学号", 学号, "姓名", 姓名, "奖学金", JXJ ENDIF CLOSE ALL SET TALK ON 4.有以下 STD.DBF 表文件: Record# 准考证号 姓名 性别 笔试成绩 上机成绩 合格否 1 101001 刘林芬 女 72 78 .F. 2 101003 林育成 男 87 78 .F. 3 101006 张鸿宾 男 60 42 .F. 4 101014 柳林 男 90 60 .F. 5 101016 江小涛 女 56 66 .F. ...... 将 STD.DBF 数据库中笔试成绩和上机成绩均及格的(大于等于 60 分)学生记录的合格否 字段修改为逻辑真,然后将合格的记录复制生成合格数据库 HG.DBF。请对以下操作填空。 USE STD LIST REPLACE ALL 合格否______ 10_______FOR______ 11_______ COPY TO HG______ 12_______ 接下来对 HG.KBF 数据库建立索引,按笔试成绩与上机成绩的总分升序,然后查询。请 对以下操作填空。 USE HG INDEX ______ 13_______TO CHJ FIND 150 ?姓名,笔试成绩,上机成绩,笔试成绩+上机成绩 请回答:最后的 ?命令显示的内容是______ 14_______ 四. 编写程序(共 13 分) 假定表 MEMBER.DBF 中包含姓名和姓名缩写信息(字段有:FIRSTNAME、LASTNAME、 PERSON_ID)字段。当向表中增加一条记录时,输入姓名(即 FIRSTNAME 和 LASTNAME)后, 则自动生成姓名缩写(即 PERSON_ID)的值。如果表中已有相同的姓名缩写,则给姓名缩写 加一个数字。例如:Michael Suyama 的缩写为 MS, Margaret Sun 的姓名缩写与之相同

则馏写为s1。以后,Michelle Sa1th的姓名缩写便是MS2,依次卖灌。请编写向表 MFER.DF增加记录的程序(用户输入FIRSTNAME和LASTNA振字段的值,程序自动生成姓 名缩写字段(即ES0冰ID)的值)
则缩写为 MS1。以后,Michelle Smith 的姓名缩写便是 MS2,依次类推。请编写向表 MEMBER.DBF 增加记录的程序(用户输入 FIRSTNAME 和 LASTNAME 字段的值,程序自动生成姓 名缩写字段(即 PERSON_ID)的值)

《71 ual FoxPro》试卷(B卷)答案 道用症级00521、00522、00523、00531、00532 一,√√ √××× 二 AAB DB ADABD DC B A D CC B DD 三、 1、do while,t. 2.if not.eof() 3.5TRG,2) 4、G 5,G=+1 6.SELE 2 7,SET RELARI0NT0学号INTO B 8,B操行成绩 9、1F.N0T.EF0 10,1日,T, 11、笔试成销)-60.A.上机成锁>=60 12、F0服合格者 13、W笔试成绩+上机成绩 14,刘林芬7278150 四、 SET TALK OFF USE MEVBER INDEX ON PERSON ID TO ID APPEND BLANK
《Visual FoxPro》试卷 (B 卷)答案 适用班级 00521、00522、00523、00531、00532 一、√ √ √ √ √ √ × × × √ √ √ √ √ √ 二、 A A B D B A D A B D D C B A D C C B D D 三、 1、do while .t. 2、if .not. eof() 3.STR(G,2) 4、&GW 5、G=G+1 6、SELE 2 7、SET RELARION TO 学号 INTO B 8、"B.操行成绩" 9、IF .NOT. EOF() 10、 WITH .T. 11、 笔试成绩>=60.AND.上机成绩>=60 12、 FOR 合格否 13、 ON 笔试成绩+上机成绩 14 、刘林芬 72 78 150 四、 SET TALK OFF USE MEMBER INDEX ON PERSON_ID TO ID APPEND BLANK

OCEPT"情输入姓:”W ACCEPT“请输入名:”N REPLACE FIRSTNAME WITH FN.LASTNAME WITH LN Here=RECNO() CINITIALS LEFT (FIRSTNAVE,1)+LEFT (LASTNAME,1) SUFFIX·O LOCATE FOR PERSON_ID CINITIALS DO WHILE FOUNDO) SUFFIX·NSUFFIX+I CINITIALS =LEFT (CINITIALS.2)+ALLTRIM(STR (NSUFFIX)) CONTINUE ENDDO GOTO NBere REPLACE PERSON_ID WITH CINITIALS USE SET TALK ON
ACCEPT "请输入姓:" FN ACCEPT "请输入名:" LN REPLACE FIRSTNAME WITH FN, LASTNAME WITH LN nHere = RECNO( ) CINITIALS = LEFT(FIRSTNAME,1) + LEFT(LASTNAME,1) NSUFFIX = 0 LOCATE FOR PERSON_ID = CINITIALS DO WHILE FOUND( ) NSUFFIX = NSUFFIX + 1 CINITIALS =LEFT(CINITIALS,2) + ALLTRIM(STR(NSUFFIX)) CONTINUE ENDDO GOTO NHere REPLACE PERSON_ID WITH CINITIALS USE SET TALK ON