VFP试题库 下载本文

第一章 数据库系统基础知识

选择题

1、 Visual FoxPro是一个 。 A. 数据库系统 B. 数据库管理系统 C. 数据库 D. 数据库管理员 2、 实体模型反映实体及实体之间的关系,是人们的头脑对现实世界中客观事物及其相互联

系的认识,而______是实体模型的数据化,是观念世界的实体模型在数据世界中的反映,是对对现实世界的抽象。 A. 数据模型 B. 物理模型 C. 逻辑模型 D. 概念模型 3、 下列不属于关系代数运算的是 。 A. 查询 B. 投影 C. 选择 D. 联接 4、 实体是信息世界的术语,与之对应的数据库术语是 。 A. 文件 B. 数据库 C. 记录 D. 字段 5、 关系模型中,超关键字 。 A. 可由多个任意属性组成

B. 能由一个属性组成,其值能唯一标识该关系模式中任何一个元组

C. 可由一个或多个属性组成,其值能唯一标识该关系模式中任何一个元组 D. 以上都不是

6、 在关系模型中,同一个关系中的不同属性,其属性名 。 A. 可以相同 B. 不能相同 C. 可以相同,但数据类型不同 D. 必须相同 7、 数据库系统由数据库、 组成。

A . DBMS、应用程序、支持数据库运行的软、硬件环境和DBA B. DBMS和DBA

C. DBMS、应用程序和DBA

D. DBMS、应用程序、支持数据库运行的软件环境和DBA

8、 设有2个项目文件:T1.PJX、T2.PJX,2个数据库文件:SJ1.DBC、SJ2.DBC,1个自由

表文件:A1.DBF。以下叙述中,不正确的是____ ____。 A.T1.PJX与T2.PJX可以共享SJ1.DBC文件

B.A1.DBF自由表添加到SJ1.DBC成为库表以后,就不能添加到SJ2.DBC中

C.打开T1.PJX文件后,用系统菜单”文件\\新建”命令创建的文件都属于T1.PJX项目管理

D.从T2.PJX项目中“移去”某个数据库时,可以同时删除数据库文件

9、 概念模型是按用户的观点对数据建模,它是对现实世界的第一层抽象。下列各项中属于

概念模型的是 。 A.物理模型 B.关系模型 C.E-R模型 D.逻辑模型 10、数据库系统与文件系统的最主要区别是 。 A.数据库系统复杂,而文件系统简单

B.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 C.文件系统管理的数据量较小,而数据库系统可以管理庞大的数据量

D.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 11、VFP是一种 ________ 模型的数据库管理系统。 A. 层次 B. 网络 C. 对象 D. 关系 12、目前三种基本的数据模型是 ________ 。 A. 层次模型、网络模型、关系模型 B. 对象模型、网络模型、关系模型 C. 网络模型、对象模型、层次模型 D. 层次模型、关系模型、对象模型 13、在命令窗口中,不能实现的操作是 ________ 。 A. 复制已执行过的命令 B. 重复执行已执行过的命令 C. 同时执行多个命令 D. 在命令窗口中显示命令执行结果 14、数据库管理系统是 ________ 。 A. 教学软件 B. 应用软件 C. 计算机辅助设计软件 D. 系统软件 15、关系型数据库采用 ________ 表示实体和实体间的联系。 A. 对象 B. 字段 C. 二维表 D. 表单

16、一个表的主关键字被包含到另一个表中时,在另一个表中称这些字段为_______。 A. 外关键字 B. 主关键字 C. 超关键字 D. 候选关键字 17、由计算机、操作系统、DBMS、数据库、应用程序等组成的整体称为___________。 A. 数据库系统 B. 数据库管理系统 C. 文件系统 D. 软件系统 18、VFP的文件菜单中的关闭(CLOSE)命令是用来关闭________。 A. 当前工作区中已打开的数据库 B. 所有已打开的数据库 C. 所有窗口 D. 当前活动的窗口 19、项目管理器的功能是组织和管理与项目有关的各种类型的_________。 A. 文件 B. 字段 C. 程序 D. 数据 20、下列说法中,不正确的是_______。 A. 二维表中的每一列均有唯一的字段名 B. 二维表中不允许出现完全相同的两行

C. 二维表中行的顺序、列的顺序均可以任意交换 D. 二维表中行的顺序、列的顺序不可以任意交换

21、在下列有关项目与项目管理器的叙述中,不正确的是 。 A.不是通过VFP创建的文件,不能添加到项目中

B.当用户将某文件添加到项目中时,系统默认为:表文件是排除的,其他类型的文件是包含的

C.利用“移去”操作可以删除文件 D.同一个文件可以同时属于多个项目

填空题

1、 关系模型是用 的结构形式表示实体及其实体间的关系。 2、 英文缩写ODBC的中文含义是 。

3、 二维表中能唯一确定记录的一列或多列的组合称为超关键字。若一个超关键字去掉其中

任何一个列后不再能唯一确定记录,则称其为 。

4、 “开放式数据库系统互连”是一种用于数据库服务器的标准协议,通过它可访问多种数

据库中的数据。在Visual FoxPro中,也可以利用该协议与其他数据库相连。“开放式数据库系统互连”的英文缩写是 。

5、 关系的基本运算有两类。一是传统的集合计算,包括并、差、交运算;二是专门的关系

运算,包括:选择、 和联结。

6、 在VFP中,用户可以利用命令来修改系统的操作环境(如默认工作目录等),也可以通

过菜单命令打开 对话框进行设置。

7、 在VFP中,关闭所有的文件并结束当前VFP系统运行的命令是 。 8、 一张表的主关键字被包含到另一张表中时,在另一张表中称这些字段为___________。

第二章 Visual FoxPro数据库管理系统概述

第五章 程序设计基础

选择题

1、 下列表达式中,合法的是 。 A. Year(Date())-{2000/08/02} B. Date()-{2000/08/02} C. Date()+{2000/08/02} D. A、B、C均对 2、 执行下列程序段后,屏幕上显示的结果是: 。 SET TALK OFF CLEAR X=“18” Y=“2E3” Z=“ABC”

?VAL(X)+VAL(Y)+VAL(Z) A. 2018.00 B. 18.00 C. 20.00 D. 错误信息 3、 以下表达式中不能返回字符串值“FoxPro”的是 。 A.”Fox” + ”Pro” B.TRIM(“Fox “ - “Pro”) C.ALLTRIM(“ Fox” + “Pro”) D.”Fox” – “Pro “

4、 在Visual FoxPro系统中,以下函数返回值不是数值型的是 。 A.LEN(”Visual FoxPro”) B.AT(”This”,”ThisForm”) C.YEAR(DATE()) D.LEFT(”ThisForm”,4)

5、 在Visual FoxPro系统中,表达式LEN(DTOC(DATE(),1))的值为 。 A.4 B. 6 C. 8 D.10 6、 在Visual FoxPro系统中,逻辑运算符执行的优先顺序是 。 A.NOT、AND、OR B.NOT、OR、AND C.AND、NOT、OR D.OR、NOT、AND

7、 下列表述中,能将日期“2004年10月16日”赋值给日期型变量D的正确语句

是 。 A.D=10/16/2004 B.D=\ C.D=CTOD(\ D.D=DATE(\

8、 在Visual FoxPro系统中,下列命名中不能作为变量名的是 。 A.姓名 B.2004姓名 C.姓名2004 D._2004学生 9、 在Visual FoxPro系统中,下列表示中不属于常量的是 。

A..T. B.[T] C.\ D.T 10、函数INT(-3.14)的返回值是 。 A.-4 B.-3 C.3 D.4 11、执行下列命令后,屏幕上显示的结果是 。 X=\ Y=\ ?AT(Y,X) A.1 B..F. C..T. D.0 12、在下列有关VFP表达式中,语法上错误的是 。 A.DATETIME()+100 B.DATE()-1000 C.DATETIME()-DATE() D.DTOC(DATE())-DTOC(DATETIME())

13、运行以下程序后,VFP主窗口显示的结果是 : CLEAR n=0

DO WHILE n<10 IF INT(n/2)=n/2 ? \ ENDIF ?? \ n=n+1 ENDDO

A.显示5行,内容均为WfoxFox B.显示5行,内容均为WFoxWFox C.显示4行,内容均为WFoxFox D.显示4行,内容均为FoxFoxW

14、函数是程序设计语言中很重要的语言成分。在下列VFP系统函数中,其返回值不为字

符型数据的是 。 A.TYPE() B.DOW() C.CHR() D.TTOC()

15、利用命令DIMENSION X(2,3)定义了一个名为X的数组后,依次执行三条赋值命

令X(3)=10、X(5)=20、X=30,则数组元素X(1,1)、X(1,3)、X(2,2)的值分别是 。 A.30、30、30 B..F.、10、20 C.30、10、20 D.0、10、20 16、函数SUBSTR(\的返回值是______。 A. lFoxPro B. FoxPro C. FoxPro5 D. FoxPro5.0 17、以下的四组函数,返回值的数据类型是一致的 。 A. DTOC(DATE()), DATE(),YEAR(DATE()) B. ALLTRIM(\ C. EOF() , RECCOUNT() , DBC()

D.STR(3.14,3,1),DTOC(DATE()), SUBSTR(\18、VFP的循环语句有 。 A. DO WHILE,FOR和SCAN B. DO WHILE ,FOR 和 LOOP C. FOR,SCAN和LOOP D. DO CASE 和 DO WHILE

填空题

1、 表达式\的值是 。 LEN(ALLTRIM(\的值

是 。

2、 MOD(9,-2)的返回值为___ ___。

3、 执行下列命令后,被打开的表文件是 。 X=\ Y=\

L=AT(\ F=SUBSTR(X,L,2) USE &F

4、 表达式SUBSTR(\语言\的返回值是:_____________。 5、 下列程序的功能是计算:

S=1/(1*2)+1/(3*4)+1/(5*6)+?+1/(N*(N+1))+?的近似值,当1/(N*(N+1))的值小于0.00001时,停止计算。 S=0 I=1

DO WHILE .T. P=____________ S=S+1/P IF 1/P<0.00001 ___________ ENDIF I=I+2 ENDDO

6、 自定义函数RV()实现的功能是:将任意给定的一串字符倒序返回,如执行函数:RV

(“ABCD”),则返回“DCBA”。完善函数RV()的程序代码: FUNCTION RV

PARAMETERS cH L=0 McH=\

DO WHILE L

McH = McH +SUBSTR(cH, ,1) L=L+1 ENDDO

RETURN____ _______ ENDFUNC

7、 假设系统当前日期为“2002年10月12日”,则表达式DTOC(DATE(),1)的值

为 。

8、 在程序中将变量cYear定义为全局变量,可以使用下列命令: cYear。 9、 已知学生表(XS.DBF)第一条记录内容如下:XH字段值为“990101”,XM的字段值为

“李林”,XB字段值为“男”,CSRQ字段值为{08/23/82},XIMING字段值为“信息管

理系”。设系统日期为2002年10月12日,则下列命令执行后,M、N、MN的值分别为 _ 、 _ 、 _ 。 USE XS

M=ALLTRIM(XM)+SPACE(LEN(XB))+ALLTRIM(XIMING) N=YEAR(DATE())-YEAR(CSRQ) NJ=SUBSTR(XH,1,2) NN=YEAR(DATE())-1900-VAL(NJ) MN=IIF(MONTH(DATE())>=9,STR(NN+1,2)+“年级”,STR(NN,2)+“年级”)

10、在教学管理数据库中有一个成绩表(CJ.DBF),表结构如下: 成绩表(cj.dbf) 学号 课程代号 成绩 成绩表(CJ.DBF)含有内容如下:

XH 990201 990201 990201 990201 990201 990201 990202 990202 990202 990202 990202 990203 KCDH 01 02 03 04 05 06 02 03 04 05 06 01 CJ 78 80 80 73 82 95 62 69 93 95 84 63 XH KCDH CJ C,6 C,2 N,3 基于CJ表,下列程序段运行后,显示的运行结果(即RN的值)是 。 SET TALK OFF USE CJ

SET ORDER TO KCDH &&该索引标识已建,且为普通索引(升序) GO TOP RN=0

DO WHILE NOT EOF() MKCDH=KCDH

DO WHILE NOT EOF () SKIP

IF MKCDH< KCDH EXIT ENDIF ENDDO

RN=RN+1 ENDDO ?RN

11、运行下面的程序段后,屏幕显示的运行结果是: _ 。 SET TALK OFF STORE 4 TO N ?S(N) FUNCTION S PARAMETERS X Y=1 P=0 FOR I=1 TO X Y=Y*I P=P+Y ENDFOR RETURN P ENDFUNC

12、JS表中含有一个备注型字段,字段名为JL。完善下面程序,其功能是统计\计算机\一

词在XS表的简历字段中出现的次数。注:OCCURS()函数的功能是返回前一个字符表达式在后一个字符表达式中出现的次数。 USE JS mSUM=0 SCAN X=JL &&简历字段的值赋予内存变量X mSUM=mSUM+OCCURS(“计算机”,X) ENDSCAN ?““计算机”一词在XS表的简历字段中共出现:”+ALLTRIM( _ )+“次”。 13、已知学生表(XSB.DBF)中的数据如下: 记录号 学号 1 2 3 4 5 6 姓名 性别 出生日期 系名代号 男 09/02/82 男 04/09/83 女 10/06/82 男 12/09/82 02 02 02 02 02 02 000104 王凯 000101 李兵 000103 刘华 000102 陈刚 000106 胡媛媛 女 09/08/82 000105 张一兵 男 02/06/83 则依次执行下列命令后,屏幕上显示的结果是 。 USE XSB

SET ORDER TO XSXH &&XSXH索引标志已建,它是根据学号字段创建的升序索引

GO TOP SKIP

? RECNO() GO BOTTOM

?RECNO()

14、执行下列程序后,屏幕上显示的结果是 _ 。 C=“江苏省高等学校计算机等级考试” DO SUB1

?LEFT(&X,6)+SUBSTR(C,15)+RIGHT(T,3) PROCEDURE SUB1 PUBLIC X,T X=“C”

T=“数据库VFP” RETURN

15、下面程序段的功能是根据数值型变量X的取值范围不同,给变量Y赋不同的值。该程

序段中的多条命令可以简化为一条命令,这条命令是:Y=IIF(X>0,1, )。 IF X>0 Y=1 ELSE IF X= 0 Y=0 ELSE Y=-1 ENDIF ENDIF

16、函数MOD(-42,-3)的返回值为 。 17、设n=234,m=432,k=”m+n”,表达式1+&k的值是 。 18、设JS表(教师表)的结构及JS表所包含的记录如下: Js.dbf的结构 字段名 数据类型 gh xm xb jbgz hf C(4) C(8) C(2) N(7,2) L 含 义 工号 姓名 性别 基本工资 婚否(.T.为已婚,.F.为未婚) gh A001 B001 A002 A003 C001 Js.dbf表记录 xm xb jbgz 1800 2000 2200 1900 1600 hf .F. .T. .T. .F. .F. 高 山 男 王一平 男 高 原 女 方 敏 女 李 刚 男 运行下列程序段后,显示的两行结果分别为: 、 。 USE js m1 = xm

m2 = LEN(xb)

? m1 + SPACE(2) + IIF(hf, “已婚”,”未婚”) m3 = 0 SCAN

m3 = m3 + jbgz SKIP ENDSCAN ? m3

m4 = STR(RECCOUNT())

19、完善下列程序,使其实现计算数列1!/2!,2!/3!,3!/4!,??的前20项之和的功能。 【程序清单】 nSum=0

FOR n=1 TO 20

nSum= ENDFOR

FUNCTION jc

PARAMETER x s=1 FOR m=1 s=s*m ENDFOR RETURN s

20、设学生表(xs.dbf)含有记录数据如下表所示: 学生表(xs.dbf)含有内容 XH 010201 010203 010202 010301 010402 010302 010401 XM 王 玲 李 刚 张 山 刘 芳 王勇敢 李园园 张 勇 XB 女 男 男 女 男 女 男 CSRQ 06/02/82 06/09/82 02/08/81 09/08/83 02/28/82 12/12/81 10/09/82 运行下列程序后,显示结果为 。 USE xs

STORE 0 TO nSum DO WHILE .NOT. EOF() IF SUBSTR(xh,3,2)=”03” nSum=nSum+1 ENDIF SKIP ENDDO ? nSum USE

21、Visual Foxpro系统中,除了自由表的字段名、表的索引标识名至多只能有 个字组成外,其它名的长度可多达128个字符。

22、表达式LEN(TRIM(STR(24)))的计算结果为 。

23、依次执行一下命令之后,最后一条命令的输出结果是 。 SET EXACT OFF x=” 6.0”

?IIF(“6.0” = x ,”Visual FoxPro” –x, “Visual FoxPro” + “5.0”) 24、完善下列程序,以实现通过字符串变量操作竖向显示“天长地久”、横向显示“地久天

长”的功能。程序清单如下:

SET TALK OFF

STORE “天长地久” TO ch CLEAR n=1

DO WHILE n<8

? n=n+2 ENDDO

? ??SUBSTR(ch , 1, 4 ) RETURN

25、阅读下列程序,并填写运行结果。 CLEAR x=”OK”

STORE “学习” TO y ok=’努力’

?&x+(y)

运行以上程序后,屏幕显示的结果时 。 26、某银行存款表(ck.dbf)的表结果如下所示:

1)创建ck表的表结构,可以使用下列命令:

CREATE TABLE ck (zh C(15), crrq D, cq N(3,0), je ) 2)为ck表增加下表所示的一条记录,可以使用下列命令:

INSERT (‘10789324’,{^2004/03/12},12,10000)

27、在Visual FoxPro系统的命令窗口中,若输入并执行下列命令: ? MOD(-12,5)

则Visual FoxPro主窗口中显示的结果为 。

28、运行以下程序后,VFP主窗口中显示的结果是 。 【程序清单】 SET TALK OF CLEAR

STORE \计算机基础知识和应用能力等级考试\ vfp=\二级\

a3=RIGHT(a1,8) a2=\ ? &a2+a3

29、在命令窗口中创建的任何变量或数组被自动赋予全局属性。在程序中,可用

命令指定全局(公共)变量。

30、运行下列程序后,显示结果为 。 【程序清单】 CLEAR

c=\南京大学信息管理系\ FOR n=1 TO LEN(c)/2 IF n%2<>0

?? SUBSTR(c,2*n-1,2) ENDIF ENDFOR

31、在VFP集成环境下调试程序时,如果程序在运行过程中出现“死循环”现象,通常可

以通过按键盘上的 键强制中断程序。 32、在某教学管理数据库中有一个学生表(XS.DBF),其表结构及其所含的记录数据如表所

示。

表 学生表的表结构及其记录数据

字段含义 数据类型,宽度 字段名 学号 C,6 XH 010201 记 录 数 据 010203 010202 010301 010402 010302 010401 姓名 C,6 XM 王玲 李勇 张山 刘芳 王勇敢 李园园 张勇 性别 C,2 XB 女 男 男 女 男 女 男 日期 D CSRQ 06/02/82 06/09/82 02/08/81 09/08/83 02/28/82 12/12/81 10/09/82 对于下列SELECT-SQL语句,其查询结果含有 条记录。 SELECT * FROM xs WHERE SUBSTR(xh,5,2)='01'

若学生表已在当前工作区打开,运行下列程序后在VFP主窗口显示的结果为 。 【程序清单】 SET TALK OFF n=0 CLEAR GO TOP

DO WHILE !EOF() IF AT(\勇\,xm)>0 n=n+1 ENDIF SKIP ENDDO ? n

33、运行以下程序后,VFP主窗口显示的结果是 。 【程序清单】

CLEAR i=0 n=0

DO WHILE i<=10 IF MOD(i,2)=0 n=n+1 ENDIF i=i+1 ENDDO ? n

34、有如下程序代码: DIMENSION xx[4] ta=TYPE(\ xx[1]=\ xx=1113

tb=TYPE(\

则这段程序运行后,变量ta和tb的值分别是 。

35、某城市机动车驾驶员登记表(JDCJS)中含有驾驶证号(jzh)等字段。但由于录入人员的差

错,包含了一些重复的记录(jzh字段的值有重复),影响了统计结果。完善下列程序,使其可以物理删除该表中的重复数据。 【程序清单】 USE JDCJS

INDEX ON jzh TAG jzh &&相同的驾驶证号记录将相邻排列 GO TOP last_jzh=jzh SKIP

DO WHILE !EOF() IF jzh=last_jzh DELETE ELSE

ENDIF SKIP ENDDO PACK

36、下列自定义函数NTOC()的功能是:当传递一个1~7之间的数值型参数时,返回一个

中文形式的“星期日~星期六”。例如,执行命令?NTOC(4),显示“星期三”。 FUNCTION NTOC

PARAMETERS n LOCAL ch

ch=\日一二三四五六\

mch=\星期\ , 2) RETURN mch ENDFUC

37、完善下列程序,以显示7~1000以内能被7整除、且含有数字5的所有整数(例如35、

56、105等)。

FOR n=7 TO 1000 ch=ALLT(STR(N)) IF \ ? n ENDIF ENDIF ENDFOR

38、使用LOCAL、PRIVATE和PUBLIC命令可以指定内存变量的作用域。在VFP命令窗

口中创建的任何内存变量均为 变量。

39、将第2~4个字符为“yan”的所有内存变量保存到mVar内存变量文件中,可以使用命

令:

SAVE TO mVar ALL ?yan* 40、某公司实现人性化管理,在每个员工生日的当日会赠送礼品。若其人事档案表中包含一

个出生日期字段(字段名为csrq,类型为日期型),则根据“月日”(不包含“年份”)创建索引时,其索引表达式可以为 (DTOC(csrq,1),4)。

41、在VFP中,系统规定:名称(如变量名、字段名、对象的属性名等)只能以字母、汉

字或下划线等字符开头,不能以数字字符开头。系统预定义了许多系统变量,它们的名称均以 开头。

42、将内存变量文件mVar中所保存的内存变量恢复到内存,且当前已存在的内存变量仍保

留,可以使用命令 FROM mVar ADDITIVE。

第三章 数据库与表的创建及使用(一)

选择题

1、 学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,

C,2),班级(BJ,C,6),用Insert命令向XS表添加一条新记录,记录内容为:

XH 10 XM 李小平 XB 男 BJ 984461 下列命令中正确的是 。 A. INSERT INTO XS VALUES (\李小平\男\B. INSERT TO XS VALUES (\李小平\男\

C. INSERT INTO XS(XH,XM,XB,BJ) VALUES (10,李小平,男,984461)

D. INSERT TO XS(XH,XM,XB,BJ) VALUES (\李小平\男\2、 学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,

C,2),班级(BJ,C,6),并且按XH字段设置了结构复合索引,索引标识为XH,如果XS表不是当前工作表,则下列命令中 可以用来查找学号为“96437101”的记录。

A. SEEK 96437101 ORDER XH B. SEEK “96437101” ORDER XH C. SEEK “96437101” ORDER XH IN XS D. SEEK 96437101 ORDER XH IN XS 3、 利用SET DATE命令可以设置日期的显示格式。如果要将日期显示为“2002年10月1

日”的形式,可以利用命令 。 A.SET DATE TO MDY B.SET DATE TO ANSI C.SET DATE TO YMD D.SET DATE TO LONG

4、 设在当前工作区中已打开一个数据库表。下列命令中,不能将该数据库表关闭的命令

是: 。 A.CLOSE ALL B.CLOSE DATABASE ALL C.USE IN 0 D.CLOSE TABLES

5、 用户在创建某个表的结构时,使用了通用型字段且为表创建了索引,则在保存该表结构

后,系统会在磁盘上生成__ ___个文件。 A.1 B.2 C.3 D.4

6、 创建索引时必须定义索引名。定义索引名时,下列叙述中不正确的是____ ____。 A.索引名只能包含字母、汉字、数字符号和下划线 B.组成索引名的长度不受限制 C.索引名可以与字段名同名

D.索引名的第一个字符不可以为数字符号

7、 用表设计器创建一个自由表时,不能实现的操作是___ ____。 A.设置某字段可以接受NULL值 B.设置表中某字段的类型为通用型 C.设置表的索引 D.设置表中某字段的默认值 8、 关于表的备注型字段与通用型字段,以下叙述中错误的是 。 A.字段宽度都不能由用户设定 B.都能存储文字和图像数据 C.字段宽度都是4 D.存储的内容都保存在与表文件名相同的.FPT文件中

9、 对xsb.dbf表进行删除操作,下列四组命令中功能等价的是 。 1)DELETE ALL 2)DELETE ALL PACK 3)ZAP

4)把xsb.dbf文件拖放到回收站中 A.1)、2)、3) B.3)、4) C.2)、3) D.2)、3)、4) 10、如果要对自由表某一子段的数据之建立唯一性保护机制(即表中所有字段的值不重复),

以下表述中正确的是 。 A.对该字段创建主索引 B.对该字段创建唯一索引 C.对该字段创建候选索引 D.对该字段创建普通索引

11、若为xs.dbf表添加一个宽度为6的字符型字段mc,以下命令中正确的是 。 A.ALTER TABLE xs ADD mc C(6) B.ALTER xs.dbf ADD COLUMN mc C(6)

C. ALTER xs.dbf ADD mc C(6) D. ALTER TABLE xs ADD FIELD mc C(6)

12、在Visual FoxPro系统中,测试表文件指针是否已到文件尾的函数

是 。 A.BOF() B.EOF() C.END() D.FILE()

13、在Visual FoxPro系统中,使用UPDATE-SQL命令修改记录数据时,若无WHERE条件

子句,则默认为修改 。 A.第一条记录 B.当前记录 C.全部记录 D.当前记录以后的记录

14、有如下一段程序:

CLOSE TABLES ALL USE XS SELE 3 USE JS

USE KC IN 0 BROW

上述程序执行后,浏览窗口中显示的表及当前工作区号分别是 。 A.KC、2 B.KC、3 C.JS、3 D.JS、2

15、若要将当前工作区中打开的表文件GZB.DBF复制到GZB1.DBF文件,则可以使用命

令 。

A.COPY GZB.DBF GZB1.DBF B.COPY TO GZB1 REST C.COPY TO GZB1 STRU D.COPY TO GZB1

16、在创建表索引时,索引表达式可以包含表的一个或多个字段。在下列字段类型中,不能

直接选作索引表达式的是 。 A.货币型 B.日期时间型 C.逻辑型 D.备注型 17、表(table)是存储数据的容器。在下列有关VFP表的叙述中,错误的是 。 A.系统默认的表文件扩展名为.dbf

B.利用表设计器创建表结构时,系统默认的字符型字段宽度为10 C.自由表的索引功能与数据库表有区别

D.表文件名在命名时只要遵循操作系统的规定,VFP本身无任何新的限定 18、在下列有关VFP表索引的叙述中,错误的是 。

A.通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选 B.对于数据库表来说,可以创建VFP系统支持的所有类型的索引 C.在表打开时,系统会自动地将默认的第一个索引作为主控索引 D.表的唯一索引并不能控制字段数据输入时的重复 19、VFP系统中,表的结构取决于 ___________ 。 A. 字段的个数、名称、类型和长度 B. 字段的个数、名称、顺序 C. 记录的个数、顺序 D. 记录和字段的个数、顺序 20、在定义表结构时,以下__________ 数据类型的字段宽度都是定长的。 A. 字符型、货币型、数值型 B. 字符型、货币型、整型 C. 备注型、逻辑型、数值型 D. 日期型、备注型、逻辑型 21、彻底删除记录数据可以分两步来实现,这两步是 。 A. PACK和ZAP B. PACK和RECALL C. DELETE和PACK D. DELE和RECALL

22、在Visual FoxPro中创建含备注字段的表和表的结构复合索引文件后,系统自动生成的

三个文件的扩展名为 ___________ 。 A. .PJX、.PJT、.PRG B. .DBF、.CDX、.FPT C. .FPT、.FRX、.FXP D. .DBC、.DCT、.DCX 23、表之间的“一对多”关系是指___________ 。

A. 一个表与多个表之间的关系 B. 一个表中的记录对应另一个表中的多个记录

C. 一个表中的记录对应多个表中的一个记录 D. 一个表中的记录对应多个表中的多个记录

24、对于自由表而言,不允许有重复值的索引是 _______ 。 A. 主索引 B. 侯选索引 C. 普通索引 D. 唯一索引

25、要求一个表中的数值型字段数据精度具有 4 位小数,则该字段的宽度至少定义为

_________ 。 A. 4位 B. 5位 C. 6位 D. 12位 26、打开一个空表,执行 ?EOF(),BOF()命令,显示结果为_________。 A. .T.和.T. B. .F.和.F. C. .F.和.T. D. .T.和.F. 27、当执行命令 USE teacher ALIAS js IN B 后,被打开的表的别名是_________。 A. teacher B. js C. B D. js_B 28、索引文件中的标识名最多由_______个字母、数字或下划线组成。 A. 5 B. 6 C. 8 D. 10 29、一张表的全部Memo字段的内容存储在___________。

A. 不同的备注文件中 B. 同一个文本文件中 C. 同一个备注文件中 D. 同一个数据库文件中

30、有关表的索引,下列说法中不正确的是___________。

A. 当一张表被打开时,其对应的结构复合索引文件被自动打开 B. 任何表的结构复合索引能控制表中字段重复值的输入 C. 一张表可建立多个候选索引 D. 主索引只适用于数据库表

31、建立索引时,__________字段不能作为索引字段。 A. 字符型 B. 数值型 C. 备注型 D. 日期型

填空题

1、 一个OLE对象可以连接或嵌入到表的 型字段中。

2、 使用SET FILTER TO 命令所设置的过滤器,对DELETE-SQL命令、UPDATE-SQL命令

及 命令不起作用。

3、 已知自由表STUDENT中有20条记录,执行下列程序段后,N的值为 。 程序清单如下: USE STUDENT DELETE NEXT 4 SET DELETED ON

N=RECCOUNT() 4、 执行下列命令后: SET EXCLUSIVE OFF USE JS

USE XS EXCLUSIVE IN 0

JS表的打开方式是 ,XS表的打开方式是 。 5、 执行下列命令后:

CLOSE TABLES ALL SELECT 0

USE XS ALIAS STU USE JS IN 0

函数USED(\的值是 ,函数SELECT()的值是 ,函数ALIAS()的值是_ __。

6、 已知教师表JS.DBF的表结构如下: 字段名 类型 长度 小数位 GH XM GL JBGZ C C N N 6 8 2 7 2 含义 工号 姓名 工龄 基本工资 若要求按如下条件更改基本工资(JBGZ): 工龄在10年以下(含10年)者基本工资加200 工龄在10年以上(不含10年)者基本工资加400 可用如下命令来完成: UPDATE JS __ JBGZ=IIF( ,JBGZ+200,JBGZ+400)。 7、 设教师表JS.DBF的表结构如下: 字段名 类型 长度 小数位 含义 GH XM GL C C N 6 8 2 8 工号 姓名 工龄 出生日期 _ ___ CSRQ D 要删除教师表中年龄在60岁以上(不含60岁)的教师记录,可使用命令: Delete From JS Where _________

8、 使用一条命令关闭非当前工作区中表JS,可用命令:USE _______ JS。 9、 为了选用一个未被使用的编号最小的工作区,可使用命令__ ____ __。 10、有一个表文件XSDA,含有一个学号字段(XH,C,8)。利用ALTER TABLE xsda

_____________COLUMN xh C(10)命令,可以将学号字段的宽度修改为10。

11、在一个学生挡案表中,要实现多字段排序:先按班级(bj,N,1)顺序排序,同班的同学

再按出生日期(csrq,D)顺序排序,则其索引表达式应为: 。 12、表的备注型字段和通用型字段的字段宽度是固定值,它们分别为 。 13、指定Visual FoxPro系统是否处理标有删除标记的记录,以及其他命令是否可以操作它

们,常使用下列命令:SET ON。

14、在打开一个表时,必须为该表指定一个“工作区”。如果某工作区已经打开了一个表,

再在此工作区中打开另一个表时, 将自动被关闭。 15、下面的命令是给XS表中的记录做删除标记。若要恢复XS表中学号(XH)字段以“99”

开头的带有删除标记的记录,可使用命令 。 USE XS

DELETE FOR XH=\

16、在Visual FoxPro系统中,工作区是指用于标识一张打开表的区域。打开一张表前,必

须为该表指定一个工作区。选择未被使用的最小编号的工作区,可以使用命

令 。

17、若已经为在当前工作区中打开的表设置了主控索引,将记录指针移动到物理顺序的第一

条记录,所用的命令为GOTO 1,而将记录指针移动到逻辑顺序的首纪录,所使用的命令为

18、若xs.dbf表中含有10个字段且已在当前工作区中打开,则仅浏览表中xh、xm 、xb这

三个字段的数据,可用:BROWSE 或SELECT xh,xm,xb FROM xs 命令。

19、设有一表文件xs.dbf且已在当前工作区中打开,则使用命令COPY TO ,

可以将该表的数据复制到ASCII码文件xs.txt中。

20、设职工(ZG)表中含有2个日期型字段:参加工作日期(cjgzrq)和出生日期(csrq)。若要

创建一个索引,要求先根据参加工作日期排序,参加工作日期相同时根据出生日期排序,则索引表达式应为 。

21、在Visual FoxPro系统中,对于包含备注型字段或 字段的表来说,

在创建表结构时系统会自动生成和管理一个相应的备注文件,用于存储备注内容。备注文件的文件名与表文件名相同,其扩展名为.fpt。 22、虽然结构复合索引文件是随表的打开而自动打开的,但复合索引中的任何一个索引都不

会被自动设置为主控索引,此时表中的记录仍然按记录的物理顺序显示和访问。要设置一个表的主控索引可以有两种方式:在打开表的同时打开索引,或打开表以后再设置主控索引。打开表以后再设置主控索引的命令为 。 23、完善下面的命令,实现向xs表中追加一条新的记录。

INSERT INTO xs(xh,xm,xb,ximing) ('950101' , '李林' , '男' ,' ')

24、在VFP中,与表操作相关的系统函数有多个,例如EOF()、BOF()、USED()等。

用于返回当前选定工作区已打开表的字段数目的函数是 。

25、下列程序段中的后三条命令,可用一条功能等价的命令来实现,这条命令

是 。 SET TALK OFF SELECT 1 USE xs SELECT 0 USE cj

SELECT XS

26、利用COPY命令可以将当前工作区中的表复制成Microsoft Excel文件。若当前工作区

中已打开XS表,则使用命令COPY TO xyz ,可以将XS表复制成Excel文件xyz.xls。

27、使用USE命令可以打开或关闭表。如果XS表已在第1号工作区中打开,则要在第10

号工作区中再次打开XS表,可使用命令USE xs IN 10。 28、______型数据只能用于表而不能用于内存变量。

29、当打开的表为一个空表时,函数RECNO()的值为________。

第三章 数据库与表的创建及使用(二)

选择题

1、 在Visual FoxPro 中创建数据库后,系统自动生成的三个文件的扩展名分别

为 。 A. .PJX、.PJT、.PRG B. .DBC、.DCT、.DCX C. .FPT、.FRX、.FXP D. .DBC、.SCT、.SCX 2、 数据库表移出数据库后,仍然有效的是 。 A. 字段的有效性规则 B. 表的有效性规则 C. 字段的默认值 D. 结构复合索引 3、 数据库表的参照完整性规则包括更新规则、删除规则和插入规则。其中,插入规则可以

设置为 。

A. 级联,或限制,或忽略 B.级联,或忽略 C. 级联,或限制 D. 限制,或忽略

4、 数据库表的字段扩展属性中,通过对 的设置可以限制字段的内容仅为英文字母。 A. 字段格式 B. 输入掩码 C. 字段标题和注释 D. 字段级规则 5、 数据库中添加表的操作时,下列叙述中不正确的是___ __。 A. 可以将一个自由表添加到数据库中

B. 可以将一个数据库表直接添加到另一个数据库中 C. 可以在项目管理器中将自由表拖放到数据库中

D. 欲使一个数据库表成为另一个数据库的表,则必须先使其成为自由表 6、 参照完整性是用来控制数据的一致性。在Visual FoxPro系统中,系统提供的参照完整性

机制不能实现的是: 。 A.设置“更新级联”:更新主表主关键字段的值,用新的关键字值更新子表中所有相关记录。

B.设置“删除级联”:主表可以任意的删除记录,同时删除子表中所有相关记录。 C.设置“删除限制”:若子表中有相关记录,则主表禁止删除记录。 D.设置“插入级联”:主表插入新的记录后,在子表自动插入相应的记录。 7、 触发器是绑定在表上的表达式,当表中的记录被指定的操作命令修改时,触发器被激活。

Visual FoxPro提供的触发器不包括 。 A.删除触发器 B.级联触发器 C.更新触发器 D.插入触发器 8、 利用索引可以提高数据的处理速度,且可以用来强制表记录的唯一性。在下列有关表索

引的叙述中,错误的是 。

A.结构复合索引文件的扩展名为.Cdx,而非结构复合索引文件的扩展名为.idx B.自由表可以创建候选索引,但不能创建主索引

C.数据库表仅可以创建一个主索引,但可以创建多个候选索引 D.任何一个表均可以创建多个普通索引和多个唯一索引

9、 在Visual FoxPro系统中,对于数据库表来说,有多种手段控制数据的有效性。在下列的

叙述中,错误的是 。

A.通过设置字段的格式(Format)属性,可以使输入字段的英文字符自动大写 B.字段的有效性规则可以为一个用户自定义函数

C.记录的有效性规则可以用来控制同一条记录中多个字段之间的关系

D.在数据库表之间创建永久性关系并设置参照完整性规则,可使两个表之间的记录一一对应

10、Visual FoxPro系统中,对数据库表设置参照完整性过程时,“更新规则”选择了“限制”

选项后,则 。

A.在更新父表的关键字的值时,新的关键字值更新子表中的所有相关记录 B.在更新父表的关键字的值时,若子表中有相关记录则禁止更新 C.在更新父表的关键字的值时,若子表中有相关记录则允许更新 D.在更新父表的关键字的值时,不论子表中是否有相关记录

11、下列关于项目、数据库和表的描述中,错误的是 。 A.一个项目可以包含多个数据库 B.一个数据库可以包含在多个项目中 C.一个数据库可以包含多个表 D.一个表可以包含在多个数据库中 12、下列关于数据库、表和视图操作的叙述中,错误的是 。 A.关闭一个数据库,将自动关闭其所有已打开的数据库表 B.打开一个数据库表,将自动打开其所对应的数据库 C.关闭一个视图所对应的基表,将自动关闭该视图 D.关闭一个视图,不会自动关闭其所对应的基表

13、在VFP中,对于数据库表来说,如果将其移出数据库(变成自由表),则该表原设置或

创建的 仍然有效。 A.候选索引 B.长表名 C.记录有效性规则 D.触发器 14、在VFP中,如果指定两个表的参照完整性的删除规则为“级联”,则当删除父表中的记

录时 。

A.系统自动备份父表中被删除记录到一个新表中 B.若子表中有相关记录,则禁止删除父表中记录 C.自动删除子表是所有相关记录

D.不作参照完整性检查,删除父表记录与子表无关

15、数据库(database)是许多相关数据库表及其关系等对象的集合。在下列有关VFP数据

库的叙述中,错误的是 。 A.可用命令新建数据库

B.从项目管理器中可以看出,数据库包含表、视图、查询、连接和存储过程 C.创建数据库表之间的永久性关系,一般是在数据库设计器中进行

D.数据库表之间创建“一对多”永久性关系时,主表必须用主索引或候选索引 16、下列说法中正确的是 。

A.数据库打开时,该库中的表将自动打开

B.当打开数据库中的某个表时,该表所在的数据库将自动打开 C.如果数据库以独占的方式打开,则库中的表只能以独占方式打开

D. 如果数据库中的某个表以独占方式打开,则库中的其它表也只能以独占方式 17、字段的默认值是保存在 。 A. 表的索引文件中 B. 数据库文件中 C. 项目文件中 D. 表文件中 18、表移出数据库后,仍然有效的是 。 A. 字段的有效性规则 B. 表的有效性规则 C. 字段的默认值 D. 结构复合索引文件中的候选索引 19、关于数据库的操作,下述说法中, 是正确的。 A. 数据库被删除后,则它包含的数据库表也随着被删除

B. 打开了新的数据库,则原来已打开的数据库被关闭 C. 数据库被关闭后,它所包含的数据库表不能被打开 D. 数据库被删除后,它所包含的表可以变成自由表

20、在向数据库中添加表的操作时,下列说法中不正确的是 ________。 A. 可以将自由表添加到数据库中

B. 可以将数据库表添加到另一个数据库中

C. 可以在项目管理器中将自由表拖放到数据库中

D. 先将数据库表移出数据库成为自由表,而后添加到另一个数锯库中

21、如果一个数据库表的DELETE触发器设置为.F.,则不允许对该表作_________的操作。 A. 修改记录 B. 删除记录 C. 增加记录 D. 显示记录 22、下列关于数据库的描述中,不正确的是 __________ 。

A. 数据库是一个包容器,它提供了存储数据的一种体系结构 B. 数据库表和自由表的扩展名都是.DBF

C. 数据库表的表设计器和自由表的表设计器是不相同的 D. 数据库表的记录保存在数据库中

23、创建数据库后,系统自动生成扩展名为 ________ 的三个文件。 A..SCX、.SCT、.SPX B..DBC、.DCT、.DCX C..PJX、.PJT、.RPJ D..DBF、.DBT、.FPT 24、下列关于索引的描述中,不正确的是 ________。 A. 结构和非结构复合索引文件的扩展名均为.CDX B. 结构复合索引文件随表的打开而自动打开

C. 一个数据库表仅能创建一个主索引和一个唯一索引

D. 结构复合索引文件中的索引在表中的字段修改时,自动更新

25、设计数据库时,可使用纽带表来处理表与表之间的______________。 A. 多对多关系 B. 临时性关系 C. 永久性关系 D. 继承关系 26、如果要在数据库的两张表之间建立永久关系,则至少要求在父表的结构复合索引文件中

创建一个____________,在子表的结构复合索引文件中创建任何类型的文件。 A. 主索引 B. 候选索引 C. 主索引或候选索引 D. 唯一索引 27、数据库表之间创建的永久关系保存在_________中。 A. 数据库表 B. 数据库 C. 表设计器 D. 数据环境设计器

28、在数据库jxsj.dbc中,要获得表js.dbf字段gh的标题,先打开该数据库,并为当前数据

库,再用函数DBGETPROP(_________,\。 A. js.gh B. \C. gh D. \

29、在参照完整性的设置中,如果当主表中删除记录后,要求删除子表中的相关记录,则应

将“删除”规则设置为__________。 A. 限制 B. 级联 C. 忽略 D. 任意 30、要在两张相关的表之间建立永久关系,这两张表应该是____________。 A. 同一个数据库内的两张表 B. 两张自由表 C. 一张自由表,一张数据库表 D. 任意两张数据库表或自由表 31、以下的__________操作将造成相关表之间数据的不一致。 A. 在主表中插入记录的主关键字的值是子表中所没有的 B. 在主表中删除了记录,而在子表中没有删除相关记录 C. 在子表中删除了记录,而在主表中没有删除相关记录

D. 用主表的主关键字字段的值修改了子表中的一个记录 32、以下___________操作不会损坏相关表之间的数据一致性。 A. 删除了子表中的记录而没有删除主表中相关记录 B. 删除了主表中的记录而没有删除子表中相关记录

C. 在子表中插入记录的为外部关键字值是主表关键字中所没有的 D. 主表中修改了主关键字值而子表中没修改有关的外部关键字值 33、如已在学生表和成绩表之间按学号建立永久关系,现要设置参照完整性:当在成绩表中

添加记录时,凡是学生表中不存在的学号不允许添加,则该参照完整性应设置为_________。 A. 更新级联 B. 更新限制 C. 插入级联 D. 插入限制

填空题

1、 若当前数据库中有一个名为GBDA的表,且表中有一个名为XM的字段,则利用函数

设置该字段的标题属性为“姓名”的命令为:=DBSETPROP(\ ,\姓名\)。

2、 某公司商品数据库中包含供货商表和商品表,表结构如下所示。 供货商表的表结构 字段名 供应商ID 公司名称 联系人 地址 城市 邮政编码 电话 数据类型 宽度 N C C C C C C 8 40 30 60 10 6 24 商品表的表结构 字段名 产品ID 产品名称 供应商ID 类别 单位数量 单价 库存量 数据类型 N C N C N N N 宽度 8 40 8 20 6 7,2 8 商品表的主关键字是“产品ID”,供货商表的主关键字是“供应商ID”,这两个表存在一对多关系,且所有的商品都是来自已知的供货商。其中主表是__ ____ __表。如果要在这两个表之间建立永久关系,则应在主表中以__ ____ _字段为索引关键字建立主索引,在子表中以___ ____ __字段为索引关键字建立普通索引。

以上两个表的部分记录如下所示。建立的参照完整性规则为:更新级联、删除限制、插入限制。就表中已知的数据而言,如果把供货商表中记录号为125的记录的“供货商ID”字段值更改为2037,则商品表中会有__ ____ __条记录被更改。

供货商表数据 记录号 供应商ID 公司名称 联系人 地址 125 126 127 2034 3028 3475 佳佳乐 城市 邮政编码 电话 (01065552222 (01065554822 (05445603237 )))陈小姐 西大街10号 北京 100023 富康食品 黄小姐 幸福街90号 北京 100045 福满多 胡先生 前进街22号 福建 848100 商品表数据

记录号 产品ID 产品名称 供应商ID 类别 356 357 358 359 360 361 362 11 20 23 34 39 46 50 苹果汁 2034 牛奶 麻油 肉松 龙虾 2034 3028 3028 3475 番茄酱 3475 海苔酱 3028 饮料 饮料 单位数量 单价 库存量 每箱24瓶 18.00 96 每箱24瓶 19.00 4 调味品 每箱12瓶 10.00 120 调味品 每箱12瓶 21.30 36 调味品 每箱24瓶 21.05 33 调味品 每箱24瓶 17.00 58 海鲜 每袋500克 6.00 308 3、 数据库要求有最小的冗余度,是指数据尽可能不重复。数据库的___ ____,是指数据库以最优的方式服务于一个或多个应用程序;数据库的独立性,是指数据的存储尽可能独立于使用它的应用程序。 4、 对数据库表添加新记录时,系统自动地为某一字段给定一个初始值,这个值称为该字段

的___ ___。

5、 要查看CJ表的CJ字段的标题,可用命令:

? DBGETPROP(\

6、 XSDA 表已经在工作区2中打开,则SELECT(\的值是 。如果XSDA

表中有一个字段名为BYXX的字段,且已设置了字段标题,则表达式DBGETPROP(\ \)的返回值为该字段的标题。

7、 数据库是一种数据容器。从项目管理器窗口看,数据库可以包含的子项有:表、本地视

图、 、连接和存储过程。

8、 数据库表和数据库之间的相关性是通过表文件和库文件之间的双向链接实现的。双向链

接包括前链和后链。其中,前链是保存在数据库文件中的有关表文件的路径和文件名信息,后链是保存在表头中的拥有该表的数据库文件的路径和库文件名信息。假设JS表所从属的数据库文件被意外删除,则可以使用 TABLE JS命令删除存储在JS表中的后链。

9、 设数据库SJK.DBC中的表XS.DBF已设置了主索引、字段的默认值。如果将XS.DBF

移出SJK.DBC,则主索引转换为 _ ,字段的默认值变成无效。 10、向数据库中添加表是把自由表添加到数据库中,使之成为数据库表。这一操作的本质是

建立了库与表之间的____ ____。

11、Visual FoxPro系统通过表间级、记录级、 三级完整性约束,有效地实现数据

的完整性与一致性。

12、数据库是一个容器,是许多相关的数据库表及其关系的集合。数据库通常包括两部分,

一是按一定的数据模型组织并实际存储的所有应用需要的数据,二是存放在数据字典中的各种描述信息。这些描述信息是有关数据的“数据”,称为“ ”。 13、设sjk1.dbc、sjk2.dbc、sjk3.dbc、sjk4.dbc和sjk5.dbc分别是存放在当前工作路

径中的五个数据库文件名,用户可以使用OPEN DATABAE命令打开数据库。在Visual

FoxPro系统的命令窗口中,依次执行下列命令后,则被打开的数据库文件个数有 个。

CLOSE DATABASE ALL OPEN DATABASE sjk1 OPEN DATABASE sjk2 OPEN DATABASE sjk3

OPEN DATABASE sjk4 OPEN DATABASE sjk5

14、在利用“参照完整性生成器”对话框设置参照完整性规则时,系统自动地生成完成该规

则的程序代码。规则的代码被保存在数据库中,而规则的实施由主表和子表的 完成。

15、在删除某个数据库文件时,原数据库中包含的表仍然保留对该数据库引用的后链,而且

这些表不能被添加到其他的数据库中。如果要使这些表能被添加到其他数据库中,需要从表中删除后链。删除表后链的命令是 。

16、数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据,

这些数据通常称为 。 17、触发器是绑定在表上的逻辑表达式,当表中的任何记录被指定的操作命令操作时,触发

器被激活。如果触发器的返回值是 ,则系统不执行相应的操作。 18、教学管理数据库中含有课程表(KC.DBF),该表中有以下字段:kcdh(课程代号 C),

kcm(课程名 C),bxk(必修课 L),xf(学分 N)。现要为该表设置一个记录级的规则:学分大于3的课程均为必修课,则相应的逻辑表达式是 。 19、已知某数据库中有学生表和成绩表,且两张表之间已经建立了参照完整性(学生表为主

表,成绩表为子表)。如果将学生表中的某位学生的记录删除,要求将该学生在成绩表中的所有记录将自动全部被删除,则两表之间的参照完整性设置是 。 20、利用DBSETPROP()函数,可以设置当前数据库的属性,或设置当前数据库中表的字

段或视图的有关属性。例如,要设置当前数据库中JS表的gh字段的标题,可以使用函数:

DBSETPROP(\ \工号\

21、在VFP中, 是保存在数据库中的过程代码,它由一系列用户自定义函数

(过程)或在创建表之间参照完整性规则时系统创建的函数(过程)组成。

22、利用DBGETPROP()函数,可以返回当前数据库的属性,也可返回当前数据库中表、

表的字段或视图的有关属性。例如,要得到JS表的记录级有效性规则表达式,可以使用函数:

DBGETPROP(\ \

23、在VFP中创建一个新的数据库后,系统会生成三个文件,其文件扩展名分别为

(数据库主文件)、.dct(数据库备注文件)和.dcx(数据库索引文件)。

24、在设置表之间的参照完整性规则时,系统给定的更新和删除规则有3个,即级联、限制

和忽略,而插入规则仅有2个,即 。

25、假定有三个数据库文件:MYDATA1,MYDATA2,MYDATA3,它们分别存放在C盘

的DATA目录,D盘的DATA目录,A盘的DATA目录,完善下列程序,使得程序执行以后,DBC()函数的值为 D:\\DATA\\MYDATA2.DBC。 OPEN DATABASE C:\\DATA\\MYDATA1 OPEN DATABASE D:\\DATA\\MYDATA2 OPEN DATABASE A:\\DATA\\MYDATA3 ? DBC()

26、如果数据库表的插入触发器设置为.F.,则当向该表中插入一条空记录时,屏幕显示

______。

第四章 查询和视图

选择题

1、 在Visual FoxPro 中,创建 将不以独立的文件存储。 A. 查询 B. 类库 C. 视图 D. 菜单 2、 利用查询设计器创建的查询,其查询结果输出去向的默认类型是 。 A. 临时表 B. 浏览 C. 表 D. 屏幕 3、 不可以作为查询与视图的数据源的是 。 A. 文件 B. 数据库 C. 记录 D. 字段

4、 根据需要,可以把查询的结果输出到不同的目的地。以下不可以作为查询的输出类型的

是___ __。 A. 自由表 B. 报表 C. 临时表 D. 表单

5、 使用SELECT-SQL命令来建立各种查询时,下列叙述中正确的是: 。 A.基于两个表创建查询时,必须预先在两个表之间创建永久性关系

B.基于两个表创建查询时,查询结果的记录数不会大于任一表中的记录数 C.基于两个表创建查询时,两个表之间可以无同名字段

D.用OEDER BY子句只能开展控制查询结果按某个字段进行升序排序

6、 要在浏览窗口中显示表js.dbf中职称(zc c (10))为“教授”和“副教授”的纪录(该字

段的内容无前导空格),下列命令中不能实现此功能的是 。 A.SELECT * FROM js WHERE js.zc=”教授” OR js.zc=”副教授” B. SELECT * FROM js WHERE ”教授” $ js.zc

C. SELECT * FROM js WHERE js.zc IN(”教授” ,”副教授”) D. SELECT * FROM js WHERE WHERE RIGHT(js.zc,4)=”教授”

7、 设有一自由表xx.dbf。下列SELECT-SQL命令中,语法错误的是 。 A. SELECT * FROM xx B. SELECT * FROM xx INTO CURSOR temp

C. SELECT * FROM xx INTO TABLE temp D. SELECT * FROM xx INTO temp

8、 VFP系统中的查询文件是指一个包含一条SELECT-SQL命令的程序文件,文件的扩展

名为________ 。 A. .PRG B. .QPR C. .SCX D. .TXT 9、 VFP系统中,使用查询设计器生成的查询文件中保存的是_______。 A. 查询的命令 B. 与查询有关的基表 C. 查询的结果 D. 查询的条件 10、运行查询 CX1.QPR命令是 ________ 。 A. USE CX1 B. USE CX1.QPR C.DO CX1.QPR D.DO CX1

填空题

1、 某数据库中有下列所述结构的两个表(BRDA和MXB),并且已创建了一对多关系。

病人档案表(BRDA) 字段名 病历号 姓名 性别 年龄 联系地址 类型 C C L N C 宽度 6 8 1 3 40 病人取药明细情况表(MXB) 字段名 病历号 药品编号 单价 数量 日期 类型 C C N N D 宽度 6 8 7,2 3 8 下列的查询语句用于查询病人用药总金额大于1000的病人信息(病历号、姓名、总金额),请完善该语句:

SELECT 病历号,姓名,SUM(单价*数量)AS 总金额; FROM brda,mxb;

WHERE ; GROUP BY 1;

HAVING

2、 学生管理数据库中有二个表:学生表和成绩表,表结构分别如下: 学生表(xs.dbf) 学号 姓名 性别 出生日期 xh xm xb csrq c,8 c,8 c,2 d 学号 课程号 课程名 成绩 成绩表(cj.dbf) xh kch kcm cj c,8 c,2 c,20 n,3 基于XS表和CJ表创建视图XSZCJ(学生总成绩),有一个按班级号查该班每一个学生总成绩的表单如下:

班级号由学号的前6位组成,表单中表格控件的RecordSource属性值为视图XSZCJ,该视图对应的SELECT-SQL命令应为:

SELECT xs.xh,xs.xm,SUM(cj.cj) AS zcj; FROM xs.cj;

WHERE xs.xh=cj.xh; GROUP BY __ ____ __ 表格控件的第三列(“总成绩”)列控件的ControlSource属性值应设置为__ ____ __,表单中组合框对象的RowSourceType属性值为3-SQL,RowSource属性值为: SELECT DISTINCT SUBSTR(xs.xh,1,6)FROM xs INTO CURS xtmp

要求当组合框的内容发生变化时,表格中只显示相应班级的学生总成绩,则组合框的InterActivateChange事件的代码应为:

LOCAL Lsxh

Lsxh=ALLT(this.Value)

SET FILTER TO SUBSTR(xszcj.xh,1,6)=__ ____ __ Thisform.Refresh

3、 在数据库系统中,英文缩写\的英文全名是____________。 4、 在学生管理数据库中,有一个成绩表(CJ.DBF),表结构如下: 成绩表(cj.dbf) 学号 课程号 成绩 成绩表(CJ.DBF)含有内容如下: XH 990201 990201 990201 990201 990201 990201 990202 990202 990202 990202 990202 990301 KCDH 01 02 03 04 05 06 02 03 04 05 06 01 CJ 78 80 80 73 82 95 62 69 93 95 84 63 xh kch cj c,8 c,2 n,3 下列是基于CJ.DBF的SELECT-SQL语句,其功能是________,查询结果输出去向是表文件。 SELECT Cj.xh AS 学号,Cj.kcdh AS 课程代号,Cj.cj AS 成绩,“优秀” AS 等级; FROM sjk!cj; WHERE Cj.cj>=90;

__ ____ __TABLE cxl.DBF 5、 用SELECT-SQL命令对数据进行查询时,SELECT命令中FROM子句用来指定数据源

表,_ __子句用来筛选源表记录, 子句用来筛选结果记录。 6、 设有以下两条SELECT查询命令: 1)SELECT xs.xh,xs.xm,zy.zymc; FROM sjk!xs,sjk!zy;

WHERE xs.zydh=zy.zydh;

INTO CURSOR CX1; ORDER BY 3

2)SELECT xs.xh,xs.xm,zy.zymc;

FROM sjk!xs INNER JOIN sjk!zy;

ON xs.zydh=zy.zydh; INTO CURSOR CX1; ORDER BY 3

两条查询命令的功能 _ 。(注:回答相同或不相同) 7、 在教学管理数据库中有三张表:学生(XS)、课程表(KC)和成绩表(CJ)。表结构如

下:

学生表(XS.DBF) 学号 XH 姓名 XM 性别 XB C,6 C,8 C,2 成绩表(CJ.DBF) 学号 成绩 XH CJ C,6 C,3 课程代号 KCDH C,2 课程表(KC.DBF) 课程代号 KCDH 课程名 学分 KCM XF C,2 C,18 N,2 假设某校规定总学分达到100分方可毕业,现要求从教学管理数据库中查询满足毕业条件的学生信息。要求查询结果输出字段为:学号、姓名、性别和总学分。 SELECT XS.XH,XS.XM,XS.XB, _ AS 总学分; FROM SJK!XS INNER JOIN SJK!CJ INNER JOIN SJK!KC; ON KC.KCDH=CJ.KCDH; ON XS.XH=CJ.XH; WHERE CJ.CJ>=60; GROUP BY XS.XH; HAVING 总学分>=100; ORDER BY 4 DESC

8、 SELECT查询命令中的 子句,可以把一个SELECT语句的查询结果同另一

个SELECT语句的查询结果组合起来。

9、 某数据库中有两个数据库表:物资表(WZB.DBF)和领用表(LYB.DBF),两个表具有

一对多关系。完善下面的SELECT语句,使其实现查询近10天内各部门的各种物资领用数量。

物资表(WZB.DBF) 字段名 物资代号 物资名称 类型 C C 宽度 6 12 字段名 物资代号 领用部门 领用数量 领用日期 领用表(LYB.DBF) 类型 C C N D 宽度 6 20 3 8 SELECT 物资代号,物资名称,领用部门, AS 领用数量; FORM wzb,lyb;

WHERE wzb.物资代号=lyb.物资代号 AND ; GROUP By 1,3; ORDER By 3,1

10、设有表文件CJB.DBF,表中共有30条记录,记录内容如下表所示: 学号 课程代号 成绩 学号 课程代号 成绩 学号 课程代号 成绩 XH 990201 990201 990201 KCDH 01 02 03 CJ XH KCDH 05 06 01 CJ XH KCDH 03 04 05 CJ 89 98 68 78 990202 80 990202 80 990201 95 990302 84 990302 63 990203 990201 990201 990201 990202 990202 990202 990202 04 05 06 01 02 03 04 73 990201 82 990201 95 990201 63 990201 62 990201 69 990202 93 990202 02 03 04 05 06 01 02 62 990203 82 990203 93 990203 95 990203 76 990203 78 990204 80 990204 06 01 02 03 04 01 03 84 87 78 85 80 51 86 SET TALK OFF

SELECT kcdh,AVG(cj) AS 平均成绩,COUNT(*)AS 选修人数; FROM cjb;

GROUP BY kcdh;

ORDER BY kcdh DESC; INTO CURSOR LsbA SELECT *

FORM LsbA;

WHERE RECNO()<4; INTO CURSOR LsbB GO TOP ? kcdh

上述程序运行时,屏幕上显示的结果是:

11、设sjk.dbc数据库中有三个数据库表:xim.dbf(系名表)、js.dbf(教师表)和xs.dbf

(学生表)。其中,xim.dbf含有:系代号(xdh C (2))、系名(ximing C (18))字段;js.dbf、xs.dbf均含有:姓名(xm C (8)),系代号(xdh C (2))字段。要求查询“计算机科学系”的全体师生名单,结果中包含两列:类别、姓名,其中类别用于注明“教师”或“学生”,输出结果首先按照类别排序,若类别相同再按姓名排序。 SELECT “教师” AS 类别,js.xm AS 姓名; FROM sjk!js,sjk!xim; WHERE js.xdh=xim.xdh AND xim.ximing=”计算机科学系”; UNION; SELECT AS 类别,xs.xm AS 姓名; FROM sjk!xs,sjk!xim; WHERE xs.xdh=xim.xdh AND xim.ximing=”计算机科学系”; ORDER BY 1,2

12、设有一个会议代表签到信息的表文件bd.dbf,包括xh(序号)、xm(姓名)、dw(单位)

等字段。如果每个单位可以有多个代表参加,则可以利用命令: SELECT dw FROM bd INTO TABLE dwb

生成一个仅含有单位字段且记录值不重复的表文件dwb.dbf。如果要统计各单位参加会议的人数并根据人数由多到少排序,则可以利用命令:

SELECT dw AS 单位, AS 人数;

FROM bd;

GROUP BY ; ORDER BY 2 DESC

13、设某图书管理数据库中有三张表:图书.dbf、读者.dbf与借阅.dbf。表结构如下: 图书.dbf结构 读者.dbf结构 借阅.dbf结构 字段名 总编号 分类号 书名 出版单位 作者 单价 字段类型 C(10) C(10) C(28) C(20) C(8) N(7,2) 字段名 借书证号 单位 姓名 性别 职称 地址 字段类型 C(6) C(18) C(8) C(2) C(10) C(20) 字段名 借书证号 总编号 借书日期 字段类型 C(6) C(10) D(8) 完善下列语句以查询各出版社出版图书的最低单价、平均单价和册数。 SELECT 出版单位,MIN(单价) AS 最低单价, ;

AVG(单价) AS 平均单价,COUNT(*) AS 册数; FROM 图书管理!图书; 完善下列语句以查询借阅了4本(含4本)以上图书的读者姓名和单位。

SELECT 姓名,单位 FROM 图书管理!读者 WHERE 借书证号 IN ; (SELECT 借书证号 FROM 图书管理!借阅;

GROUP BY HAVING COUNT(*)>=4) 14、在某教学管理数据库中,有一个成绩表(cj.dbf),表结构及其记录如下表所述。

对于下列SELECT-SQL语句,其查询结果含有 条记录。

SELECT xh, COUNT (*) AS 选课门数 FROM cj GROUP BY xh 15、已知学生(XS)表中含有学号(xh)、姓名(xm)和系代号(xdh)字段;成绩(CJ)

表中含有学号(xh)、课程代号(kcdh)和成绩(cj)字段;系名(XM)表中含有系代号(xdh)和系名(ximing)字段。以下的SELECT-SQL语句是查询数据库SJK中XIM表、XS表和CJ表中“信息管理系”每个学生的学号、姓名、系名、总成绩、平均成绩,要求输出总成绩不低于480分的所有学生学习情况,输出结果按学生学号进行排序,请完善以下的SQL语句。

SELECT XS.XH,XS.XM,XIM.XIMING,SUM(cj.cj) AS 总成绩,; AVG(cj.cj) AS 平均成绩;

FROM sjk!xim INNER JOIN sjk!xs INNER JOIN sjk!cj; ON xs.xh=cj.xh ON xim.xdh=xs.xdh;

xim.ximing=\信息管理系\ ORDER BY xs.xh; GROUP BY xs.xh;

总成绩>=480

16、已知学生(XS)表中含有学号(xh)、姓名(xm)和性别(xb)字段,成绩(CJ)表中含有学号

(xh)、课程代号(kcdh)和成绩(cj)字段。下列SELECT-SQL命令查询学生各科的成绩和总

成绩,请完善该SELECT-SQL语句。(注:在显示的结果中,对于每一个学生,先显示该学生的各科成绩,然后显示该学生的总成绩。在显示总成绩时,在kcdh字段上显示“总成绩”字符串。)

SELECT cj.xh,xs.xm,cj.kcdh,cj.cj; FROM xs,cj;

WHERE cj.xh=xs.xh; UNION;

SELECT cj.xh,' ' AS xm,' 总成绩 ' AS kcdh,SUM(cj) AS ; FROM cj,xs;

WHERE cj.xh=xs.xh;

GROUP BY ; ORDER BY 1,4

17、设有教师表(JS)和教师任课表(RK),其结构如表所示。

表 教师表和教师任课表的表结构

教师表(js.dbf) 字段名 类型 宽度 含义 gh xm xb C C C 5 8 2 20 工号 教师任课表(rk.dbf) 字段名 gh 类型 宽度 含义 C C C N 5 2 30 5 工号 课程号 课程名 课时数 姓名 kch 性别 kcmc 系名 kss ximing C 下列程序段(含2条SELECT-SQL语句)的功能是:查询并显示出教师表中所有没有任课任务的教师名单(即在任课表中没有该教师的工号),同时统计出各系共有多少教师没有任课任务,并将结果存入TJ.DBF表中。完善下列程序,实现以上功能。 【程序清单】

SELECT js.gh,js.xm,js.ximing; FROM js;

WHERE js.gh (SELECT rk.gh FROM rk); INTO TABLE lsb SELECT lsb BROWSE

SELECT lsb.ximing,COUNT(*) AS 人数; FROM ; GROUP BY lsb.ximing; INTO TABLE tj

18、已知学生(XS)表中含学号(xh)、姓名(xm)、性别(xb)、专业(zy)字段。下列SQL命令

用来查询每个专业的男、女生人数。

SELECT zy,SUM(IIF(xb='男',1, )) AS 男生人数,; SUM(IIF(xb='女',1, )) AS 女生人数,; FROM xs; GROUP BY 1

19、已知成绩(CJ)表中含学号(xh)、课程代号(kcdh)和成绩(cj)字段,成绩表中存有

记录数据如表所示。

表 成绩表的记录数据

xh 020101 020101 020403 020302 020304 kcdh 01 02 01 03 02 cj 80 56 33 67 689 运行下列程序段以后,变量m、n的值分别为 。 【程序清单】

SELECT * FROM cj ; WHERE cj.cj<60; INTO TABLE cj_tmp m=EOF()

n=RECCOUNT()

20、教学管理数据库中含有课程表(KC)及成绩表(CJ)。课程表中以下字段:课程代号

(kcdh),课程名(kcm),学分(xf);成绩表中有以下字段:学号(xh),课程代号(kcdh),成绩(cj)。成绩表记录了全体学生所学各门课程的成绩。现根据上述两表查询总学分已超过120的所有学生情况(要求输出:学号,平均分,总学分,并按学分的升序排列),可使用下述命令。(注:成绩小于60分的学分设置为0)

SELECT xh AS 学号,AVG(CJ.CJ) AS 平均分 AS 总学分; FROM kc INNER JOIN cj ON kc.kcdh=cj.kcdh; GROUP BY xh;

HAVING 总学分>=120; ORDER BY xh

21、已知课程(KC)表中含课程代号(kcdh)、课程名(kcm)等字段,成绩(CJ)表中含

课程代号(kcdh)、成绩等字段。完善下列SQL命令以查询每门课的选课人数、优秀人数、不及格人数。

SELECT kc.kcdh,kc.kcm, AS 选课人数 , ;

SUM(IIF(cj.cj>=90,1,0)) AS 优秀人数, SUM(IIF(cj.cj<60,1,0)) AS 不及格人数;

FROM sjk!kc INNER JOIN sjk!cj ; ON kc.kcdh=cj.kcdh ;

GROUP BY

22、在VFP中创建多表查询时,表之间的四种联接类型分别为内部联接、左联接、右联接

和 。

23、某图书资料室的“图书管理”数据库中有三张表:TS.dbf(图书表)、DZ.dbf(读者表)

与JY.dbf(借阅表),表结构如下: TS.dbf结构 字段名 编号 分类号 C(10) C(10) DZ.dbf结构 字段类型 C(6) C(18) 借书证号 单位 JY.dbf结构 字段名 借书证号 编号 字段类型 C(6) C(10) 字段类型 字段名 书名 作者 单价 C(8) C(8) N(7,2) 姓名 性别 职称 地址 C(8) C(2) C(10) C(20) 借书日期 还书日期 D(8) D(8) 出版单位 C(20) 馆藏册数 N(4) 完善下列语句以查询该图书资料室各出版单位出版图书的馆藏总册数、总金额、平均单价: SELECT 出版单位,SUM(馆藏册数) AS 馆藏总册数,;

SUM(馆藏册数*单价) AS 总金额, AS 平均单价; FROM 图书管理!TS ; GROUP BY 出版单位

完善下列语句以查询借阅次数最多的前10名读者的借书证号、姓名、单位和借阅次数: SELECT JY.借书证号,DZ.姓名,DZ.单位,COUNT(*) AS 借阅次数,;

FROM 图书管理!DZ INNER JOIN 图书管理!JY; ON DZ.借书证号=JY.借书证号; GROUP BY 1 ;

ORDER BY 24、SQL语言是关系型数据库的标准查询语言。在VFP中,使用SELECT-SQL命令进行数

据查询时,如果要求在查询结果中无重复记录,则可以在命令中使用 短语(子句/关键词)。

25、已知借阅(JY)表中含读者类型(lx)、借阅日期(jyrq)和还书日期(hsrq)等字段。

下列SQL命令用来统计教师、学生借书过期罚款人次和罚款金额。其中,罚款金额的算法如下:

(1)对于学生类读者(lx字段值为“X”)来说,借阅期限为30天。每超过一天,罚款金额以每本书每天0.05元计算;

(2)对于教师类读者(lx字段值为“J”)来说,借阅期限为60天。每超过一天,罚款金额以每本书每天0.05元计算。

SELECT \教师\ 类型,COUNT(*) AS 罚款人次,; SUM(0.05* ) AS 罚款金额; FROM sjk!jy ;

WHERE jy.lx=\ ; SELECT \学生\类型,COUNT(*) AS 罚款人次,; SUM(0.05*(hsrq-jyrq-30)) AS 罚款金额; FROM sjk!jy;

WHERE jy.lx=\

26、设某图书资料室的“图书管理”数据库中有三张表:TS.dbf(图书表)、DZ.dbf(读者

表)与JY.dbf(借阅表),表结构如下: TS.dbf结构 字段名 编号 分类号 书名 出版单位 字段类型 C(10) C(10) C(8) C(20) DZ.dbf结构 字段名 借书证号 单位 姓名 性别 字段类型 C(6) C(18) C(8) C(2) JY.dbf结构 字段名 借书证号 编号 借书日期 还书日期 字段类型 C(6) C(10) D(8) D(8) 作者 单价 馆藏册数 C(8) N(7,2) N(4) 职称 地址 C(10) C(20) 完善下列语句以查询该图书资料室各出版单位出版图书的馆藏总册数、总金额和平均单价: SELECT 出版单位,SUM(馆藏册数) AS 馆藏总册数,;

AS 总金额,AVG(单价) AS 平均单价; FROM 图书管理!TS ; GROUP BY 出版单位

完善下列语句以查询借阅次数在10次(含10次)以上的读者的借书证号、姓名、单位和借阅次数:

SELECT DZ.借书证号,DZ.姓名,DZ.单位,COUNT(*) AS 借阅次数,; FROM 图书管理!DZ INNER JOIN 图书管理!JY; ON DZ.借书证号= ; GROUP BY 1 ;

借阅次数>=10

第六章 表单

选择题

1、 任何一个表单来说,下列说法中正确的是 。 A. 均可以创建新的属性、事件和方法 B. 仅可以创建新的属性和事件 C. 仅可以创建新的属性和方法 D. 仅可以创建新的事件和方法

2、 若从表单的数据环境中,将一个逻辑型字段拖放到表单中,则在表单中添加的控件个数

和控件类型分别是 。 A. 1,文本框 B. 2,标签与文本框 C. 1,复选框 D. 2,标签与复选框

3、 对于表单来说,用户可以设置其ShowWindow属性。该属性的取值可以为____ _____。 A.在屏幕中或在顶层表单中或作为顶层表单 B.普通或最大化或最小化 C.无模式或模式 D.平面或3维

4、 数据环境泛指定义表单、表单集或报表时使用的数据源,数据环境中只能包____ ____。 A.表、视图和关系 B.表 C.表和关系 D.表和视图

5、 在运行表单时,为设置属性值或指定操作的默认值,有时需要将参数传递到表单。若要

将参数传递到表单,则应在表单的___ ____事件代码中包含PARAMETERS语句。 A.Load B.Init C.Destroy D.Activate 6、 下列关于表单数据环境的叙述中,错误的是 。 A.表单运行时自动打开其数据环境中的表 B.数据环境是表单的容器 C.可以在数据环境中建立表之间的关系 D.可以在数据环境中加入视图

7、 VFP中可执行的表单文件的扩展名是 。 A. SCT B. SCX C. SPR D. SPT 8、 VFP系统环境下,运行表单的命令为 。 A. DO FORM <表单名> B. REPORT FORM <表单名> C. DO <表单名> D. 只能在项目管理器中运行

填空题

1、 要使表单中各个控件的ToolTipText属性的值在表单运行中起作用,必须设置表单的

ShowTips属性的值为 。

2、 已知某表单子类cfrmA含有一个命令按钮,且命令按钮的Click事件代码为:

Thisform.Backcolor=RGB(255,255,0)。基于该子类创建并运行表单frmA,则单击表单上的命令按钮后,表单的背景颜色为__ ____ __。如果在表单frmA中重新为命令按钮设置了Click事件代码:Thisform.Backcolor=RGB(0,255,255),则运行该表单后单击命令按钮,表单的背景颜色为__ ____ __。

注:RGB(255,255,0)为黄色,RGB(0,255,255)为蓝色。

3、 在表单运行时,用SETALL()方法将表单中所有文本框对象的ReadOnly属性设置为\真\

的命令是:

THISFORM.SETALL(\。

4、 根据控件与数据源的关系,表单中的控件可以分为两类:与表或视图等数据源中的数据

绑定的控件和不与数据绑定的控件。前者称为 __型控件。 5、 独立的、无模式的、_ 表单称为顶层表单。

6、 在表单设计器中设计表单时,如果从“数据环境设计器”中将表拖放到表单中,则表单

中将会增加一个 对象;如果从“数据环境设计器”中将某表的逻辑型字段拖放到表单中,则表单中将会增加一个 对象。

7、 表单中所有对象的属性设置和程序代码都保存在与表单同名的 _ 文件中,该文件能

用文本编辑器打开。

8、 设PR1.PRG、FM1.SCX、CD1.MPR分别是某管理系统中的主文件、用于输入口令的表

单文件和使用管理系统的主菜单文件。 主文件PR1.PRG的程序代码如下所示: PR1.PRG的程序代码: PUBLIC N,PASS

N=0 &&口令输入次数计数变量 PASS=.F.

DO FORM FM1 IF PASS DO CD1.MPR ELSE QUIT ENDIF

输入口令表单FM1.SCX如图所示,其中WindowType属性值为:1-模式。“用户名”文本框的Name属性值为TxtUser、“口令字”文本框的Name属性值为TxtPass。

完善下列表单FM1.SCX中“确认”按钮的Click事件代码,实现对用户名和口令字输入的验证。要求:“用户名”为“VFP”,同时口令字为“123”时可以进入管理系统,并且在用户名或口令字不正确时,用户名和口令字允许输入三次。

IF AND THISFORM.Txtpass.VALUE=\ WAIT\欢迎使用本系统!\ PASS=.T. THISFORM.RELEASE ELSE N=N+1 IF N=3 WAIT \用户名或口令字不对!登录失败!\ THISFORM.RELEASE ELSE WAIT \用户名或口令字不对!请重输!\ ENDIF ENDIF

9、 设表单集FORMSET1中含有若干个表单,若将奇数表单的背景颜色设为淡蓝色;偶数

表单的背景颜色为系统省略值(即保持原定义的颜色)。完善以下FORMSET1表单集的Init事件代码。

FOR n=1 TO IF n%2=0

ENDIF

THIS.FORMS(n).BackColor=RGB(128,255,255) ENDFOR

10、在Visual FoxPro中,可以为表单添加新的方法。设已经向表单中添加了一个新的方法

(FormColor)。

FormColor方法的程序代码是:

THISFORM.BACKCOLOR= &&设置该表单的背景颜色为绿色。

该表单的Init事件、Click事件、RightClick事件的程序代码分别是:

Init事件:THISFORM.BACKCOLOR=RGB(128,255,255)&&设置背景颜色为淡蓝色。 Click事件:THISFORM.Init

RightClick事件:THISFORM.FormColor

该表单运行时,若用鼠标右击该表单,则该表单的背景颜色为绿色;若用鼠标单击该表单,则该表单的背景颜色为 。

11、某表单中有一个命令按钮,该命令按钮的Click事件过程代码中含有一条命令可以将该

表单中的页框pg1的活动页面改为第三个页面,该命令是THISFORM.pg1. =3。

12、某表单如图所示,用于用户登录(需要输入用户名和口令信息)。该表单无控制图标和

控制按钮,则表单的 属性值必定为.F.。

图 用户登录表单

第六章 控件

选择题

1、 下列几组控件中, 均为容器类的是 。 A. 表单集、列、组合框 B. 页框、页面、表格 C. 列表框、下拉列表框 D. 表单、命令按钮组、OLE控件 2、 如果表单中有一命令按钮组,且已分别为命令按钮组和命令按钮组中的各个命令按钮设

置了Click事件代码,则在表单的运行过程中单击某命令按钮时,系统执行的代码是 。

A. 该命令按钮的Click事件代码 B. 该命令按钮组的Click事件代码

C. 先命令按钮组的Click事件代码,后该命令按钮的Click事件代码 D. 先该命令按钮的Click事件代码,后命令按钮组的Click事件代码 3、 表格控件的数据源类型 。 A. 只能是表 B. 只能是表、视图 C. 可以是表、查询 D. 只能是表、视图、查询

4、 页框对象的集合属性计数属性可以对页框上所有的页面进行属性修改等操作。页框对象

的集合属性和计数属性的属性名分别为___ _。 A. Pages,Pagecount B. Forms,FormCount C. Buttons,ButtonCount D. Controls,ControlCount

5、 几组控件中,均可直接添加到表单中的是___ __。

A. 命令按钮组、选项按钮、文本框 B. 页面、页框、表格 C.命令按钮、选项按钮组、页框 D.页面、选项按钮组、组合框 6、 几组控件中,均具有ControlSource属性的是___ __。 A. EditBox,Grid,ComboBox B. ListBox,Label,OptionButton C. ComboBox,Grid,Timer D.CheckBox,EditBox,OptionButton 7、 绑定型控件是指其内容与表、视图或查询中的字段或内存变量相关联的控件。当某个控

件被绑到一个字段时,移动记录指针后如果字段的值发生变化,则该控件的___ ____属性的值也随之发生变化。 A.Control B.Name C.Caption D.Vaule 8、 在下列Visual FoxPro的基类中,无Caption属性的基类是 。 A.标签 B.选项按钮 C.复选框 D.文本框

9、 MyLabel是派生于标签基类的子类,该子类的BackColor属性为红色。在某表单上创建

一个基于MyLabel类的标签对象Lb1,该对象的BackColor属性为黄色,则当运行该表单时,Lb1对象的背景颜色是 。 A.灰色 B.红色 C.黄色 D.红色与黄色的调配色

10、在下列有关VFP对象(控件)的叙述中,错误的是 。 A.复选框控件的Value值只能为1(.T.)或0(.F.),不能为空值(.NULL.) B.一个标签控件可多行显示文本

C.命令按钮控件上可同时显示文本和图片

D.表格中的每一列都是容器对象,而且拥有自己的属性、事件和方法 11、在下列VFP对象(控件)中,不能直接(独立)地添加到表单中的是 。 A.命令按钮(Command) B.选项按钮(Option) C.复选框(Check) D.计时器(Timer) 12、在下列有关表单及其控件的叙述中,错误的是 。

A.从容器层次来看,表单是最高层的容器类,它不可能成为其他对象的集成部分 B.表格控件包含列控件,而列控件本身又是一个容器类控件 C.页框控件的PageCount属性值可以为0

D.表格控件可以添加到表单中,但不可以添加到工具栏中

13、对于许多控件来说,可以通过ControlSource属性与数据绑定。在下列VFP对象中,无

ControlSource属性的是 。 A.标签(Label) B.复选框(CheckBox) C.选项按钮组(OptionGroup) D.列表框(ListBox)

14、在下列几组VFP基类中,均具有ControlSource属性的是 。 A.ListBox、Label、OptionButton B.ComboBox、EditBox、Grid C.ComboBox、Grid、Timer D.EditBox、CheckBox、OptionButton 15、某表单FrmA上有一个命令按钮组CommandGroup1,命令按钮组中有四个命令按钮:

CmdTop,CmdPrior,CmdNext,CmdLast。要求按下CmdLast时,将按钮CmdNext的Enabled属性置为.F.,则在按钮CmdLast的Click事件中应加入_______ 命令。 A. This.Enabled=.F. B. This.Parent.CmdNext.Enabled=.F. C. This.CmdNext.Enabled=.F. D. Thisform.CmdNext.Enabled=.F.

16、将某个控件绑定到一个字段,移动记录后字段的值发生变化,这时该控件的

属性的值也随之变化。 A. Value B. Name C. Caption D. 没有

17、页框(PageFrame)能包容的对象是 。 A. 页面(Page) B. 列(Column) C. 标头(Header) D. 表单集(FormSet)

18、下列控件均为容器类的是 。 A. 表单、命令按钮组、命令按钮 B. 表单集、列、组合框 C. 表格、列、文本框 D. 页框、列、表格 19、命令按钮中显示的文字内容,是在属性 中设置的。 A. Name B. Caption C. FontName D. ControlSource 20、当用鼠标使组合框的内容发生变化时,将首先触发_______事件。 A. InteractiveChange B. Click C. Init D. DownClick 21、文本框绑定到一个字段后,对文本框中的内容进行输入或修改时,文本框中的数据将同

时保存到______中。 A. Value和Name B. Value和该字段 C. Value和Caption D. Name和该字段

填空题

1、 在\表单设计器\中设计的表单有一标签控件,如下图所示.根据图中的情况,标签控件的

AutoSize属性值为 ,Caption属性值为 。

2、 文本框___ ___属性设置为“*”时,用户键入的字符在文本框内显示为“*”,但属性Value

中仍保存键入的字符串。 3、 设表XS.DBF的表结构如下: 字段名 类型 长度 小数位 XH XM XB CSRQ C C C D 6 8 2 8 18 含义 学号 姓名 性别 出生日期 系名 XIMING C 以下是数据环境为xs表的表单,表单上含有两个列表框:“系名列表”(List1)显示各个系的系名。“学生名单”(List2)显示学生的学号和姓名。当选中系名列表中的某个系,在‘学生名单“列表中仅显示相应的学生的学号和姓名。

“学生名单”列表框的ColumnCount属性最小可为 ,“系名列表“的InteractiveChange事件代码为: xxmm=This._______

ThisForm.list2.RowsourceType=3

ThisForm.list2.Rowsource=\ ThisForm.Refresh

4、 某表单含有2个标签对象、2个文本框对象(Text1、Text2)、1个形状对象(Shape1)

和1个命令按纽。其中文本框Text1用来输入圆半径数据,文本框Text2用于显示圆面积,形状对象Shape1用于显示圆的图形,命令按纽的标题属性为“计算”。单击命令按纽时,应完成功能:当圆的半径的值介于10 - 100之间时(含10和100),形状对象显示圆的图形、计算圆面积并显示之‘当圆半径的值介于10 - 100范围以外时(不含10和100),显示提示窗口。

完善下列的命令按纽的Click事件代码: LOCAL X

X=THISFORM.Text1.VALUE IF ___________ THISFORM.Shape1.Visible=.F. THISFORM.Text2.VALUE=\ =Messagebox(\半径取值必须在10 - 100之间!\提示窗口\ ELSE THISFORM.Shape1.Height=x * 2 THISFORM.Shape1.Width=x * 2 THISFORM.Shape1.Visible=.T. THISFORM.Text2.VALUE=_________

ENDIF

5、 对于计时器控件,如果将Interval属性值设置为100,则Timer事件发生的时间间隔为

_____秒。

6、 将文本框对象的_ 属性设置为“真”时,则表单运行时,该文本框可以获得焦

点,但文本框中显示的内容为只读。

7、 标签控件是用以显示文本的图形控件。标签控件的主要属性的功能有:Caption 属性、

BackStyle 属性、AutoSize 属性以及WordWrap 属性等。其中WordWrap 属性的功能是_ 。

8、 设某表单的背景色为浅蓝色,该表单上某标签的背景色为黄色。当该标签的BackStyle

属性值设置为“0--透明”,运行该表单时该标签对象显示的背景色为 。 9、 在教学管理数据库中有二个表:课程表(KC)和成绩表(CJ)。表结构如下:

课程表(KC.DBF) 课程代号 KCDH 课程名 KCM C,2 C,18 学号 课程代号 成绩 成绩表(cj.dbf) XH KCDH CJ C,6 C,2 N,3 (1)查询每门课程的课程代号、课程名及平均分,且把查询结果保存到表文件KCCJ.DBF中,可以用SQL语句:

SELECT KC.KCDH,KC.KCM,__ _AS 平均分; FROM KC ,CJ;

WHERE ; GROUP BY KCDH;

INTO _ _KCCJ.DBF (2) 基于KC表和CJ表,已创建一个按KCDH查询的表单如下图所示:

下拉列表框的RowSourceType 属性为:6--字段 RowSource 属性为:KC.KCDH

表格的 属性为:1--别名 表格的RecordSource 属性为:_

10、编辑框(EditBox)的用途与文本框(TextBox)相似,但编辑框除了可以编辑文本框能

编辑的字段类型以外,还可以编辑__ ____型字段。

11、如图所示的表单中有一个选项按钮组。如果选项按钮组的Value属性的默认值为1,则

当选择选项按钮B时,选项按钮组的Value 属性为____ _____;如果将选项按钮组的Value属性的默认值设置为“B”,则当选择按钮C时,选项按钮组的Value 属性值为__ _____。

12、形状控件的Curvature属性决定了形状控件显示什么样的图形,它的取值范围是0~99。

当该属性的值为 时,用来创建矩形。

13、列表框对象的数据源由RowSource 属性和 属性决定。而要将列表框中的值

与表中的某个字段绑定,则应该利用 属性。

14、若命令按钮组及其所包含的各命令按钮分别设置了Click事件代码,Visual FoxPro系统

将根据用户单击的位置执行相应的程序代码;若单击命令按钮组区域内、命令按钮区域外, 的Click事件将被触发;而单击命令按钮组内某一命令按钮,则相应命令按钮的Click事件被触发。

15、计时器是用来处理复发事件的控件。该控件正常工作的三要素是:Timer事件、Enabled

属性和 _ 属性。

16、某表单中含有一个命令按钮。要求运行表单时,单击该命令按钮可以调用表单的Init

事件中的全部程序代码,则需要在命令按钮的Click事件中写入语

句 。

17、设表单Form1中包含1个文本框控件(TEXT1)与1个列表框控件(LIST1)。其中,

LIST1的RowSourceType属性值为1,RowSource属性值为:数学、物理、语文、外语、计算机、政治。该表单要实现的功能是:在文本框TEXT1中输入课程的名称,若此课程不在列表框LIST1中,则将它添加到列表框中,在则不做添加。请完善下列的文本框TEXT1的LostFocus事件代码: FL=.T.

FOR n=1 TO THISFORM.LIST1.ListCount

IF ALLTRIM(THISFORM.LIST1.List(n))= FL=.F. ENDIF ENDFOR IF FL

THISFORM.LIST1.ADDITEM(THIS.Value) &&向列表框添加新的数据项 ENDIF

THIS.Value=SPACE(1) &&使文本框清空 18、在某表单运行时,表单上某个命令按钮标题显示为“取消(X)\则该命令按钮的Caption

属性值为 。

19、设表单上某形状控件的Height属性与Width属性值相等,则Curvature属性值为

时该形状为圆。

20、计时器是在应用程序中用来处理复发事件的控件,其典型应用是检查系统时钟,决定是

否到了某个程序或应用程序运行的时间。其Interval属性用于指定计时器控件的 事件之间的时间间隔,单位为毫秒。

21、利用页框控件,可以增加表单的“表面积”。运行某表单时,如果要将表单中图1所示

的页框(PageFrame)改为图2所示的页框,则应将页框的 属性设置为.F.。

图1 图2

22、列表框(ListBox)主要用于显示一组预定的值,用户从列表中可以选择需要的数据。列表

框中选择的数据(值)保存在何处由 属性决定。

23、某表单(Form1)如图所示,表单的Init事件程序中存有“PUBLIC aa”命令。要求该表

单运行时,在文本框中输入某表的表名后单击“打开”按钮,能浏览相应的表。按照要求,下列的命令代码程序应写在命令按钮组控件的 事件程序中。请完善程序代码。

aa=ALLTRIM(THISFORM.text1.Value) DO CASE

CASE THIS.Value=1

USE ALIAS bm IN 0

SELECT bm BROW USE

CASE THIS.Value=2 THISFORM.Release ENDCASE RETURN

24、某表单(fml)上有一个列表框(list1)、一个文本框(text)和一个命令按钮(command1,其

Caption属性为“添加”)。请完善命令按钮的Click事件代码以实现以下功能:在文本框text1中输入字符串,如果该字符串在列表框中不存在,就将该字符串插入到列表框中,否则弹出对话框给出信息提示“该字符串已经存在,请重新输入”。运行表单时参考界面如图所示。

flag=0

FOR n=1 TO THISFORM.list1.ListCount

IF THISFORM list1.List(n)= flag=1 ENDIF ENDFOR IF flag=0

(THISFORM.text1.Value) ELSE

MESSAGEBOX(“改字符串已经存在,请重新输入”) ENDIF

25、某表单的数据环境中包含kc表和cj表,且kc表和cj标之间已建好临时关系。当表单

运行时,如下图所示。

1)列表框的BoundColumn为1,要求显示kc表的课程代号(kcdh)、课程名(kcm)、和课时数(kss)字段,则列表框的RowSourceType属性值为“6(字段)”,RowSource属性值为 。

2)若在列表框中选中某门课程时,表格中显示该课程的所有学生的成绩,且在文本框text中显示该课程的平均分,则列表框的InteractiveChange 事件代码中应含有: SELECT AVG(cj.cj) FROM cj;

WHERE cj.kcdh= INTO ARRAY t

THIS. .text1.Value=t 26、图所示的表单是一个可供逐条记录查看学生表内容的表单 。

以下程序代码是上述表单中命令按钮的Click事件代码(“结束”命令按钮的功能是关闭表单),请将其填充完整。 DO CASE

CASE THIS.Value=1 IF BOF() GO TOP ENDIF

ThisForm.Refresh CASE THIS.Value=2 IF EOF()

GO BOTTOM ENDIF

ThisForm.Refresh CASE THIS.Value=3 ThisForm.Release ENDCASE

27、表格控件可以设置特定格式,使得用户更容易浏览表格记录。设某表格控件有三列,用

于显示学生的学号(xh)、姓名(xm)和成绩(cj),如果要将表格的第三列(Column3)的前景色设为用红色显示不及格的成绩,用蓝色显示及格的成绩,可以在表格的Init事件中包含如下代码:

This.Column3.DynamicForeColor= 28、图所示的表单中有一个列表框对象,该列表框的ColumnCount属性值为3,BoundColumn

属性值为3。运行该表单,并在此列表框中选择“990504”项时,列表框的Value属性值为 。

29、图所示的表单用于浏览教师(JS)信息。为了在表格控件中以不同的背景显示男、女教

师的信息,则在表格控件的Init事件代码中,可使用以下形式的语句:

This. (\女',RGB(125,125,125), ; RGB(125,125,255))\

表单中下拉列表框的RowSourceType属性为\字段\数据源为系名代码表(表的文件名为Xmdm.dbf,含系代码(xdm)和系名(xim)两个字段),为了使下拉列表中显示系代码和系名两列数据,则RowSource属性值应为:xmdm.xdm, 。

30、设某表单上有一个页框控件,该页框控件的PageCount属性值在表单的运行过程中可变

(即页数会变化)。如果要求在表单刷新时总是指定页框的最后一个页面为活动页面,则可在页框控件的Refresh事件代码中使用语句:This. =PageCount。 31、某数据库中包含课程(KC)表和成绩(CJ)表,课程表中含有课程代号(kcdh)、课程

名(kcm)和学分(xf)等字段,成绩表中含有学号(xh)、课程代号(kcdh)和成绩(cj)等字段。已创建一个按课程代号查询学生成绩的表单如图所示。

表单中下拉列表框(Combo1)的数据源设置如下: RowSourceType属性为:6——字段 RowSource属性为:kc.kcdh。

在下拉列表框中选择某一课程代号后,表格控件(Grid1)立即显示该课程所有学生的成绩,且在文本框(Text1)中显示该课程的课程名,则应在下拉列表框的 事件中编写如下代码:

SELECT KC

ThisForm.Text1.Value=kc.kcm ThisForm.Grid1.RecordSource=;

\ cj.xh,cj.cj FROM cj WHERE cj.kcdh=ALLT(THIS.Value) INTO CURS tmp\

ThisForm.Refresh

根据以上代码可判定,表格控件(Grid1)的RecordSourceType属性为 。 32、设某命令按钮的标题为“确定(Y)”(该按钮访问键为“Alt+Y”),则其Caption属性值

应设置为 。

33、设Label1是某表单上的一个标签控件,则利用Label1控件显示系统日期和时间,可以

在该表单的Init事件代码中使用语句THISFORM. =TTOC(DATETIME())来实现。

34、学生注册表单(form1)如图所示,该表单中含有3个标签、2个文本框(Text1和Text2),

1个命令按钮组(包含3个按钮),其功能是对学生信息进行注册: 1)若在学生注册(ZC)表中已存在某学生的记录(学号已经存在),说明该学生已注册过;若没有,则进行注册,即将该学生的信息存入学生注册表; 2)进行注册时(即按“确认按钮时),学号和姓名不能为空。

图 学生注册表单

表单是一个窗口型控件,其集合属性为Controls,计数属性为ControlCount。此表单的ControlCount属性值为 。

根据表单的功能要求,完善下列命令按钮组的Click事件代码: ch1=ALLT(THISFORM.Text1.Value) ch2=ALLT(THISFORM.Text2.Value) DO CASE

CASE THIS.vALUE=1

IF LEN(ch1)=0 OR LEN(ch2)=0

=MESSAGEBOX(\学号、姓名必须填写!\ ELSE

FOR zc.xh=ch1 IF !EOF()

=MESSAGEBOX(\此学生已注册,请重新输入!\ ELSE

INSERT INTO zc (xh , xm) Values (ch1 , ch2) ENDIF ENDIF

CASE THIS.Value=2

THISFORM.Text1.Value=\ THISFORM.Text2.Value=\

&&使Text1文本框得到输入焦点 CASE THIS.Value=3

THISFORM.RELEASE ENDCASE

35、对于图所示的表单,当表单运行时,利用微调框(Spinner1)来调节形状控件(Shape1)

的Curvature属性,使形状控件的角的曲率发生变化。根据Curvature属性的取值范围的

限定,微调框(Spinner1)的SpinnerLowValue属性值和SpinnerHighValue属性值应该分别为0和 。当形状控件(Shape1)为椭圆时,微调框(Spinner1)的Value值应为 。

图 形状控件的曲率实验

36、表格(grid)控件是一个按行和列显示数据的容器对象,其外观与表的浏览窗口相似,

表格最常见的用途之一是显示一对多关系中的子表。在默认情况下,表格控件包含列控件,列控件又包含列标头控件和 控件。

37、在VFP中,组合框控件具有列表框控件和文本框控件的组合功能。根据是否可以输入

数据值,组合框可设置为下拉组合框或 。

38、对于图所示的表单,当表单运行时,利用微调框(Spinner1)来调节形状控件(Shape1)

的Curvature属性,使形状控件的角的曲率发生变化。该表单上的标签控件显示为“曲率(R)”,其Caption属性值应为 。为了实现表单中“微调框控件的值

发生变化时形状控件的角的曲率也随之变化”的功能,微调框控件(Spinner1)的 事件代码就为:

THISFORM.Shape1.Curvature=THIS.Value

图 形状控件的曲率实验

39、页框对象是包含页面的容器对象。在默认情况下,一个页框对象包含两个页面对象,如

果要修改页框对象所包含的页面对象,则应该修改页框的 属性值。

第七章 类的创建和应用

选择题

1、 设cmd是一个用户创建的命令按钮子类,并设置了Click事件代码。在某表单中基于cmd

类创建了一个命令按钮,则在该命令按钮的Click事件代码编辑窗口中, 。 A.cmd 类的Click事件代码可视,但不能被修改 B. cmd 类的Click事件代码可视,但能被修改

C.cmd 类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码不被执行

D. cmd 类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码被执行 2、 对于创建新类,VFP提供的工具有: 。 A. 类设计器和报表设计器 B. 类设计器和查询设计器 C. 类设计器和表单设计器 D. 类设计器

3、 从CommandButton基类创建子类cmdA和cmdB,再由cmdA类创建cmdAA子类,则

cmdA、cmdB和cmdAA必具有相同的_________。 A. Caption属性 B. Name属性 C. BaseClass属性 D. ParentClass属性

填空题

1、 类(Class)是面向对象程序设计的核心。类具有许多特点,如抽象性、封装性、继承性

等,其中 是指包含和隐藏对象信息(如内部数据结构和代码)的能力,使操作对象的内部复杂性与应用程序隔离开来。

2、 在某类库中,基于CommandButton基类新建了一个子类cmd,基于子类cmd类又派生

了cmdClose子类。若利用cmdClose类为一个表单添加控件cmdCloseA,则cmdCloseA的BaseClass属性值为 。

3、 类(class)是面向对象程序设计的核心。类具有许多特点,如多态性、抽象性、封装性、

继承性等等,其中 是指一些关联的类包含同名的方法程序,但方法程序的内容可以不同。

第九章 菜单和工具栏

选择题

1、 可以添加到自定义工具栏上的控件 。 A. 只能是命令按纽 B. 只能是命令按纽和分隔符 C. 只能是命令按纽、文本框和分隔符 D. 是除表格以外的所有可以添加到表

单上的控件

2、 菜单(menu)和工具栏(toolbar)是Windows环境下各种应用程序中最常用的操作对

像。在下列有关VFP菜单与工具栏的叙述中,错误的是 。 A.VFP菜单是一个动态的菜单系统,当用户针对不同类型的文件操作时系统自动地调整菜单栏

B.用户打开/关闭不同的设计器(如数据库设计器、表单设计器、报表设计器等),在默认情况下系统会自动地打开/关闭相应的工具栏

C.在VFP窗口中,可以关闭所有的菜单和工具栏

D.利用菜单命令、工具栏按钮等或项目管理器操作创建一个文件,所实现的功能完全相同

3、 在VFP的菜单或菜单选项中,经常会有一些呈暗灰色的选项,这可能是______。 A. 这些项在当前状态下不起作用或其处理程序没有装人 B. 系统运行发生故障 C. 本身有缺陷 D. 以上都不对

4、 有一菜单文件MAIN.MNX,运行该菜单的操作是_______。 A. 执行命令 DO MAIN.MNX

B. 执行命令 DO MENU MAIN.MNX

C. 先生成菜单程序文件MAIN.MPR,再执行命令DO MAIN.MPR

D. 先生成菜单程序文件MAIN.MPR,再执行命令DO MENU MAIN.MPR

填空题

1、 如果要无条件地废止一个菜单项(即让该菜单项变成灰色),则在该菜单项的“跳过

”框中键入表达式 。

2、 在创建用户自定义工具栏类时,可以向工具栏类添加的对象是除 以外的所有可

以添加到表单中的控件。

3、 若将SDI菜单MENUA.MPR附加到某表单中,则必须为此表单的Init事件添加代码,

该代码内容是:DO MENUA.MPR WITH _ ,.T.。

4、 在程序运行期间,可以使用SET SYSMENU命令起用或废止Visual FoxPro系统菜单栏。

废止Visual FoxPro系统菜单栏的命令是: 5、 若要为表单设计下拉式菜单,主要操作分为二部分:其一是将菜单类型设计为SDI菜单,

并在菜单设计过程中,选择“常规选项”对话框中“顶层表单”复选框;其二是将SDI菜单附加到表单中,首先将表单的Show Windows属性值设置为:2-作为顶层表单,然后在表单的 事件代码中添加调用SDI菜单程序的命令。 6、 菜单设计是应用程序开发过程中的重要环节。当所要定义的菜单与VFP系统菜单在形式

上或功能上比较相似时,可以使用 功能,以提高工作效率。 7、 VFP中进行菜单设计时,菜单有两种,即一般菜单和 菜单。 8、 用户可以使用VFP的菜单设计器设计菜单。创建一个菜单后,系统会生成两个文件:.mnx

和.mnt。mnx菜单文件不能直接运行,当选中.mnx文件且执行“运行”操作时,系统首先自动生成两个文件:.mpx和 然后运行它。 9、 恢复Visual FoxPro 6.0系统菜单的命令是_______。