VFP试卷五及答案

一.判断题(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 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)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)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,则上浮6%

USE TEACHER

______ 1_______

IF 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 学号 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 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

COPY ______ 9_______

USE XSCJ

APPEND______ 10_______

GO TOP

DO WHILE .NOT. EOF()

?姓名,入学成绩

ENDDO

USE

四.编写程序(共25分)

假设有如下表单,表单的功能为:

(1)输入查询条件:用户从“依据字段”列表框中选择表中的字段名,从“关系符”列表框中选择关系运算符,在“值”文本框中输入欲查询字段的值。

(2)可在按下“与”、“或”命令按钮后再输入下一个查询条件,最终构成组合查询条件。(3)查询条件构成完毕后,按下“查看”命令按钮后通过浏览窗口查看满足条件的记录。表单中列表框、文本框中出现的标识符为控件的CONTROLSOURCE属性的值。

假设要查询的表中有四个字段:字符型字段:姓名;日期型字段:出生日期,数值型字段:工资,逻辑型字段:婚否。

1、请明确写出为了在“依据字段”列表框中出现表中的字段名,在“关系符”列表框中出现关系运算符,应对这两个列表框作哪些属性设置或编写哪些代码。(8分)

2、请写出构成组合查询条件的相关代码。(8分)

3、请写出按下“查看”命令按钮后进行查询,并通过浏览窗口查看满足条件的记录的相关代码。(8分)

4、请写出退出操作的代码。(1分)

《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)+"])" 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

相关推荐
相关主题
热门推荐