
FP试卷五及答案 成都电子机械高等专科学校 2001/2002学年2学期(Visual FoxPro》试卷(A卷) 考试方法闭整适用班级00521,00522、00523、00531、00532共7页 考生注意:请将所有答案写在答题纸上,写在试卷上无效。 一,判断题(1分/题。共15分,对面√,错面×》 1,VP数据库管理系统的数据横型是关系型。 2、可向柔单系统中添加初始化代码米创建环境、定义内存变量、打开文件等。 3、表单设计中的数据环境是表单的数据米源。 4,表单打开时,数据环境中的表可白动打开。 5、表单集是指两个以上的表单同时输出,并且可以通过程序或服标交换输出权。 6、报表包括两个组成部分:数据源粗布局, 7,报表设计中的布局文件保存了要输出的表中字段的值。 8、报表授计中的字段控件可用于表示出现在报表中的字符。 9、客户/服务卷(clie■t/server)应用程序具有本地(客户)用户界面。但访问的是 运程服务器上的数据。 10、视图兼有表和查出的特点, 山、与查连不同的是,视图可选择如何将在视图中所做的数据修改传给原始文件,或建 立视图的基表。 12、VFP中的NULL表示0,便于与含有NULL值的SQL数据库一起工作, 13,查出输出的去向可以是浏览、报表或表单。 14、VF配主要数据容器有:表记录、变量和数组. 15、引用对象的方法分绝对引用和相对引用。 二,选择思(每个选择1.5分,共30分) 1,下列OxB5E表达式运算结果为日期型的是 A0A/05/97-2B)CT00('0M/05/97')-D4TE() C0GT0DC04/0s/9T')-3D)DATE()"04/03/97 2、职工工资数据辉文件按基本工贤字段升序索明后,再执行G闭TP命令,此时当前记 录号是
VFP 试卷五及答案 成都电子机械高等专科学校 2001/2002 学年 2 学期 《Visual FoxPro》试卷 (A 卷) 考试方法 闭卷 适用班级 00521、00522、00523、00531、00532 共 7 页 考生注意:请将所有答案写在答题纸上,写在试卷上无效。 一. 判断题(1 分/题,共 15 分,对画√,错画×) 1、VFP 数据库管理系统的数据模型是关系型。 2、可向菜单系统中添加初始化代码来创建环境、定义内存变量、打开文件等。 3、表单设计中的数据环境是表单的数据来源。 4、表单打开时,数据环境中的表可自动打开。 5、表单集是指两个以上的表单同时输出,并且可以通过程序或鼠标交换输出权。 6、报表包括两个组成部分:数据源和布局。 7、报表设计中的布局文件保存了要输出的表中字段的值。 8、报表设计中的字段控件可用于表示出现在报表中的字符。 9、 客户/服务器(client/server)应用程序具有本地(客户)用户界面,但访问的是 远程服务器上的数据。 10、视图兼有表和查询的特点。 11、与查询不同的是,视图可选择如何将在视图中所做的数据修改传给原始文件,或建 立视图的基表。 12、VFP 中的NULL表示 0,便于与含有NULL值的SQL数据库一起工作。 13、查询输出的去向可以是浏览、报表或表单。 14、VFP 主要数据容器有:表记录、变量和数组。 15、引用对象的方法分绝对引用和相对引用。 二. 选择题(每个选择 1.5 分,共 30 分) 1、下列 FOXBASE 表达式运算结果为日期型的是 A)04/05/97 - 2 B)CTOD('04/05/97') - DATE( ) C)CTOD('04/05/97') -3 D)DATE( )"04/05/97" 2、职工工资数据库文件按基本工资字段升序索引后,再执行 GO TOP 命令,此时当前记 录号是

A》1)基本工班最少的记录号 C)0D)基本工货最多的记录号 3、当前数据库文件有20条记录,当输记录号是10。执行命令L1SE5T以后,当前 记承号是 A010)20 C021)1 4、对学生成锁数据岸文件按总分/压/62降序、姓名/C/8升序素引。应当使用命令 A)INTE置T0BCN总分,姓名 B卧NEXT0AB度GN一总分,姓名 C)INDEX T0hBGN5TR(一总分,5.1)+姓名 D)INDEX T0BC0NSTR(1000一总分)+姓名 5,把当前数据库文件中”性别“字受的值全部清除,但仍保图该字段,应当使用命◆ A)MODIFY STRUCTURE B)DELETE C)REPLACE D)ZAP 6,金令SELECT0的功能是 A》选择区号最小的空闲工作区 卧选择区号最大的空闲工作区 C)选择音前工作区的区号加1的工作区 D)随机选择一个工作区的区号 7、设积工数据库和按”工作日期索明的索引文件已经打开,要把记录指针定位到工作 刚好满30天的职工,应当使用命令 A)FIND DATE ()-30 B)SEEK DATE()30 C)FIND DATE ()30 D)SEEK DATE()-30 8,比较AIT、CCEP和INPUT三条命令,需要以国车键表示输入结束的命令是 A)WAIT、ACCEPT、INPUT B)WAIT、ACCEPT C)NCCEPT、INPUT D)TIFT、AIT 9、在伊中,可以使用OUND()函数来检测查询是否成功的命令包括 AL.IST、FIND、SEEK B)FIND、SEE球、L.OCATE C)FIND,DISPLAY、.SEEK D)LIST、SEEK,LOCATE 10,在下面FoxBASE命令中。不能修改数据记录的命令是
A)1 B)基本工资最少的记录号 C)0 D)基本工资最多的记录号 3、当前数据库文件有 20 条记录,当前记录号是 10。执行命令 LIST REST 以后,当前 记录号是 A)10 B)20 C)21 D)1 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、把当前数据库文件中"性别"字段的值全部清除,但仍保留该字段,应当使用命令 A)MODIFY STRUCTURE B)DELETE C)REPLACE D)ZAP 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、比较 WAIT、ACCEPT 和 INPUT 三条命令,需要以回车键表示输入结束的命令是 A)WAIT、ACCEPT、INPUT B)WAIT、ACCEPT C)ACCEPT、INPUT D)INPUT、WAIT 9、在 VFP 中,可以使用 FOUND( )函数来检测查询是否成功的命令包括 A)LIST、FIND、SEEK B)FIND、SEEK、LOCATE C)FIND、DISPLAY、SEEK D)LIST、SEEK、LOCATE 10、在下面 FoxBASE 命令中,不能修改数据记录的命令是

A)BRONSE B)EDIT C)CHANGE D)MODIFY 11,设数据库文件及其累引文件己打开,为了确保指针定位在物理记承号为1的记承上, 应该使用命令 A)GO TOP B)GO BOP C)SKIP 1 D)GO 1 12、设职工表文件己经打开,其中有工资字段,要把指针定位在第一个工资大于20 元的记录上,应使用命令 A)FIND F0R工货>620B)S工货>620 C)10 CATE FOR工资>620D)PIND工货>620 13、设当前表文件含有字段slar,命令EPLACE salary VITH1500的功能是 A》将表中所有记录的sa1a叮字段的值都政为1500 卧只将表中当前记录的salary字段的值改为100 由于没有指定条件,所以不能确定 D)将表中以前未更改过的salary字段的值改为1500 14、设表文件已经在当前工作区打开,有关索月文件已经建文,要打开该表文件的某素 引文件。应该使用命令 A)SET INDEX TO(索文件名> B卧OPEN INDEX《素引文件名> C)USE INDEX )必须与表文件一起打开 15、在以下关于素引的说明中,错误的是 A)索引可以提高查询速度B》素引可能降低更新速度 C)索州和排序具有不同的含复D)不能更新素引学段 16、以下关于CCEPT命令的说明,正确的是 A)将输入作为字符接收B》将输入作为数值接收 C)将输入作为逻辑型数据接收D)将输入作为备注型数据接收 17,在使用#角令进行格式化输出时,为了使输出结果只输出到打印机上,应使用命令 A)SET PRINT ON B)SET PRINTER TO LPTI C)SET DEVICE TO PRINT D)SET PRINTER TO PRN
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、设当前表文件含有字段 salary,命令 REPLACE salary WITH 1500 的功能是 A)将表中所有记录的 salary 字段的值都改为 1500 B)只将表中当前记录的 salary 字段的值改为 1500 C)由于没有指定条件,所以不能确定 D)将表中以前未更改过的 salary 字段的值改为 1500 14、设表文件已经在当前工作区打开,有关索引文件已经建立,要打开该表文件的某索 引文件,应该使用命令 A)SET INDEX TO B)OPEN INDEX C)USE INDEX D)必须与表文件一起打开 15、在以下关于索引的说明中,错误的是 A)索引可以提高查询速度 B)索引可能降低更新速度 C)索引和排序具有不同的含义 D)不能更新索引字段 16、以下关于 ACCEPT 命令的说明,正确的是 A)将输入作为字符接收 B)将输入作为数值接收 C)将输入作为逻辑型数据接收 D)将输入作为备注型数据接收 17、在使用@命令进行格式化输出时,为了使输出结果只输出到打印机上,应使用命令 A)SET PRINT ON B)SET PRINTER TO LPT1 C)SET DEVICE TO PRINT D)SET PRINTER TO PRN

18、在图书数据库文件中,书号字段为字符型,要求将节号以字母D开头的所有图书记 录打上副除标记,应使用命令 A)DELET亚FOR“DS书号 B)ELETE FOR SUBSTR(节号,1,1)-D C)DELETE FOR书号=D* D)DEET亚FOR RIGHT(节号,1)-“D 9.表与相应索引文件己经打开。内存变量”李春”,执行时会产生逻辑错误的命令 是() A)L0CAT正FOf姓名-DIB)FIND AXM C)SEEK D)LOCATE FOR姓名-AXM 0以下命◆中正确的是()。 A)STORE 8 TO X.Y B)STORE 8,9 TO X,Y C)X-8,T-9D》I-Y-8 三,程序填空(每空3分,共0分) 1、对TE4 CHER DBF中的每条记录的5LA群字段作如下变化:若SALA)=3000,则上 浮35,若SLm(3000,则上浮6% USE TEACHER IF salary 3000 PLACE salary VIT用salary幸1.03 ELSE 2 ENDIF ENDSCAN USE 2、一学生档案表5T江.6F,其字段有:学号、姓名、专业、出生日期、入学成镇、 简历,表中已有数据。另有一学生成绩表S00RE,其字段有:学号、平均分、操行成镇, 表中己有数据。以下程序实现输入学号后根据平均分和操行成绩判断该学生的奖学金等领, 最后输出学号,姓名、奖学金等级。 SET TALK OFF
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.以下命令中正确的是( )。 A)STORE 8 TO X,Y B)STORE 8,9 TO X,Y C)X=8,Y=9 D)X=Y=8 三. 程序填空(每空 3 分,共 30 分) 1、对 TEACHER.DBF 中的每条记录的 SALARY 字段作如下变化:若 SALARY>=3000,则上 浮 3%,若 SALARY= 3000 REPLACE salary WITH salary * 1.03 ELSE ______2_______ ENDIF ENDSCAN USE 2、一学生档案表 STUDENT.DBF,其字段有:学号、姓名、专业、出生日期、入学成绩、 简历,表中已有数据。另有一学生成绩表 SCORE.DBF,其字段有:学号、平均分、操行成绩, 表中已有数据。以下程序实现输入学号后根据平均分和操行成绩判断该学生的奖学金等级, 最后输出学号、姓名、奖学金等级。 SET TALK OFF

SELE 1 USE STUDENT SELE 2 USE SCORE INDEX ON学号T0XⅫ SELE A 一3一 0CEPT“请输入学生学号”T⑩N0 SEEK NO IF NOT.EOF() DO CASE C45E平均分>=90.ND.ZX="优 J“甲等 C4SE平均分>=0,D.k2X="优”,0R.ZX=”良) “乙等 C4SE平均分>=75,AND.(k2八=优”,0R.2X=”良) J戊J-丙等 OTHERWISE J无 ENDCASE ?“学号”,学号,“姓名”,姓名,“奖学金”,X灯 ENDIF CLOSE ALl. SET TALK ON 3,假定表E据ER.D图中包含姓名和姓名缩写信息(字段有,FIRSTNAME、LASTNAME、 PERSON_ID》字段。当向表中增加一条记录到,输入姓名(即FI5TNAE和LASN4WE》后, 自动生成姓名端写(即ES0ND》的值。如果表中已有相月的姓名缩写,则给姓名增写如 一个数字,例如:Michael Suyana的缩写为s,argaret Sun的姓名缩写与之相同,则 缩写为s1。以后,Miche11 e Smith的姓名缩写便是52,依次类推
SELE 1 USE STUDENT SELE 2 USE SCORE INDEX ON 学号 TO XH SELE A ______ 3_______ ACCEPT "请输入学生学号" TO NO SEEK NO ZX=______4_______ IF .NOT. EOF( ) DO CASE CASE 平均分>=90 .AND. &ZX="优" JXJ="甲等" CASE 平均分>=80 .AND. (&ZX="优".OR.&ZX="良") JXJ="乙等" CASE 平均分>=75 .AND. (&ZX="优".OR.&ZX="良") JXJ="丙等" OTHERWISE JXJ="无" ENDCASE ? "学号", 学号, "姓名", 姓名, "奖学金", JXJ ENDIF CLOSE ALL SET TALK ON 3、假定表 MEMBER.DBF 中包含姓名和姓名缩写信息(字段有:FIRSTNAME、LASTNAME、 PERSON_ID)字段。当向表中增加一条记录时,输入姓名(即 FIRSTNAME 和 LASTNAME)后, 自动生成姓名缩写(即 PERSON_ID)的值。如果表中已有相同的姓名缩写,则给姓名缩写加 一个数字。例如:Michael Suyama 的缩写为 MS, Margaret Sun 的姓名缩写与之相同,则 缩写为 MS1。以后,Michelle Smith 的姓名缩写便是 MS2,依次类推

SET TALK OFF USE MEVBER INDEX ON PERSON_ID TO ID AOCEPT“请输入姓:”W CCEPT“请输入名:”N REPLACE FIRSTNAME WITH FN.LASTNAME WITH LN eere·ECwo() CINTTIAS LFFT(FIRSTNAVE 1)+LEPT(LASTNAME.1) NSUFFIX 0 6- DO WHILE FOUND() NSUFFIX NSUFFIX 1 CINITIALS "LEFT(CINITIALS.2)+ALLTRIM(STR (NSUFFIX)) 7 ENDDO 00T0 8 REPLACE PERSON_ID WITH CINITIALS USE SET TALK ON 4、学生档案表S,6F。其字段有:学号、姓名、专业、出生日期、入学成领、简历: 表中已有数据。另有新生入学文本文件CJ.TXT,内容如下: 王刚,496 张放,487 李立,503 刘英,492·… 编程构造一个表文件SC,DF,表中有姓名、入学成绩两个字段。表中的记录由两部 分数据组合面成:一部分为从S.距中提取的相关字段的内容,另一部分为从C.TXT中提 取的相关字段的内容。最后将CJ.F中的记录内容依次量示出家。程序如下: SET TALK OFF
SET TALK OFF USE MEMBER INDEX ON PERSON_ID TO ID ______5_______ ACCEPT "请输入姓:" FN ACCEPT "请输入名:" LN REPLACE FIRSTNAME WITH FN, LASTNAME WITH LN nHere = RECNO( ) CINITIALS = LEFT(FIRSTNAME,1) + LEFT(LASTNAME,1) NSUFFIX = 0 ______6_______ DO WHILE FOUND( ) NSUFFIX = NSUFFIX + 1 CINITIALS =LEFT(CINITIALS,2) + ALLTRIM(STR(NSUFFIX)) ______7_______ ENDDO GOTO ______8_______ REPLACE PERSON_ID WITH CINITIALS USE SET TALK ON 4、学生档案表 XS.DBF,其字段有:学号、姓名、专业、出生日期、入学成绩、简历, 表中已有数据。另有新生入学文本文件 CJ.TXT,内容如下: 王刚,496 张放,487 李立,503 刘英,492 ...... 编程构造一个表文件 XSCJ.DBF,表中有姓名、入学成绩两个字段,表中的记录由两部 分数据组合而成:一部分为从 XS.DBF 中提取的相关字段的内容,另一部分为从 CJ.TXT 中提 取的相关字段的内容。最后将 XSCJ.DBF 中的记录内容依次显示出来。程序如下: SET TALK OFF

CLEAR ALL USE XSDA OOPY 9 USE XSCJ APPEND一 10 GO TOP DO WHILE NOT.EOFO ?姓名,入学成靖 SKIP ENDDO USE 四.编写程序(共25分) 假设有如下表单,表单的功能为: (1)输入查询条件:用户从“依据字段”列表据中选择表中的字段名,从“关系符” 列表框中选释关系运算符,在“值”文本框中输入武查面字段的值。 (2)可在按下“与”、“或”命令按组后再输入下一个查面条件,最终构成组合查询 条件。 (3)查询条作构成完毕后,按下“查看”命令按钮后通过浏览窗口查看满足条件的记 求。 表单中列表框,文本框中出现的标识符为控件的OTSE属性的值。 假设要查询的表中有四个字段:字符型字段:姓名:日期型字段:出生日期。数值型字 段:工资,逻辑型字段婚否。 1、请明确写出为了在“依据字段”列表框中出现表中的字段名,在“关系符”列表幅 中出现关系运算符,应对这两个列表概作哪些属性设置或编写哪些代码。(8分) 2、请写出构咸组合查面条件的相关代码。(8分) 3、请写出按下“查看”命令按组后进行查询,并通过御莫窗口查看调足条件的记录的 相关代码。(8分) 4,请写出是出提作的代码。《1分)
CLEAR ALL USE XSDA COPY ______ 9_______ USE XSCJ APPEND______ 10_______ GO TOP DO WHILE .NOT. EOF() ?姓名,入学成绩 SKIP ENDDO USE 四. 编写程序(共 25 分) 假设有如下表单,表单的功能为: (1)输入查询条件:用户从“依据字段”列表框中选择表中的字段名,从“关系符” 列表框中选择关系运算符,在“值”文本框中输入欲查询字段的值。 (2)可在按下“与”、“或”命令按钮后再输入下一个查询条件,最终构成组合查询 条件。 (3)查询条件构成完毕后,按下“查看”命令按钮后通过浏览窗口查看满足条件的记 录。 表单中列表框、文本框中出现的标识符为控件的 CONTROLSOURCE 属性的值。 假设要查询的表中有四个字段:字符型字段:姓名;日期型字段:出生日期,数值型字 段:工资,逻辑型字段:婚否。 1、请明确写出为了在“依据字段”列表框中出现表中的字段名,在“关系符”列表框 中出现关系运算符,应对这两个列表框作哪些属性设置或编写哪些代码。(8 分) 2、请写出构成组合查询条件的相关代码。(8 分) 3、请写出按下“查看”命令按钮后进行查询,并通过浏览窗口查看满足条件的记录的 相关代码。(8 分) 4、请写出退出操作的代码。(1 分)

《1 sual FoxPro》试卷(卷)答案 道用症级00521.00522、00523、,00531、00532 一、√√ 、xx√ ×X√ 二 CBC DC A DCB D D C B A D AC B D A 三 1.SCAN 2、REPLACE salary WIT用salary◆L.06 3、SET RELARI0WT0学号INTO B 4,"B操行成绩” 5、APPEND BLANK 6.LOCATE FOR PERSON_ID CINITIALS 7、C0TIE 8.NHere 9、T0CJFI回5姓名,入学成锁 10,FROM CJ.TXT TYPE DELIMITED WITH 厚、 1, 属性:rowsourcetype数组 rowsource数组名 在fom1oad中对数组定义并进行初始化。 2、 do case case mf1作"出生日期”tjFt+trim(zian+tria(gxf)+"ctod([”+alltrim(zhi)+])
《Visual FoxPro》试卷 (A 卷)答案 适用班级 00521、00522、00523、00531、00532 一、√ √ √ √ √ √ × × √ √ √ × × √ √ 二、 C B C D C A D C B D D C B A D A C B D A 三、 1、SCAN 2、REPLACE salary WITH salary * 1.06 3、SET RELARION TO 学号 INTO B 4、"B.操行成绩" 5、APPEND BLANK 6、LOCATE FOR PERSON_ID = CINITIALS 7、CONTINUE 8、NHere 9、TO XSCJ FIELDS 姓名,入学成绩 10、FROM CJ.TXT TYPE DELIMITED WITH , 四、 1、 属性:rowsourcetype 数组 rowsource 数组名 在 form_load 中对数组定义并进行初始化。 2、 do case case mfld="出生日期" tj=tj+trim(ziduan)+trim(gxf)+"ctod(["+alltrim(zhi)+"])

cas0f1d中”工宽 tjmtj+trim(ziduan)+trim(gxf)+zhi case mf1d中婚否” tj-tj+trim(xiduan)+trin(gxf)+“,”+nl1trin(zhi)+”.“ other t=t+trim(ziduan)+trim(gxf)+"[+alltrim(zhi)+"]" endcase 3、 S.CT幸FR0w人员IERE &tj into table t即 Brow 4、thisform.elease
case mfld="工资" tj=tj+trim(ziduan)+trim(gxf)+zhi case mfld="婚否" tj=tj+trim(ziduan)+trim(gxf)+"."+alltrim(zhi)+"." other tj=tj+trim(ziduan)+trim(gxf)+"["+alltrim(zhi)+"]" endcase 3、 SELECT * FROM 人员 WHERE &tj into table temp Brow 4、thisform.release