数据库应用学习指导讲义

更新时间:2024-04-26 05:30:01 阅读量: 综合文库 文档下载

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

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

一、选择题

1. 在关系模型中,关系运算分为传统集合的关系运算和专门的关系运算。在下列的关系运

算中,不属于专门的关系运算(即属于传统集合的关系运算)的是___________。 A. 投影 B. 联接 C. 选择 D.合并

2. 在数据库设计中,广泛使用的概念模型是“实体—联系”模型(简称E—R模型)。E

—R模型中有3个基本的概念,下列选项中___________不是其中之一。 A. 实体 B. 属性 C. 运算 D.联系

3. 为了实现数据的___________,便于数据库的设计和实现,一般把数据库系统的结构定

义为三级模式结构。 A. 完整性 B. 独立性 C. 可维护性 D.可靠性

4. 关键字是关系模型中的重要概念。当一个二维表(A表)的主关键字被包含到另一个二

维表(B表)中时,它就称为B表的___________。 A. 主关键字 B. 候选关键字 C. 外部关键字 D. 超关键字 5. 在下面关于数据库技术的描述中,不正确的是___________。

A. 不同的用户使用同一数据库,被称为数据共享

B. 防止非法用户对数据的存取,被称为数据库的安全性 C. 如果采用数据库技术处理数据,数据的冗余应完全消失 D. 数据的完整性就是指数据的正确性和一致性

6. 在关系运算中,___________运算是对关系的水平分解。

A. 联接 B. 选择 C. 投影 D. 并 7. 在关系模型中,同一个关系中不同属性的属性名称___________。

A. 一定要相同 B. 一定不能相同 C. 可以相同,但数据类型不能相同 D. 可以相同 8. 以下关于二维表性质的说法,不正确的是___________。

A. 属性值是原子的,不可分解的

B. 二维表中的每一列均有唯一的字段名,且取值是相同性质的 C. 二维表中不允许出现完全相同的两行

D. 二维表中行的顺序、列的顺序不可以任意交换 9. 一个数据库系统是由___________和数据库组成。

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

C. 应用程序、DBMS和支持数据库运行的软、硬件环境 D. 支持数据库运行的软、硬件环境、DBMS和DBA 10. 在关系模型中,超关键字___________。

A. 可由任意的属性组成

B. 只能由一个属性组成,其值能够唯一地识别该关系模式中的任何一个元组 C. 可由一个或多个属性组成,其值能够唯一地识别该关系模式中的任何一个元组 D. 以上都不对

11. Visual FoxPro是一个___________。

A. 数据库系统 B. 数据库管理系统 C.操作系统 D. 数据库 12. 实体模型反映的是实体以及实体之间的关系,是人们大脑对现实世界中客观事物及其联

系的认识,而__________是实体模型的数据化,是观念世界中的实体模型在数据世界中

1

13.

14.

15. 16. 17.

18.

19.

20.

21. 22.

的反映,是对现实世界的反映。 A. 数据模型 B. 逻辑模型 C. 物理模型 D. 概念模型 根据提供的数据独立性、数据共享性、数据完整性、数据存取方式等水平的高低,计算机数据管理技术的发展可以划分为三个阶段,其中不包括___________。 A. 人工管理阶段 B. 文件系统阶段 C. 计算机管理阶段 D. 数据库系统阶段 数据模型是在数据库领域中定义数据及其操作的一种抽象表示。用树形结构表示各类实体及其间的联系的数据模型称为___________。 A. 层次模型 B. 关系模型 C. 网状模型 D. 面向对象模型 在数据库设计中,“设计E-R图”是__________的任务。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 数据流程图是常用的系统分析工具。从数据流图上看,不包括__________内容。 A. 外部实体 B. 数据处理 C. 数据流 D. 数据结构 物理结构设计是在物理存储中实现数据库的过程,其设计的主要内容不包含_________。A. 存储记录的格式设计 B. 存取方式的设计 C. 存储方式的设计 D. 存取程序的设计

数据库维护是一项有一定技术难度的工作,实质上它是再分析、再设计、再编程、再测试的过程。数据库维护工作一般分为下列四大类,对DBMS系统软件的升级工作可归类于___________工作。 A. 日常维护 B. 性能调整 C. 监控与分析 D. 扩展与增强 在二维表中能够唯一地确定记录的一列或多列的组合被称为超关键字。如果一个超关键字去掉其中任何一列后就不再能唯一地确定记录了,则称其为___________。 A. 主关键字 B. 候选关键字 C. 外部关键字 D. 唯一关键字 E-R图是E-R模型的图形表示方法,它是表示概念数据模型的有力工具。在E-R模型中有三个基本概念,即实体、联系和属性,在图中他们分别用___________来表示。 A. 菱形框、矩形框和椭圆形框 B. 椭圆形框、菱形框和矩形框 C. 矩形框、菱形框和椭圆形框 D. 矩形框、椭圆形框和菱形框 对于二维表的关键字来讲,不一定存在的是___________。 A. 主关键字 B. 候选关键字 C. 超关键字 D. 外部关键字 数据库管理系统常见的数据模型不包括___________。 A. 实体-关系模型 B. 层次模型 C. 关系模型 D. 网状模型

二、填空题

1. 在数据库设计中,广泛使用的概念模型当属“实体-联系”模型(简称E-R模型)。E-R模型中有3个基本的概念,它们分别是实体、____________和联系。 2. 为了实现数据的独立性,便于数据库的设计和实现,一般把数据库系统的结构定义为三

级模式结构,即分为外部层、____________和内部层。

3. 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的数据__________度,

较高的数据独立性和易扩展性,并可以供各种用户共享。

4. 数据模型是数据库系统中用于数据表示和操作的一组概念和定义。数据模型通常由3

部分组成,即数据结构、数据操作和数据的__________约束条件。

5. 在关系模型中,关系规范化的过程是通过关系中属性的分解和关系模式的分解来实现

的。在实际应用中,设计关系模式时一般要求满足__________。

6. 关系的基本运算有两类:一类是传统的集合运算,包括并、差、交等;另一类是专门的

关系运算,主要包括__________、投影和联接等。 7. 在关系运算中,__________运算是对关系的垂直分解。

2

8. 关键字是关系模型中的重要概念。当一个二维表(A表)的主关键字被包含到另一个二

维表(B表)中时,它就被称为B表的__________。 9. 数据库通常包括两部分内容:一是按一定的数据模型组织并实际存储的所有应用需要的

数据;二是存放在数据字典中的各类描述信息,这些描述信息通常称为__________。 10. 在关系数据库中,完整性主要有域完整性、__________以及参照完整性等三种类型。 11. 数据流程图是使用直观的图形符号来描述系统业务过程、__________和数据要求的工

具,可以比较准确地表达数据和处理的关系。

12. 关系模型是用__________的形式来表示实体及实体间关系的。 13. 在E-R图中,用来表示实体之间联系的图形是__________。 14. 信息世界中的属性在数据世界中称为__________。 15. 二维表的主关键字是从它的__________中选出的一个。 16. 对表中的每个记录来说,主关键字必须包含一个不同于其他记录的唯一的值。这就意味

着主关键字的值不能为__________,否则主关键字就起不了唯一标识记录的作用。 17. 是数据库的核心操作。

18. 域完整性规定了属性的 ,它由应用环境对数据的需求而决定。 19. 在需求分析中,经常使用 方法。 20. 由于数据库应用的特殊性,使得对数据库设计的评价、调整和修改等维护工作成为一个

长期的任务,而这些任务应由 来完成。

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

一、选择题

1. 项目管理器的功能是组织和管理与项目有关的各种类型的___________。 A.字段 B.文件 C.程序 D.数据

2.项目是VFP中各种文件组织的核心、应用程序构建的组织机构。在下列有关VFP项目的叙述中,错误的是___________。

A.项目的创建既可以利用菜单或工具栏,也可以利用VFP命令 B.一个VFP窗口中,只能打开一个项目

C.在VFP窗口中,项目管理器可以折叠成工具栏形式 D.“连编”操作是针对项目而言的,该操作位于“项目”菜单栏 3.扩展名为.dbc的文件是___________。

A.表单文件 B.表文件 C.数据库文件 D.项目文件 4.在Visual FoxPro中创建项目,系统将建立一个项目文件,项目文件的扩展名是

___________。

A.PRO B.PRJ C.PJX D.ITM

5.在Visual FoxPro的项目管理器中不包括的选项卡是___________。

A.数据 B.文档 C.类 D.表单

6.在Visual FoxPro中,下列各项的数据类型所占字符的字节数相等的是___________。 A.日期型和逻辑型 B.日期型和通用型 C.逻辑型和备注型 D.备注型和通用型 7.下列变量名中不符合命名规则的是___________。

A.姓名 B.Stu_Name C.100号 D.H6 8.假定M=[22+28],则执行命令?M后屏幕将显示 。 A.50 B.22+28 C.〔22+28〕 D.50.00 9.将内存变量定义为全局变量的Visual FoxPro命令是___________。 A.LOCAL B.PRIVATE C.PUBLIC D.GLOBAL

3

10.在Visual FoxPro中,如果希望内存变量只能在本模块(过程)中使用,不能在上层或下层模块中使用,说明该种内存变量的命令是_________。

A.PRIVATE B.LOCAL C.PUBLIC D.不用说明,在过程中直接使用 11.顺序执行下列命令,最后一条命令的结果为__________。 x=100 y=8 x=x+y ?x,x=x+y

A.100 .F. B.100 .T. C.108 .T. D.108 .F. 12.Visual FoxPro内存变量的数据类型不包括___________。

A.数值型 B.货币型 C.备注型 D.逻辑型 13.下列字符型常量的表示中,错误的是___________。

A.’65+13’ B.[\电脑商情\] C.[[中国]] D.’[x=y]’ 14.下列关于变量的叙述中,不正确的一项是___________。

A.变量值可以随时改变

B.在Visual FoxPro中,变量分为字段变量和内存变量 C.变量的类型决定变量值的类型

D.在Visual FoxPro中,可以将不同类型的数据赋给同一个变量 15.下列命令的语法规则中,非法的是___________。

A.命令动词只写前四个字母 B.命令动词后的子句位置可交换 C.命令动词大小写字母等价 D.各短语和参数要连续输入无空格 16.在Visual FoxPro中,有如下几个内存变量赋值语句,执行下述赋值语句之后,内存变

量X、Y、M、N、Z的数据类型分别是__________。 X={^2001-07-28 10:15:20 PM} Y=.T. M=$123.45 N=123.45 Z=\

A.D、L、Y、N、C B.D、L、M、N、C C.T、L、M、N、C D.T、L、Y、N、C

17.要清除当前所有其名字的第2个字符为“X”的内存变量,应该使用命令________。

A.RELEASE ALL *X B.RELEASE ALL LIKE X C.RELEASE ALL LIKE ?X D.RELEASE ALL LIKE \18.已知x=\表达式&x+456的值是___________。

A.123456 B.579 C.“123456” D.“579” 19.数组元素建立后,其初值为: ____________。

A.0 B..NULL. C..T. D..F. 20.数组变量是___________的一组有序变量。

A.名字相同而上标不同 B.名字相同而下标不同 C.名字不同而上标相同 D.名字不同而下标相同

21.使用命令DECLARE mm(2,3)定义的数组,包含的数组元素(下标变量)的个数为

___________。

A.2个 B.3个 C.5个 D.6个 22. 利用命令DIMENSION X(2, 3)定义了一个名为X的数组后,依次执行赋值命令X(3)=10、

4

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

23.下面关于Visual FoxPro数组的叙述中,错误的是___________。

A.用DIMENSION和DECLARE都可以定义数组 B.Visual FoxPro只支持一维数组和二维数组

C.一个数组中各个数组元素必须是同一种数据类型 D.新定义数组的各个数组元素初值.F.

24.在VISUAL FOXPRO中说明私有数组的命令是___________。

A.DIMENSION 和ARRAY B.DECLARE 和 ARRAY C.DIMESION 和 DECLARE D.只有DIMENSION

25.关于Visual FoxPro的变量,下面说法中正确的是___________。 A.使用一个简单变量之前要先声明或定义 B.数组中各数组元素的数据类型可以不同

C.定义数组以后,系统为数组的每个数组元素赋以数值0 D.数组元素的下标下限是0

26.表达式MOD(12, 7)的值是__________。

A. 5 B.-2 C.-5 D.2 27.表达式MOD(12, -7)的值是___________。

A.5 B.-2 C.-5 D.2 28.表达式 ROUND(-6.7,0)的结果为___________。

A. -6 B. -8 C. -5 D.-7

29.下有关表达式MOD(a, b)= c的说法中正确的有_________ _。

A. a, b必须同时为正 B.a, c必然同号 C.a, b必须同时为负 D.b, c必然同号 30.下列函数中函数值为字符型的是______ 。

A.DATE( ) B.TIME( ) C.YEAR( ) D.ATETIME( ) 31.函数是程序设计语言中重要的语言成分。在下列VFP函数中,其返回值不为字符型数据

的是___________。

A.TYPE() B.DOW( ) C.CHR() D.TTOC( ) 32. 对于下列函数来说,其返回值的数据类型不为数值型的是___________。

A.LEN(\.YEAR(DATE())

C.ATC(\.LEFT(\

33. 设S=\江苏省普通高校计算机等级考试\,从中取出\高校\二个字的函数是_______。

A.SUBS(S,6,2) B.SUBS(S,11,4) C. SUBS(S,6,4) D.SUBS(S,11,2) 34.函数UPPER(\的结果是___________。

A.12AB34CD B.12ab34CD C.12ab34cd D.12AB34cd 35.在下列函数中,函数值为数值的是___________。

A.AT(\人民\, \中华人民共和国\ B.CTOD(\

C.SPACE() D.SUBSTR(DTOC(DATE()),7) 36.表达式LEN(SPACE(0))的运算结果是___________。

A. .NULL. B.1 C.0 D. \

37.在VFP命令窗口中执行?YEAR(DATE()+5)命令后,所返回结果的数据类型是______ 。 A.N(数值型) B.D(日期型) C.C(字符型) D.T(日期时间型) 38.下列表达式中,合法的是___________。

A.Year(Date())-{^2000/08/02} B.Date()-{^2000/08/02}

5

C.Date()+{^2000/08/02} D.A、B、C均对

39.下列表达式中结果为真的是______________。

A. \40.把日期2004年10月16日赋值给日期型变量的方法是___________。

A.D=10/16/2004 B.D=\

C. D=CTOD(\) D.D=DTOC(\)

41.表达式VAL(SUBS(\本年第2期\,7,1))*LEN(\他!我\的结果是___________。 A.0 B.2 C.8 D.10 42.?AT(\大学\, \北京语言文化学院\的答案是___________。 A.12 B.13 C.16 D.0 43.下列关系表达式中,运算结果为逻辑真.T.的是___________。 A.\副教授\教授\ B.3+5#2*4

C.\计算机\计算机世界\ D.2004/05/01==CTOD(\44.下列表达式中结果为.T.的是__________。

A.\.\王一平\王\C. {05/06/98}> {08/02/97} D.9>10 45.下列关于数据操作的说法中,不正确的是__ ______。

A.货币型数据能参加算术运算

B.两个日期型数据可以进行加法运算 C.一个日期型数据可以加或减一个整数 D.字符型数据能比较大小,日期型数据也能 46.表达式\的结果为____ _____。

A. 1 B. 3 C. .t. D ..f. 47.下列4个表达式中,运算结果为整数型的是_____________。

A.\

C.CTOD(\) D.LEN(SPACE(3))-1 48.表达式Day({^2004-1-2})的值是____________。

A.2004 B.2003 C. 1 D. 2

49.在Visual FoxPro中,对于空值(NULL)叙述正确的是_____________。

A.空值等同于空字符串 B.空值表示还没有确定值 C.不支持字段值为空值 D.空值等同于数值0

50.在下列FoxPro表达式中,结果为日期型的正确表达式是___________。 A.DATE()+TIME() B.DATE()+20 C.DATE()-{01/03/99} D.365-DATE()

51.在VFP中,下面4个关于日期或日期时间的表达式中,错误的是___________。

A.{^2002.02.01 11:10:10AM}-{^2001.09.01 11:10:10AM} B.{^01/91/2003}+20

C.{^2003.02.01}+{^2001.02.01} D.{^2000/02/01}-{^2001/02/01}

52.连续执行以下命令之后,最后一条命令的输出结果是___________。

SET EXACT OFF X=\

?IIF(X =\,X-\,X+\

A.\.\.\.\

53.在下列的Visual FoxPro表达式中,运算结果为字符型数据的是 。

A.\.\

6

C.CTOD(\) D.DTOC(DATE())>\54.有如下赋值语句,结果为“大家好”的表达式是 。

a=“你好” b=“大家”

A.b+AT(a,1) B.b+RIGHT(a,1) C.b+LEFT(a,3,4) D.b+RIGHT(a,2) 55.设变量x的值为\(其长度为4,末尾为一个空格字符),变量y的值为\(其长度为4,第一个字符为空格),则表达式LEN(x+y)和LEN(x-y)的返回值分别为 。 A.6,6 B.7,7 C.8,8 D.8,7

56.已知数值型变量X=1,Y=2,以下返回值为\的表达式是 。

A. \C. \57.逻辑运算符的优先顺序是 。

A.NOT,AND,OR B.NOT,OR ,AND C. AND ,NOT,OR D.OR,.NOT.AND. 58. 运行下列程序段后,屏幕上显示的内容是 。

y=DTOC(DATE(), 1) y=.NULL. ? TYPE(\

A. C B. D C. L D. NULL

59.假定系统日期是1998年12月20日,有如下命令, 执行后N的值应为____ __ 。

N=(YEAR(DATE())-1900)+0,

A.1998 B.98 C.20 D.12 60.以下四组表达式中结果是逻辑值.T.的是______ 。

A.'this'$'this is a string' B.'this'$'THIS IS A STRING' C.'this is a string'$'this' D.'this'>'this is a string'

二、填空题

1.项目管理器的 选项卡用于显示和管理数据库、自由表和查询等。 2.在VFP中,用户可以利用命令来修改系统的操作环境(如默认目录等),也可以通过菜单命令打开 对话框进行设置。

3.在VFP命令窗口中输入并执行命令 .FontSize=20,可以使主窗口中输出文本的字号设置为20。

4.在程序中可以用 指定全局(公共)变量。在当前工作期中,任何运行的程序都能使用和修改全局变量和全局数组。在命令窗口中创建的任何变量或数组被自动赋予全局属性。

5.使用LOCAL、PRIVATE和PUBLIC命令可以指定内存变量的作用域。在VFP命令窗口中创建的任何内存变量均为 。 6.将第2~4个字符为“yan”的所有变量保存到mVar内存变量文件中,可以使用命令:SAVE TO mVar ALL ?yan*。

7.在VFP中,关闭所有的文件并结束当前VFP系统运行的命令是 。

8.在VFP中,系统规定:名称(如变量名、字段名、对象的属性名等)只能以字母、汉字或下划线等字符开头,不能以数字字符开头。系统预定义了许多系统变量,它们的名称均以 开头。

9.在VFP中,使用 、PRIVATE和PUBLIC命令可以指定内存变量的作用域。 10.将内存变量文件mVar中所保存的内存变量恢复到内存,且当前已存在的内存变量仍保留,可以使用命令 FROM mVar ADDITIVE。

7

11.利用SET命令可以改变VFP系统运行时的临时工作环境(“临时”是指当前有效,下次启动VFP系统时将不起作用)。例如,利用SET ON|OFF命令可以设置覆盖已有文件之前是否显示提示框。

12.利用一条 命令(语句)可以给多个内存变量赋同一个值。 13.运行以下程序后,VFP主窗口显示的结果是 。

CLEAR

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

A3=subs(a1,17,16) A2=\? &A2+A3

14.目前用户通常是在操作系统环境下(如在“我的电脑”或“资源管理器”窗口中)创建和删除文件夹。在VFP程序中,也可以利用MD和 命令来创建和删除文件夹。

15.在VFP中,系统规定:除了自由表的字段名、表的索引标识名至多只能 个字符以外,其余的名称的长度可以长达100多个字符。 16.执行如下命令后,Y(2)=_____________。 DIMENSION X(3,4),Y(6) X=55 Y=X(2)

17.执行如下命令后,X(2)的值为 。 DIMENSION X(3,4) X=7 18.在Visual FoxPro系统的命令窗口中,输入并执行命令:? mod(-12,5)后,Visual FoxPro主窗口中显示内容为 _ 。 19.函数INT(LEN(\))的结果是 ________。 20.常量 .n. 表示的是_______型的数据。

21.?Substr(“123456789”,3,3)的结果是________。

22.使用命令DECLARE mm(4,5)定义的数组,包含数组元素的个数为________个。

23.在Visual FoxPro中说明数组后,数组的每个元素在末赋值之前的默认值是_______。 24.命令?lower(\的结果是 。

25.执行命令A=2005/4/2之后,内存变量A的数据类型是 型。 26.表达式LEN(SPACE(5)-SPACE(10))的结果为_________。

27.在Visual FoxPro中,如果要在子程序中创建一个只在本程序中使用的变量XL(不影响上级或下级的程序),应该使用 说明变量。

28. 字段变量与内存变量同名时,区分方法是 。

29.执行函数MESSAGEBOX(\清华大学\计算机科学系\提示\,则可出现如图2-1所示的提示消息框。

30.函数STRTRAN(STR(35.96),SPACE(2),\的返回值为 。(提示:系统函数STRTRAN(<字符串1>,<字符串2>,<字符串3>)的功能是用<字符串3>替换<字符串1>中所包含的<字符串2>)。

31. 函数LEN(\中国\的值是 。 32.函数STR(1234.5454,7,3)的值为 。 33.假设X=100,则函数IIF(X<50,X-50,X+50)的值为 。 34.函数BETWEEN(40,34,50)的运算结果是 。 35.说明公共变量的命令关键字是 。

8

36.表达式{^2005-1-3 10:0:0}一{^2005-10-3 9:0:0}的数据类型是 。 37.?AT(\,RIGHT(\,4))的执行结果是 。

38.用户要在D盘的根目录中创建一个名为MyBack的文件夹,可用命令 。

39.字符型常量也称为字符串,它是由字符串“定界符”括起来的一串字符。字符串定界符可以是单引号、双引号或 。

40. 函数ROUND(1234.196, -2)的返回值为 ,SUBSTR(\的返回值为 。

第3章 数据库与表的创建和使用

一、选择题

1.下列关于项目、数据库和表的描述中不正确的是: 。

A. 一个项目可以包含多个数据库 B. 一个数据库可以包含在多个项目中 C. 一个数据库可以包含多个表 D. 一个表可以包含在多个数据库中 2. Visual FoxPro系统中,修改表结构的命令是 。

A.MODIFY STRUCTURE B.LIST STRUCTURE C. DISPLAY STRUCTURE D.CREATE STRUCTURE

3.表(table)是存储数据的容器。在下列有关VFP表的叙述中,错误的是 。 A.每个表最多只能包含200多个字段

B.新建一个表后,一般会生成1~3个文件

C.自由表与数据库表在数据存储功能上相同,但在数据管理与控制功能上有差别 D.自由表添加到数据库中则变成数据库表,数据库表移出数据库则变成自由表

4.在VFP系统中,对于数据库表来说,如果将其移出数据库变成自由表,则该表原设置或创建的 仍然有效。

A.候选索引 B. 长表名 C.记录有效性规则 D. 触发器 5.在创建表索引时,索引表达式可以包含一个或多个表的字段。在下列字段类型中,不能

直接选作索引表达式的是 。

A.货币型 B.日期时间型 C.逻辑型 D.备注型 6.在VFP系统中,如果指定二个表的参照完整性的删除规则为“级联”,则当删除父表中的记录时 。

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

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

7. Visual FoxPro系统中,检测表文件指针是否已到文件尾的函数是 。 A.BOF() B. EOF() C. END() D.FIEL()

8.表(table)是存储数据的容器。在下列有关VFP表的叙述中,错误的是 。 A.系统默认的表文件扩展名为.dbf

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

D.表文件名在命名上只要遵循操作系统的规定,VFP本身无任何新的限定

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

据库的叙述中,错误的是 。

A.新建一个数据库后,会生成三个相关文件

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

9

D.数据库表之间创建“一对多”永久性关系时,主表必须用主索引或候选索引 10.在下列有关VFP表索引的叙述中,错误的是 。

A.通过创建表的索引,不仅可以对记录数据进行排序,而且可以实现记录的筛选 B.对于数据库表来说,可以创建VFP系统支持的所有类型的索引 C.在表打开时,系统会自动地将默认的第一个索引作为主控索引 D.表的唯一索引并不能控制字段数据输入时的重复

11.数据库表可以设置字段有效性规则,字段有效性规则属于 _。

A.实体完整性范畴 B.参照完整性范畴 C.数据一致性范畴 D.域完整性范畴 12.通用型字段宽度为 。

A.1 B.2 C.4 D.8

13. XS(学生)表中有XM(姓名,字符型)和XB(性别,字符型)等字段。如果要将所有男生记录的姓名字段值清空,则可以使用命令 。

A. UPDATE xs SET xm=\ WHERE \男

B. UPDATE xs SET xm=SPACE(1) WHERE xb= \男\ C. UPDATE xs SET xm=SPACE(1) FOR xb= \男\ D. UPDATE xs SET xm=\ FOR \男

14.在下列关于数据库表和临时表的叙述中,不正确的是 。

A.数据库表随着其所在的数据库的打开而打开,也随着其所在的数据库的关闭而关闭 B.基于数据库表创建的临时表随着数据库的打开而打开,也随着数据库的关闭而关闭 C.用BROWSE命令可浏览数据库表,也可浏览临时表 D.临时表被关闭后,可使用USE命令再次将其打开 15.设某数据库中的学生表(XS.DBF)已在2号工作区中打开,且当前工作区为1号工作区,则下列命令中不能将该XS表关闭的是 。

A.CLOSE TABLE B.USE IN 2 C.CLOSE DATABASE ALL D.USE

16.首先执行CLOSE TABLES ALL命令,然后执行 命令,可逻辑删除JS表中年龄超过60岁的所有记录。

A.DELETE FOR YEAR(DATE()-YEAR(csrq))>60

B.DELETE FROM js WHERE YEAR(DATE())-YEAR(csrq)>60 C.DELETE FROM js FOR YEAR(DATE()-YEAR(csrq))>60 D.DELETE FROM js WHILE YEAR(DATE())-YEAR(csrq)>60 17.数据库表的主索引(及候选索引)的设置可以实现 。

A.域完整性 B.实体完整性 C.参照完整性 D.用户自定义完整性 18.函数SELECT(0)的返回值是 。

A. 当前工作区号 B. 当前工作区的下一个工作区号 C. 当前未被使用的最小工作区号 D. 当前未被使用的最大工作区号 19.在vfp中,“.dbf”文件被称为 。

A. 数据库文件 B. 表文件 C. 程序文件 D. 项目文件

20.要求一个表文件的数值型字段具有5位小数,那么该字段的宽度至少为 。

A. 5位 B. 6位 C. 7位 D. 8位

21.打开一张空表,分别用函数?EOF()和?BOF()测试,结果是 。

A .T.和.T. B .F.和.F. C .T.和.F. D .F.和.T. 22.下面 命令组与BROW FOR xb=”女”具有相同的显示结果。

A BROW(回车) SET FILTER TO (回车)

B SET FILTER TO xb=”女” (回车) BROW(回车)

10

C SET FILTER TO (回车)BROW(回车)

D BROW(回车)SET FILTER TO xb=”女” (回车) 23.在js.dbf中筛选出性别为“女”的命令是 。

A.SET FILTER TO xb=”女” B.SET FILTER xb=”女” C.SET FIELDS TO xb=”女” D.SET FILTER TO

24.当执行命令USE js ALLAS teacher IN B后,被打开的表的别名是 。

A. teacher B. js C. B D. js b 25.已知js表中有两条记录,下列操作中,返回值一定是.T.的是 。

A. B. USE js USE js ?EOF( )

GO 2

SKIP -1

C. D. ?BOF( )

USE js

USE js

GO BOTTOM

SKIP-1

SKIP ?EOF( )

?EOF( )

26.某打开的表中有20条记录,当前记录号是8,执行命令GO TOP后,再执行SKIP -1命令,此时所显示的记录号为. 。

A.1 B.0 C.7 D.9

27. 开一张表后,执行下列命令后,关于记录指针的说法正确的是 。

GO 6 SKIP -5 GO 5

A.记录指针停在当前位置不动 B.记录指针的位置取决于记录的个数 C.记录指针指向第5条记录 D.记录指针指向第1条记录 28.恢复带删除标记的记录的是 。

A.APPEND B.PACK C.RECALL D.ZAP 29.用表设计器创建一个自由表,不能实现的操作是 。

A. 设置某字段可以接受NULL值 B. 设置表中某字段的类型为通用型 C. 设置表的索引 D. 设置表中某字段的默认值 30.一张表的全部meno字段的内容存储在 。

A.不同的备注文件 B. 同一个文本文件 C. 同一个备注文件 D. 同一个数据库文件 31.有关表的索引文件,下列说法不正确的是 。

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

32.Visual FoxPro参照完整性规则不包括__________。

A. 更新规则 B. 删除规则 C. 查询规则 D. 插入规则 33.对于表的索引操作,下列说法中 是正确的。

A 一个独立的索引文件中可以存储一张表的多个索引 B 主索引只能用于自由表

11

C 表文件打开时,所有的复合索引文件都自动打开。 D 独立索引文件的文件名由系统自动给出。

34.建立索引时, 字段不能作为索引字段 。

A. 字符型 B. 数值型 C. 通用型 D. 日期型 35.下列描述中错误的是 。

A 组成主索引的关键字或表达式在表中不能有重复的值

B 主索引只能用于数据库表,但侯选索引可以用于数据库表和自由表 C 唯一索引表示参加索引的关键字或表达式在表中只能出现一次 D 在表设计器中只能创建结构复合索引

36.对于自由表而言,不能创建的索引类型是 。

A.主索引 B.候选索引 C.普通索引 D.唯一索引 37.在向数据库添加表的操作中,下列叙述中不正确的是 。

A.可以将一张自由表直接添加到数据库中

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

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

D.欲使一张数据库表成为另一个数据库的表,则必须先使之成为自由表 38.当库表移出数据库后,仍然有效的是 。

A.字段的默认值 B. 表的验证规则 C.记录的验证规则 D.结构复合索引 39.如果一张数据库表的DELETE触发器设置为:性别=‘女’,则表示 。

A.不许修改女生 B.不许删除女生 C.只许修改女生 D. 只许删除女生 40.如果一张数据库表的UPDATE触发器设置为.F.,则不允许该表的记录作 。

A.修改. B. 删除 C.添加 D.显示 41.下列描述错误的是 。

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

C.自由表和库表的表设计器是不一样的 D.数据库表的记录存储在数据库中

42.下列关于索引的描述中错误的是 。

A.组成主索引的关键字或表达式在表中不能有重复值

B.主索引只能用于数据库表,但候选索引可用于自由表和库表 C.必需将某个索引设置为主控索引后才能起作用。 D.在表设计器中可以创建各种索引文件

43.在对数据库的操作中,下列说法中正确的是 。

A.数据库被删除以后,则它包含的库表也随着被删除 B.打开了新的数据库,则原来已打开的数据库被关闭 C.数据库关闭后,它所包含的所有打开的数据库表被关闭 D.数据库被删除后,则它所包含的表立刻成为自由表

44.创建数据库后,系统自动生成的三个文件的扩展名为 。

A..pgx .pjt .rpg B..sct .scx. .spx C .fpt .frx .fxp D .dbc .dct .dcx 45.逻辑删除当前表中的全部记录,应该使用命令__________。

A. PACK B. DELETE C. DELETE ALL D. ZAP 46.对xsb.dbf进行删除操作,下列四组命令中功能等价的是 。

① DELETE ALL ② DELETE ALL

PACK

③ ZAP ④ 把文件拖放到回收站中

12

A. ①②③ B. ③④ C. ②③④ D. ②③ 47.下列命令中,能够进行条件定位的命令是__________。

A. SKIP B. GO C. LOCATE D. SEEK 48.如果要在数据库的两张表之间建立永久性关系,则至少要求在父表的结构复合索引文件中创建一个 ,在子表的结构复合索引文件中创建任何类型的索引。

A.主索引 B.数据库 B.主索引和侯选索引 D.唯一索引 49.数据库表之间创建的永久关系保存在 中。

A.数据库表 B.数据库 C.表设计器 D.数据环境设计器 50.下列关于表之间的永久关系和临时关系的描述中,错误的是 。

A. 如果两库表之间存在永久关系,只要打开表,永久关系就起作用 B. 表关闭之后临时关系消失

C. 永久关系只能建立于数据库表之间,而临时关系可以建立于各种表之间 D. VFP中临时关系不保存在数据库中。

51.下列关于表的索引的描述中,错误的是 。

A. 复合索引文件的扩展名为.cdx

B. 结构复合索引文件随表的打开而自动打开

C. 当对表进行编辑修改时,系统对其结构复合索引文件中的所有索引自动进行维护 D. 每张表只能创建一个主索引和一个侯选索引 52.对于自由表而言,不能创建的索引类型是 。

A.主索引 B.候选索引 C.普通索引 D.唯一索引

53.在多工作区操作中,如果选择了1、3、5号工作区并打开相应的表,在命令窗口执行命令SELECT 0,其结果选择 为当前工作区。

A. 0 B. 1 C. 2 D. 4

54.设有一张教师表js,含有一个字符型字段 xb。下列命令中语法正确的是 。

A. DELETE FROM js WHERE xb=’男’ B. DELETE TABLE js WHERE xb=’男’ C. DELETE FROM js FOR xb=’男’ D. DELETE TABLE js FOR xb=’男’ 55.打开一张有记录的表后,未作记录指针移动操作时RECNO( )、BOF( )和EOF( )函数的值分别为________。

A. 0、.T.和.T. B. 0、.T.和.F. C. 1、.T.和.T. D. 1、.F.和.F. 56.VFP中数据库的参照完整性指的是_________。 A. 保证表中的主关键字取值确定的,唯一的 B. 父表与子表之间的约束关系 C. 根据用户需求自编代码保证数据正确性和完整性 D. 为数据库表建立关联 57.命令SELECT 0 的功能是________。

A. 选择区号最小的空闲工作区 B. 选择区号最大的空闲工作区 C. 选择当前工作区的区号加1的工作区 D. 随机选择一个工作区的区号

58.若所建立索引的字段值不允许重复,并且一个表只能创建一个,它应该是________。

A. 主索引 B. 唯一索引 C. 候选索引 D. 普通索引 59.如果XS的UPDATE触发器设置为:xh=“01”(xh:学号),则表示 。

A.不许修改01级学生记录 B.不许删除01级学生记录 C.只能修改01级学生记录 D.只许删除01级学生记录 60.在VFP系统中,如果指定二个表的参照完整性的删除规则为“忽略”,则当删除父表中的记录时 。

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

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

13

61.下面程序执行后,浏览窗口显示的表及其当前工作区号分别是 。

CLOSE TABLES ALL USE js SELECT 5

USE js AGAIN SELECT 0

USE js AGAIN BROW

A.B、2 B. js、23 C. B、5 D.E、2

二、填空题

1.Visual FoxPro系统支持3种不同的索引文件,即 索引文件、非结构复合索引文件和独立索引文件。

2.设在1号工作区中打开XS表,若要求在2号工作区中再次打开XS表且别名设置为XUESHENG,则可使用命令:

USE xs xuesheng IN 2 AGAIN

3.利用DBGETPROP()函数,可以获取当前数据库的属性设置信息,或当前数据库中的表、表字段或视图的属性设置信息。例如,要获取当前数据库SJK中XS表的xb字段的默认值,可以使用函数DBGETPROP(\ \。 4.查看xs表中xh字段的有效性规则,可以使用下列命令:

? dbgetprop(“xs.xh”,” ,”RuleExpression”)

5.存放在数据字典中的各种描述信息,包括所有数据的结构名、存储格式、完整性约束、使用权限等信息,这些描述信息通常称为_________。

6.对于包含备注型字段或 字段的表来说,系统会自动生成和管理一个相应的备注文件,用于存储备注内容。备注文件的文件名与表文件名相同,其扩展名为.fpt。

7.虽然结构复合索引文件是随表的打开而自动打开的,但复合索引中的任何一个索引都不会被自动设置为主控索引,此时,表中的记录任按记录的物理顺序显示和访问。要设置一张表的主控索引可以有两种方式:在打开表的同时打开索引,或打开表以后再设置主控索引。打开表以后再设置主控索引的命令为 。

8.触发器是绑定在表上的逻辑表达式,当表中的任何记录被指定的操作命令操作时,触发器被激活。触发器的返回值为.T.或.F.,如果为.F.,则 相应的操作。

9.教学管理数据库中含有课程表(KC.DBF),该表中有以下字段:KCDH(课程代号 C),KCM(课程名 C),BXK(必修课否 L),XF(学分 N)。现要为该表设置一个记录级的规则:学分大于3的课程均为必修课。相应的逻辑表达式是 。

10.设教师(JS.DBF)表中含有100个记录,运行下列程序后,显示记录个数是 。 【程序2清单】 CLEAR USE JS SCAN ?RECNO(),GH,XM SKIP

ENDSCAN USE

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

【程序清单】 SELECT 1

14

USE xs SELECT 0 USE cj SELECT xs

12.利用DBSETPROP()函数,可以设置当前数据库的属性,或设置当前数据库中表、表的

字段和视图的有关属性。例如,要设置JS表中gh字段的标题属性,可以使用函数DBSETPROP(“ ”, “FIELD”, “Caption”,”工号”) 。

13.在VFP中,系统规定:除了自由表的字段名、表的索引标识名至多只能 个字符以外,其余的名称的长度可以长达100多个字符。

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

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

15.使用USE命令可以打开或关闭表。如果XS表已在第1工作区打开,则要在第

10工作区中再次打开XS表,可使用命令USE xs IN 10。

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

字段和视图的有关属性。例如,要得到JS表的记录级有效性规则,可以使用函数DBGETPROP(“js”, “ ”, “RuleExpression”)

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

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

18.在VFP中创建一个数据库后,系统会生成三个文件: (数据库主文件)、.dct(数据库备注文件)和.dcx(数据库索引文件)。

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

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

20.某公司人事档案表中包含一个出生日期字段(字段名为csrq,类型为日期型),则根据“月日”(不包含“年份”)创建索引时,其索引表达式可以为 。

21.使用SET ON|OFF命令,可以指定 Visual FoxPro系统是否处理做了删除标

记的表记录。

22.某表含有两个字段:XX(字符型)和YY(日期型)。若要创建一个索引,要求先根据

XX字段排序,相同时再根据YY字段排序,则索引表达式可以设置为 xx + 。 23.在两个数据库表之间创建永久性关系后,就可以创建它们之间的参照完整性规则。 在

VFP中,参照完整性规则分为更新规则、 规则和插入规则。

24.如果因误操作删除了某个数据库文件,由于数据库表仍然保留对该数据库引用的后链,

因此这些数据库表也不能被添加到其他的数据库中。这时需要利用 命令删除存储在数据库表中的后链,使之成为自由表。

25.用INSERT-SQL命令在XS(学生)表中添加如下表格所示的记录,可使用命令: INSERT INTO xs(xh,jl,csrq) (\获得三好学生称号\

字段名与类型 XH(字符型) JL(备注型) CSRQ(日期型) 值 E9999 获得三好学生称号 1988.07.14. 26.以独占方式打开js表的命令是 use js 。

27.在js表中要删除所有工龄(字段名为gl)大于60的纪录的SQL命令是:

DELETE js WHERE 。 28.在js表中按如下要求更改基本工资(jbgz):

工龄在10年以下(不含10年) 基本工资加20 工龄在10~19年 基本工资加35

15

工龄在20年以上(含20年) 基本工资加50 可用一个UPDATE命令完成上述更改:

UPDATE js jbgz=IIF(js.gl<10, ,IIF( ,jbgz+50,jbgz+35)) 29.执行下述命令后,被打开的数据库文件个数是 个,被打开的表文件个数是 个。(JS表、XS表、CJ表均属于SJK1数据库) CLOSE DATABASE ALL OPEN DATABASE SJK1 OPEN DATABASE SJK2 OPEN DATABASE SJK3 USE JS USE XS USE CJ 30.如果依次执行下列命令,则xs表在两个工作区中同时打开,其别名分别为xs和______。

CLOSE DATABASE ALL USE xs SELECT 20

USE xs AGAIN

31.已知xs表的结构复合索引中已创建xh字段的普通索引,索引标识为xh,在没有设置主控索引的情况下,要用SEEK命令定位到学号为“980101”的纪录上,则该命令为 。

32.打开一张表时, 索引文件将自动打开,表关闭时它将自动关闭。 33.通用型数据类型只能用于表中字段的定义,用于储存 对象。 34.若要实现多字段排序,即先按班级(bj,N,1)顺序排序,同班的同学再按出生日期(csrq,D)顺序排序,同班且出生日期也相同的再按性别(xb,C,2)顺序排序,其索引表达式为 。

35.记录的定位方式有 定位、 定位和条件定位三种。 36.已知一成绩表(score.dbf)的表结构如下: 字段名 类型 宽度 含义 Xh C 3 学号 Qzcj N 3,0 期中成绩 Qmcj N 3,0 期末成绩 表中含有以下3条记录,按输入时的物理顺序排列如下: Xh Qzcj Qmcj 001 85 73 002 92 81 003 80 87 对该表已创建结构复合索引: 索引顺序 索引名 索引表达式 降序 Cj1 Qzcj+qmcj 升序 Cj2 Str(qzcj)+str(qmcj) 执行如下命令:

USE score ORDER TAG cj1 BROWSE

则在浏览窗口中学号为“001”的记录在第 行。再在命令窗口中执行命令:

SET ORDER TO TAG cj2

则在浏览窗口中学号为“001”的记录在第 行。

16

37.xs.dbf表中记录总数为10,执行命令下列命令后,RECCOUNT函数的值为 。

USE XS

DELETE NEXT 3 SET DELETE ON

38.xs.dbf表中记录总数为20,执行命令下列命令后,显示的值为 。

USE XS GO BOTT SKIP

? RECNO ()

39.执行下列一组命令后,显示的值是____________。

CLOSE TABLE ALL SELE 0

USE XS ALIAS STU USE JS IN 0 ? SELECT ()

40.执行下述命令后,被打开的表文件是___________。

X=“XS.DBF/CJ.DBF/JS.DBF” Y=“/” L=AT(“/”,X)+1 F=SUBSTR(X,L,2) USE &F

41.打开表文件的命令是____________。

42.在Visual FoxPro中,要设置参照完整性规则,必须事先建立表之间的___________。 43.设职工(zg)表中含有2个日期型字段:参加工作日期(cjgzrq)和出生日期(csrq)。

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

三、按照要求写出相应的命令。

已知:

(1)学生表XS.DBF 包含字段XH,XM,XB,XZYDM分别表示学生的学号、姓名、性别、系专业代码。

(2)成绩表CJ.DBF包含字段XH,KCDM,CJ分别表示学号、课程代码和成绩。

(3)院系专业YXZY.DBF包含XZYDM、YXMC和ZYMC,分别表示系专业代码、院系名称和专业名称。

(4)工资表GZ.DBF包含字段GH,JBGZ分别表示工号和基本工资。 1.创建一个教师表(js.dbf),其中有字段gh(字符型,长度为8)、xm(字符型,长度为10)、csrq(日期型)、bz(备注型,且允许为NULL值)。

2.删除JS表中年龄超过60岁的所有教师的记录。

3.将工资表中GH以“A”开头的基本工资加200。

17

4.为院系专业表插入一条新纪录:系专业代码为“0015”,院系名称为“信息科学系”,专业名称为“人工智能”。

5.创建一个课程表(kc.dbf),其中有字段KCDM(字符型,长度为4)、KCM(字符型,长度为18)、KSS(数值型,长度为2)、BXK(逻辑型)。

6.将学号为“950106”,课程代码为“06”,成绩为“80”的记录从成绩表删除中。

7.更新成绩表CJ.DBF 的CJ字段的值,要求90分以下的新成绩为原成绩的1.1 倍,90分及以上的同学新成绩都为100分。

8.将学号为“950106”,课程代码为“02”,成绩为“85”的记录插入到成绩表中。

9.将CJ(成绩表)中学号为“990102”、课程代码为“02”的学生的成绩改为:90。

10.删除成绩表中成绩不及格的所有记录。

11.将教师表“gh”字段的长度由“8”改为“4”。

12.将“bz”字段从教师表删去。

13.设置学生表“性别”字段的默认值为“男”。

14.把JL(备注型 M 允许为NULL值)字段添加到JS表中。

18

15.把CSRQ(出生日期,字符型)字段添加到XS表中。

16.把ZP(照片,通用型)字段添加到XS表中。

17.将工资表的JBGZ字段长度改为由5位整数和2位小数组成。

18.设置学生表的有效性规则为必须年满16岁才能入学。

19.将工资表的“jbgz”改名为“sfgz”。

20.删除学生表的有效性规则。

第4章 查询的创建和使用

一、选择题

1.下列说法正确的是__________。 A.视图文件的扩展名是.vcx

B.查询文件中保存的是查询的结果

C.查询设计器实质上是SELECT-SQL命令的可视化设计方法 D.查询是基于表的,并且是可更新的数据集合

2.有关查询和视图,下列说法不正确的是__________。 A.查询是只读型数据,视图可以改变数据源 B.查询可以更新数据源,视图也有此功能

C.视图具有许多数据库表的属性,利用视图可以创建查询和视图 D.视图可以更新数据源,存在于数据库中

3.在VFP系统中,使用查询设计器生成的查询文件中保存的是___________。 A.查询的命令 B.与查询有关的基表 C.查询的结果 D.查询的条件

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

19

___________。

A.自由表 B.临时表 C.表单 D.屏幕 5.下列关于视图的说法中,错误的是___________。 A.视图中的源数据表也称为基表 B.视图不以文件的方式独立存在

C.视图设计器只比查询设计器多一个“更新条件”选项卡

D.远程视图使用VFP的SQL语法从VFP视图或表中选择信息 6.SQL是__________的缩写。

A.Standard Query Language B.Structured Query Language C.Select Query Language D.其他三项都不是

7.如果没有选定输出目的地,那么查询结果将显示在__________中。 A.VFP主窗口 B.浏览窗口 C.用户自定义窗口 D.临时表

8.从表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 ASSELECT * FROM customer 9.查询设计器和视图设计器的主要不同表现在___________。

A.查询设计器有“更新条件”选项卡,没有“查询去向”选项。 B.查询设计器没有“更新条件”选项卡,有“查询去向”选项。 C.视图设计器没有“更新条件”选项卡,没有“查询去向”选项。 D.视图设计器有“更新条件”选项卡,也有“查询去向”选项。 10.下列有关查询与视图的叙述中错误的是___________。

A.查询文件不仅可以在查询设计器中修改,而且可以利用Windows的“记事本修改” B.视图分为本地视图和远程视图两种类型,而且可以创建参数化视图

C.查询结果在屏幕上直接浏览时,其数据是只读的,而视图的结果是可以修改的 D.查询与视图的数据源可以是自由表、数据库表、查询和视图 11.查询如果要输出匹配记录,多表关联应选择___________。

A.内部联接 B.左外部联接 C.右外部联接 D.全外部联接 12.查询结果可进行___________。

A.数据修改 B.数据追加 C.单独保存 D.保存在数据库中 13.查询的数据源 ___________。

A.只能是自由表 B.只能是关联的多表 C.只能是视图 D.表和视图 14.视图是一个___________。

A. 虚拟的表 B. 真实的表 C. 不依赖数据库的表 D. 不能修改的表. 15.Visual FoxPro 6.0中,建立查询可用___________方法。 A. 使用查询向导 B. 使用查询设计器 C. 直接使用SELECT-SQL命令 D. 以上方法均可

16.使用SELECT-SQL命令建立查询时,若要将查询结果输出到临时数据表中,需要使用 ___________字句。

A.INTO ARRAY B.INTO CURSOR C.INTO TABLE D.TO FILE

17.在SQL语句中,与表达式“仓库号 NOT IN(\)”功能相同的表达式是___________。

A.仓库号=\仓库号=\ B.仓库号!=\仓库号#\C.仓库号<>\仓库号!=\ D.仓库号!=\仓库号!=\

20

18.查询设计器中“联接”选项卡对应的SQL短语是___________。

A. WHERE B. JOIN C. SET D. ORDER BY

19.在SELECT-SQL命令中,如果在分组的基础上,还需对查询结果进行记录的筛选,即取查询记录的子集,可以用___________子句。 A. ORDER BY B. HAVING C. DISTINCT D. WHERE

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

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

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

21.现有两张数据库表分别为部门表和商品表的数据(21-25题均用该数据): 表1 部门表 部门号 部门名称 40 家用电器部 10 电视录摄像机部 20 电话手机部 30 计算机部 表2 商品表 部门号 商品号 商品名称 单价 数量 产地 40 0101 A牌电风扇 200.00 10 广东 40 0104 A牌微波炉 350.00 10 广东 40 0105 B牌微波炉 600.00 10 广东 20 1032 C牌传真机 1000.00 20 上海 40 0107 D牌微波炉_A 420.00 10 北京 20 0110 A牌电话机 200.00 50 广东 20 0112 B牌手机 2000.00 10 广东 40 0202 A牌电冰箱 3000.00 2 广东 30 1041 B牌计算机 6000.00 10 广东 30 0204 C牌计算机 10000.00 10 上海 SQL语句

SELECT 部门号,MAX(单价*数量) FROM 商品表 GROUP BY 部门号 查询结果有___________条记录。 A. 1 B. 4 C. 3 D. 10 22.现有SQL语句

SELECT 产地,COUNT(*) 提供的商品种类数; FROM 商品表; WHERE 单价>200;

GROUP BY 产地 HAVING COUNT(*)>=2; ORDER BY 2 DESC

查询结果的第一条记录的产地和提供的商品种类数是___________。 A. 北京,1 B. 上海,2 C. 广东,5 D. 广东,7

21

23.SQL 语句

SELECT 部门表.部门号, 部门名称,SUM(单价*数量); FROM 部门表,商品表;

WHERE 部门表.部门号=商品表.部门号; GROUP BY 部门表.部门号 查询结果是___________。

A. 各部门商品数量合计 B. 各部门商品金额合计 C. 所有商品金额合计 D. 各部门商品金额平均值 24.SQL 语句

SELECT 部门表.部门号, 部门名称, 商品号, 商品名称, 单价; FROM 部门表,商品表;

WHERE 部门表.部门号=商品表.部门号; ORDER BY 部门表.部门号 DESC,单价

查询结果的第一条记录的商品号是___________。 A. 0101 B. 0202 C. 0110 D. 0112 25. SQL 语句

SELECT 部门名称 FROM 部门表 WHERE 部门号 IN;

(SELECT 部门号 FROM 商品表 WHERE 单价 BETWEEN 420 AND 1000) 查询结果是___________。

A. 家用电器部、电话手机部 B. 家用电器部、计算机部 C. 电话手机部、电视录摄像机部 D. 家用电器部、电视录摄像机部

二、填空

1.SELECT 查询命令中___________子句,可以把一个SELECT 语句的查询结果同另一个SELECT语句的查询结果组合起来。

2.视图有2种,分别是 和 。

3.建立视图,其数据源可以是 、 、 。

4.SELECT-SQL命令中,ORDER BY的功能是:_______________。

5.完善下面的SQL命令,实现给cj表中成绩不及格的记录加上删除标记: DELETE FROM cj _____ cj.cj<60

6.SELECT-SQL命令中,GROUP BY关键字的功能是:_______________。 7.运行查询cx1.qpr的命令是_________________。

8.在SELECT-SQL语句中,DISTINCT选项的功能是___________。

9.在VFP中创建多表查询时,表之间的联接类型分为4种,即___________、左联接、右联接和___________。

10.用SELECT-SQL命令对数据进行查询时,SELECT命令中的FROM子句是用来指定数据源的, ________子句用来筛选源表记录的,__________子句用来筛选结果记录的。 11.视图可以在“数据库设计器”窗口中打开,也可以用USE命令打开,单在使用USE命令之前,必须打开包含该视图的___________。 12.如果打开基于本地表的视图,则在Visual FoxPro的另一个工作区中___________被同时打开。

13.如果要在学生表中查询籍贯为“江苏南京”和“上海”的同学,则SELECT-SQL语句为 : SELECT 学号,姓名,籍贯 FROM 学生 WHERE 籍贯___________。

14.如果要查询学生“李林”的情况,并将查询结果追加在文本文件temp.txt的尾部,请对下面的SQL语句填空:

22

SELECT * FROM 学生 TO FILE temp ___________ WHERE 姓名=“李林” 15.设有以下两条SELECT查询命令: A. SELECT xs.xh,xs.xm,zy.zymc; FROM sjk!xs,sjk!zy;

WHERE xs.zydh=zy.zydh; INTO CURSOR cx1; ORDER BY 3

B. 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

两条查询命令的功能 (注:回答“相同”或“不相同”)。

16.已知JS(教师表)中有xdh(系代号)、jbgz(基本工资)等字段, 下列语句是显示教师表(js.DBF)中各系科基本工资总和,请完善下列填空。 SELECT js.xdh,_________ as “基本工资总和”; FROM js;

GROUP BY______________。

17.已知某数据库表KCYZ.DBF含有5个字段,若其中有一个名为bxk的逻辑型字段,则可用下列SQL命令查询bxk字段值为.T.的所有记录,且要求输出所有字段,输出结果保存在表TEMP.DBF中。

SELECT FROM kcyz ; WHERE bxk= ; Table temp 。

18.设某图书馆“图书管理”数据库中有三张表:TS.dbf 、DZ.dbf 与JY.dbf,表结构如下:

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

AS 总金额, AS平均单价; FROM 图书管理!TS ;

GROUP BY 出版单位 。

19.完善下列语句以查询借阅次数最多的前10名读者的代书证号、姓名和借阅次数(表结构同上):

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

23

ORDER BY 。

20.如果要查询借阅了两本和两本以上图书的读者姓名和单位,请完善下列SQL语句(表结构同上):

SELECT 姓名,单位; FROM 图书管理!DZ; WHERE 借书证号 IN ( SELECT ; FROM 图书管理!JY; GROUP BY 借书证号;

HAVING 。

21.下列SELECT-SQL命令用于查询每个图书证号借书本数、过期本数、过期罚款数。(注:“过期”是指借阅超过60 天,罚款数以每本书借阅超过60 天者,超过部分按每天 0.05 元计算。)

SELECT Jy.借书证号, COUNT(*) as 借书本数, AS 过期本数,; SUM(IIF(Jy.hsrq-Jy.jyrq>60, 0.05* ,0.00)) AS 罚款数; FROM jy;

GROUP BY 。

22.在教学管理数据库SJK中有2个表: KC.DBF(课程表)和CJ.DBF(成绩表),表结构如下: KC.DBF CJ.DBF 字段类型及 字段类型及字段名 含义 字段名 含义 宽度 宽度 KCDH 课程代号 C(8) XH 学号 C(10) KCM 课程名 C(26) KCDH 课程代号 C(3) XF 学分 N(2) CJ 成绩 N(3) 则可用下列SQL命令查询总学分大于100的记录。(注:成绩为60或60以上才能获得相应学分,否则学分为0):

SELECT CJ.xh, SUM( ) AS 总学分; FROM Sjk!Kc INNER Sjk!Cj ; WHERE Cj.Kcdh=Kc.Kcdh ; GROUP BY CJ.Xh;

总学分>100 。

23.完善下列SQL命令以查询每门课的课程代号、课程名、选课人数、优秀人数、不及格人数(表结构同上)。

SELECT Kc.kcdh, Kc.kcm, AS 选课人数,; SUM(IIF(cj.cj>=90,1,0)) AS 优秀人数,;

AS 不及格人数; FROM sjk!kc INNER JOIN sjk!cj ; ON Kc.kcdh = Cj.kcdh; GROUP BY 。

24.数据库JXSJ中有JS(教师)表、KCAP(课程安排)表和KC(课程)表,教师表中有GH(工号)、XM(姓名)等字段;课程安排表中有GH(工号)、KCDM(课程代码)和BJBH(班级编号)等字段;课程表中有KCDM(课程代码)、KCMC(课程名称)和KSS(周课时数,数值型)等字段。若周课时总数≤9时,每课时津贴30元;周课时总数>9时,超过部分每课时津贴80元,则下列SELECT-SQL命令可以统计每位教师周课时总数以及周课时津贴,且按周课时津贴降序排序,查询去向为文本文件RS.TXT。

24

SELECT Js.gh AS 工号, Js.xm AS 姓名, AS 周课时总数,; IIF(SUM(Kc.kss)<=9,SUM(Kc.kss)*30, ) AS 周课时津贴; FROM jxsj!js INNER JOIN jxsj!kcap INNER JOIN jxsj!kc ; ON ; ON Js.gh = Kcap.gh; GROUP BY Js.gh; ORDER BY 4 DESC; rs.txt

25.当前盘当前目录下有数据库db_stock,其中有数据库表stock.dbf,该数据库表的内容如下: 股票代码 股票名称 单价 交易所 600600 青岛啤酒 7.48 上海 600601 方正科技 15.20 上海 600602 广电电子 10.40 上海 600603 兴业房产 12.76 上海 600604 二纺机 9.96 上海 600605 轻工机械 14.59 上海 000001 深发展 7.48 深圳 000002 深万科 12.50 深圳 有如下SQL语句

SELECT * FROM stock INTO TABLE stock ORDER BY 单价

执行该语句后的结果是___________(注:回答“出错”或“不出错”)。 26.有如下SQL SELECT语句

SELECT * FROM stock WHERE单价BETWEEN 12.76 AND 15.20 与该语句等价的是

SELECT * FROM stock WHERE 单价<=15.20___________单价>=12.76 27.有如下SQL语句

SELECT max(单价) INTO ARRAY a FROM stock 执行该语句后a[1]的内容为__________。 28.有如下SQL语句

SELECT 股票代码,avg(单价) as 均价 FROM stock; GROUP BY 交易所 INTO DBF temp

执行该语句后temp表中第二条记录的“均价”字段的内容是__________。 29.有如下SQL语句

CREATE VIEW view_stock AS SELECT 股票名称AS名称,单价FROM stock 执行该语句后产生的视图含有的字段名是__________,单价。 30.执行如下SQL语句后

SELECT DISTINCT 单价 FROM stock;

WHERE 单价=(SELECT min(单价) FROM stock) INTO DBF stock_x 表stock_x中的记录个数是__________。

三、写SQL语句

(1)学生表XS.DBF 包含字段XH,XM,XB,XZYDM,XDH分别表示学生的学号、姓名、性别、系专业代码和系代号。

(2)教师表JS.DBF包含字段GH,XM,XDH,ZC分别表示工号,姓名,系代号,职称。

(3)课程表KC.DBF包含字段KCDH,KCM,KSS,BXK,XF分别表示课程代号、课程名、课时数、是否必修课和学分。

25

(4)成绩表CJ.DBF包含字段XH,KCDH,CJ分别表示学号、课程代号和成绩。 (5)系名表XIM.DBF包含字段XDH,XIMING分别表示系代号和系名。 (6)工资表GZ.DBF包含字段GH,JBGZ分别表示工号和基本工资。

(7)借阅表JY.DBF中包含字段JSZH、JYRQ、HSRQ分别表示借书证号、借阅日期和还书日期。

(8)院系专业信息表YXZY.DBF包含字段XZYDM,ZYMC分别表示系专业代码和专业名称。

(9)教材JC.DBF表含有CBSMC,ZZ和CBNF分别表示出版社名称、作者和出版年份等字段。

根据以下要求,填写出SELECT-SQL命令:

1.基于XS表,查询学生表中系代号为“05”的学生的学号和姓名。

2.基于学生表,查询学号以“002”开头的学生的学生情况。

3.基于教师表查询年龄在40-50岁的所有教师的工号、姓名和年龄,并按年龄排序。

4.基于学生表查询所有籍贯为“江苏”的同学记录。

5.基于CJ表,查询已及格的所有学生的学习情况,并按学号降序排序。

6.基于KC表,显示所有必修课的课程代号和课程名,并按课程代号降序排列。

7. 显示CJ表中有不及格课程成绩的学生的学号,有多门课程不及格的学生只显示一次。

8.基于JS表查询各职称的教师人数。要求输出职称、教师人数,按教师人数降序排序,查询结果输出到临时表TEMP。

26

9.基于XS表查询所有学生的情况,并把结果输出在屏幕上。

10.基于学生表查询出在1980年以后出生的学生的学号、姓名和出生日期,并按学号升序排序。

11.基于GZ表查询基本工资在1000~2000元之间的教师,要求输出工号和基本工资,并且按基本工资的降序排列。

12.基于JC表查询各个作者在各个出版社每年出书情况,要求输出作者、出版社名称、出书数量。

13.基于JC表查询每个年份出版图书总量,要求输出出版年份,图书总量,并按图书总量降序排列。

14.从高到低显示CJ表中课程代号为“01“的课程学生的学号和成绩。

15.基于XS表和CJ表,查询各个学生的平均成绩,要求输出:学号、姓名和平均成绩,并按平均成绩升序排列。

16.基于KC表和CJ表,查询每门课的最高分、总分,要求输出总分在480分以上的课程代号、课程名、最高分和总分, 并把查询结果保存到Kc-maxcj.dbf 表文件中。

27

17基于CJ表和KC表,查询出所有课程名为“英语”的学生的学号、成绩和课程名,并按成绩降序排。

18基于KC表和CJ表和XS表,查询每门课程的选课人数,平均分,要求输出课程代号、课程名、选课人数、平均分,结果按选课人数降序排序。

19基于XS表和Xim表查询各系男女生人数,要求输出系名,系代号,男生人数,女生人数,结果按系代号降序排,系代号相同的按人数从低到高排。

20于JS表、GZ表和Xim表查询各系教师的工资总额和平均工资,要求输出XDH, Ximing, 工资总额,平均工资, 结果按工资总额降序排序。

21.于XS表和CJ表查询总分前5名的学生成绩。要求输出字段为:XH、XM、XB、总成绩、平均成绩 ,

查询结果按总成绩降序排列。

22.XS和CJ查询“01”年级优秀生的信息,要求输出的字段为:学生的学号、姓名、平均分、最低分,输出结果按优秀生平均分的降序排序。

(注:xh字段的前两位表示年级;优秀生的条件是各门课的平均分不低于80且每门课的成绩不低于70)。

23.示JS表中已担任课程(即在RK表中没有相关工号)的教师的姓名和系名。

28

24. 查询专业表YXZY中,哪些专业在学生表XS中尚未有该专业的学生,输出xzydm,zymc(子查询)

25.基于XS表和CJ表统计所有已登记的成绩中,有两门或两门以上课程不合格的学生的总课程门数和成绩不合格门数,要求输出字段为:XH、XM、总门数、不合格门数,查询结果按不合格门数降序排序。(注:“不合格”是指成绩小于60)

26.基于XS表和CJ表统计所有已登记的成绩中全部课程均合格的学生名单及其合格课程门数,要求输出字段为:XH、XM、合格门数,查询结果按合格门数降序排序。(提示:“全部课程均合格”就是指最低分数大于或等于60)。

27.基于XS表和CJ表,查询班级编号为“0137”的那些没有登记过任何课程成绩的学生名单,要求输出字段为:XH、XM,查询结果按学号升序排序。(提示:班级编号为学号的前4位,要求使用左联接)

28.基于JY表统计教师、学生借书过期罚款人次和罚款金额,要求输出字段为类别(学生还是教师)、过期罚款人次和罚款金额。(注:学生类读者JSZH的第一个字符为“X”,罚款数以每本书借阅超过30 天者,超过部分按每天 0.05 元计算;教师类读者JSZH的第一个字符为“J”,罚款数以每本书借阅超过60 天者,超过部分按每天 0.05 元计算。)

29.基于XS表和Xim表查询各系男女生人数,要求输出系名、性别、系代号、人数。(注意同16的区别)。

29

30.查询个系科教师工资总额、各系科每个教师的工资以及全校所有教师工资总额。要求结果中包含三个列:系名、姓名和工资,并按系名排序。

第五章 程序设计基础

一、选择题

1.下面不是面向对象特性的是 。

A. 封装性 B. 继承性 C. 私有性 D. 多态性

2.在循环程序中,如果执行到LOOP语句时,程序会出现___________。 A.忽略该语句 B.重新循环 C.循环中止 D.死循环

3.设A=″江苏省普通高校计算机等级考试″,从中取出″等级考试″四个字的函数是 。

A. SUBS(A,6,8) B. SUBS(A,11,8) C. LEFT(A,11,8) D. RIGHT(A,8) 4.Visual FoxPro系统中,下面命令执行结果是 。 X=314.75 Y=INT(x) ?Y

A. 314 B. 300 C. 315 D. 320 5.下列VFP控件,不能直接添加到表单中的是 。 A.命令按钮(Command) B.页面(Page)

C.计时器(Timer) D.复选框(Check) 6.下列命令中,不能使程序跳出循环的是_______。

A. LOOP B. EXIT C. QUIT D. RETURN

7.已知数值型变量X=3,Y=1,以下返回值为\的表达式是 。 A. \ B. \

C. \ D. \AL(\

8.下列四种文件类型中,与程序文件无关的是 。 A. PRG B. BAK C. FXP D. VCX 9.下列Visual FoxPro基类中,不属于可视类的是 。 A. 页框(PageFrame) B. 标头(Header) C. 计时器(Timer) D. 列表框(ListBox)

10.下列Visual FoxPro基类中,不属于容器类的是 。 A. 表格(Grid) B. 页框(PageFrame) C. 列(Column) D. 线条(Line)

11.对事件按照其发生顺序进行排序,下列排列正确的一组是 。 A. Init Load Uload Destroy B. Load Init Uload Destroy

30

C. Init Load Destroy Uload D. Load Init Destroy Uload

12.在Visual FoxPro集成环境下,用户运行程序文件时,系统会自动的对程序文件进行编译生成“伪编译”程序,实质上,系统执行的是扩展名为 的文件。 A. PRG B. BAK C. VCX D. FXP

13.下列Visual FoxPro基类中,不能基于它创建子类(派生类)的是 。 A. 命令按钮(CommandButton) B. 标头(Header) C. 形状(Shape) D. 文本框(TextBox)

14.运行下列命令后,则数组元素X(1,1)、X(4)、X(2,2)的值分别是 。 DIMENSION X(2,3) X=3

Store 1 to X(2) Store 2 to X(5)

? X(1,1),X(4),X(2,2)

A. 3,3,3 B. 3,1,2 C. 3,3,2 D. 1,2,3

15.函数是程序设计语言中重要的语言成分。在下列VFP函数中,其返回值不为字符型数据的是 。

A. SUBSTR() B. DTOC() C. ASC() D. ALLTRIM()

16.为了使过程或自定义函数具有一定的灵活性,可以向过程或自定义函数传递一些参数,系统约定:一个过程或自定义函数最多可以有 个参数。 A. 1 B. 4 C. 27 D. 127 17.运行以下程序后,VFP主窗口显示的结果是 。 【程序清单】 CLEAR N=0

DO WHILE N<10 IF INT(N/2)=N/2 ?”W” ENDIF

??”Fox” N=N+1 ENDDO

A.W Fox Fox 显示5行 B.W Fox W Fox显示5行 C.W Fox Fox 显示4行 D.Fox Fox W显示4行 18.结构化程序设计的三种基本逻辑结构是 。 A. 选择结构、循环结构和嵌套结构 B. 顺序结构、选择结构和循环结构 C. 选择结构、循环结构和模块结构 D. 顺序结构、递归结构和循环结构

19.在一应用程序的主程序中建立事件循环的语句是 。 A. DO WHILE B. SCAN

C. READ EVENTS D. CLEAR EVENTS 20.创建对象时发生___________事件。

A.LostFocus B.InteractiveChange C.Init D.Click

31

二、填空题

1.程序设计的主要方法有两大类:结构化程序设计和 。 2.面向对象程序设计的英文缩写是 。

3.类是面向对象程序设计的核心。类具有许多特点,其中 反映了类于类之间不同的抽象级别,该性质使得相似的对象可以共享程序代码和数据,是程序可重用性的关键。 4.由VFP中事件和方法的概念描述及SetFocus和GotFocus的功能判断,SetFocus是 ,GotFocus是 (填“方法”或“事件”)。

5.在Visual Foxpro 内部定义的类称之为 ,可用作其他用户定义类的基础,即可在此基础上创立新类,增添自己需要的功能。

6.在Visual Foxpro 中,建立循环采用 命令,终止循环采用 命令。 7.结构化程序设计的本质是 ,其方法是自顶向下,功能分解,其开发过程通常是从“做什么”到“如何做”。

8.在VFP中,将对象的特征或某一方面的行为用 定义。 9.在Visual Foxpro 的核心事件中, 事件可创建对象。

10.采用面向对象的程序设计方法设计的程序,其功能的实现是由 驱动的。 11.类包含了对象的特征和行为信息,是对象的 ,对象是类的一个 。 12.如果要简化对同一个对象多个属性的设置,可以采用语句 。

13.对象的引用由相对引用和绝对引用。从容器的最高层次引用对象的是 。 14.若要激活表单,应调用表单的 方法。

15.在VFP集成环境下调试程序过程中,如果程序运行时出现“死循环”现象,通常可以通过按 键强制中断程序。

16. 基类的事件集合不能进行扩充,其最小事件集包括init事件、Destroy事件和 事件。

17.下列自定义函数ntoc的功能是将传送过来的阿拉伯数字“0~9”转换为中文的“零~九”。例如,执行命令:?ntoc(5),显示“五”。 Function ntoc

PARAMETERS n LOCAL ch

Ch=”零一二三四五六七八九” Mch=substr(ch, ,2) Return mch Endfunc

18. 在VFP中,指定内存变量的作用域可使用PUBLIC、PRIVATE和 命令。

19. 某表单Form1上有一个命令按钮组Cmd,有两个按钮为Cmd1和 Cmd2,若要实现单击Cmd1时,Cmd2不可用,则其Click事件代码为THIS. .Cmd2.Enabled=.F.。 20.若要为容器对象中的所有控件或某类控件制定一个属性设置,应使用 方法。

21.在表单的LOAD,INIT和CLICK这三个事件中,不能引用表单和表单中的对象的是 事件。

22.在vfp中,每个对象都具有属性以及与之相关的事件和方法,其中 是定义对象的特征或某一方面的行为

23.计时器(Timer)控件是在应用程序中用来处理复发事件的控件。其常用属性 中可以决定事件发生的频率。

24.绑定型控件是指其内容与后台的表、查询、视图或内存变量相关联的控件。当某个控件被绑定到某个字段时,后台相应的字段的值发生了变化,则前台控件的 属性的值也发生变化。

32

25. 循环语句可使得一组语句重复若干次,在DO WHILE循环结构中,必须确保循环体执行有限次后,条件表达值为.F.,或在循环体内有 语句并且在循环过程中能被执行,否则会造成“死循环”。

26. 在Visual FoxPro系统的命令窗口中,输入并执行下列命令后,Visual FoxPro主窗口中显示内容为 。 ? mod(-12,-5)

27. 完善下列程序,计算3+33+333+3333+33333+.......前十项之和。

【程序清单】 CLEAR m=3 n=0 s=0

FOR i=1 TO 10 n= s=s+n ENDFOR ?s

28. 完善下列程序,使屏幕上显示如下的图形。 ********* ******* ***** *** *

【程序清单】 CLEAR

FOR i = 5 TO 1 STEP -1 ??SPACE( )

FOR j =i*2-1 to 1 STEP -1 ?? '*' ENDFOR ? ENDFOR

29. 完善下列程序以显示8~ 1000以内能被8除、且含有数字4所有整数(例如24、40、48等)。

【程序清单】 CLEAR

FOR n=0 TO 1000 s=

IF \ and mod(n,8)=0 ?n ENDIF ENDFOR

33

30. 完善下列程序,使两个程序的功能相同。

【程序清单1】 【程序清单2】 CLEAR CLEAR s=0 s=0 n=1 p=1 FOR i=1 to 1 FOR i=1 to 1

m=1 p=

FOR n=1 to i s=s+p

m=m*n ENDFOR

ENDFOR ?s

s=s+m

ENDFOR

?s

31. 完善下列程序,使程序的运行结果如右图所示。

【程序清单】 CLEAR FOR i=1 TO 9

FOR j=1 TO 9 IF i<=j

??STR(i,1)+\ +SPACE(2) ENDIF ENDFOR ENDFOR

32. 完善下列程序,其功能是统计一个仅由数字组成的字符串中各种数字字符的个数:

【程序清单】 CLEAR

cStr=\ &&字符串初初值 STORE 0 TO n0, n1, n2, n3, n4, n5, n6,n7, n8, n9 &&计数变量 DO WHILE LEN(cStr)>0 c=LEFT(cStr,1) n&c.= cStr = ENDDO

? n0, n1, n2, n3,n4, n5, n6,n7, n8, n9

33. 完善下列程序,是其实现功能为:键盘输入10个数,统计其中最大值。 【程序清单】 K=0

INPUT “请输入第一个数:” TO Y DO WHILE K<=_______

INPUT “请输入下一个数:” TO X IF Y

______________

34

ENDIF K=K+1 ENDDO

?“最大数=”,Y

34. 完善下列程序,其功能是随机产生一个70-80之间的数。

【程序清单】 x=0

DO WHILE .T. X=RAND()*100

IF x>70 AND x<80 ENDIF ENDDO ?x

35.完善下列自定义函数DeleteSpace(),其功能是将一个字符串中的所有空格删除。【程序清单】

FUNCTION DeleteSpace PARAMETERS cStr cResult=SPACE(0)

FOR n=1 TO IF SUBSTR(cStr,n,1)=SPACE(1) ENDIF cResult= cResult+ SUBSTR(cStr,n,1) ENDFOR

RETURN cResult ENDFUNC

36. 完善下列程序,其功能是计算下列表达式1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和。【程序清单】 nResult=0

nMult= FOR n=1 TO 10 nMult=nMult*n nResult= ENDFOR ?nResult

37.完善下列程序,使程序的运行结果如图3所示。 【程序清单】 SET TALK OFF CLEAR X=space(0)

FOR i=1 TO

35

x=x+ALLT(STR(i))

?STR(VAL(x))+\ +\AL(x)*9+i+1)) ENDFOR

38. 完善下列程序,其功能是将任意字符(包括汉字)组成的字符串进行反序显示: 【程序清单】

STORE “天映远山晴入画” TO c,cc p=SPACE(0)

DO WHILE LEN(c)>0 x=ASC(LEFT(c,1)) IF x>127 ELSE

i=1 ENDIF p= +p c=subs(c,i*2-1) ENDFOR

39. 以下程序求表达式之和:

要求计算结果精度小于0.0001(指Sn+1-Sn<0.0001),请完善下列程序:

【程序清单】 CLEAR i=0 sn1=0

DO WHILE .T. i=i+1

sn1=

sn2= sn1+1/((i+1)*(i+2)*(i+3)) IF ABS(sn2-sn1)< 0.0001 ENDIF ENDDO ? sn2

40.下列程序的功能是求100以内的偶数之和及奇数之和。 【程序清单】 P=0 Q=0

FOR N=1 TO 100 IF _____________ P=P+N ELSE

_____________ ENDIF

36

ENDFOR

?“偶数和为”, P ?“奇数和为”, Q

41.完善下列程序,使其计算一个整数的各位数字之和: 【程序清单】 SET TALK OFF

INPUT ”x=” TO x s=0

DO WHILE x!=0 s=s+MOD(x,10) x=INT(__________) ENDDO ?s

SET TALK ON

42.完善下列程序XY.PRG程序后,实现在屏幕上显示如下乘法表:

【程序清单】 SET TALK OFF CLEAR

FOR J=1 TO 9 ? ′( ′+STR(J,2)+′) ′

FOR K=1 TO ?? STR( ,4) ENDFOR ENDFOR

43. 完善下列自定义函数sx(),要求实现的功能是:根据给定的年份,得出该年出生的人的属相;如果没有给定年份,则默认为当前的年份(2005)。例如:执行命令 ?sx(2004),显示“猴”。

【程序清单】 FUNCTION sx

PARAMETERS nYear LOCAL n,csx

Csx=”鸡狗猪鼠牛虎兔龙蛇马羊猴” IF PARAMETERS()=0 nYear=YEAR(DATE())

_____________

n=MOD(YEAR(nYear),12)

37

__________SUBSTR(csx,2*n+1,2)

ENDIF

44.完善下列程序,以实现由dtocc()函数将一个日期型数据转换为形如“XXXX年XX月XX日”的中文日期字符串。

【程序清单】 FUNCTION dtocc

PARAMETERS deDate cYear= +’年’

cMonth= STR(Month(deDate),2) +’月’ cDay= STR(Day(deDate),2) +’日’ RETURN ENDFUNC

45. 完善下列程序,是其可用来求长方形的面积。 【程序清单】 X=3 Y=5

S=AREA(X,Y) ?S

FUNCTION AREA _______ S1=X*Y

RETURN ________

三、读程序题

1.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 CLEAR

STORE 3.14 TO PI r=4

S=PI*r*r ?INT(S)

2.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 CLEAR

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

A3=subs(a1,17,16) A2=\? &A2+A3

3.运行以下程序后,VFP主窗口显示的结果是 。

38

【程序清单】 CLEAR

STORE \奥运会\ TO AA BB=\北京\

A3=subs(AA,5,11) A4=left(AA,4) A2=\

? A4+&A2+A3

4.运行下列程序后,显示的运行结果的第二行为 。 【程序清单】 SET TALK OFF CLEAR

Y=\FOR I=1 TO 8 X=LEFT(Y,I) ?SPAC(20-I*2)+X+\AL(X)*VAL(X))) ENDFOR

5.运行下列代码,屏幕显示的结果是 。 【程序清单】

S=”Visual FoxProfoxpro” S1=”foxpro” ?ATC(S1,S)

6.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 CLEAR x=10 y=4 IF x<0

y=2*x-2 else y=x**2 ENDIF ?y

7.执行下列程序后,屏幕上显示的运行结果为 和 。【程序清单】 CLEAR x=17 y=6

IF INT(x/2)=x/2 y=MOD(x,3) x=x+4 ENDIF

39

IF INT(x/3)=x/3 y=MOD(x,-4) ENDIF ?x,y

8.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 S=0 N=1

Do While N<=5 S=S+N

N=N+1 ENDDO ?S

9.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 SET TALK OFF S= “ABC” N=LEN(S) K=1

DO WHILE K

?SUBSTR(S, K,N-K) K=K+1 ENDDO

SET TALK ON

10.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】

SET collate to “machine” STORE “China” TO c p=space(0)

DO WHILE len(c)>0

IF between(left(c,1),”A”,”Z”) p=p+chr(asc(left(c,1))+4)

ELSE

p=p+chr(asc(left(c,1))+2) ENDIF c=subs(c,2) ENDDO ?p

11.设学生(XS.DBF)表中含有100个记录,运行下列程序后,显示记录个数是 。 【程序清单】 CLEAR USE XS

40

SCAN ?RECNO(),XH,XM SKIP 2 ENDSCAN USE

12.执行下列程序后,屏幕上显示的第三行的内容为 。 【程序清单】 SET TALK OFF CLEAR

Y=\FOR I=1 TO 8 X=substr(Y,I,1) ?SPAC(20-I*2)+X+\AL(X)*VAL(X))) ENDFOR

13.执行下列程序后,屏幕上显示的内容为 、 和 。【程序清单】

SET TALK OFF

DIMENSION ARRAY(6) FOR I=1 TO 6 ARRAY(i)=20-2*I ENDFOR

? ARRAY(2),ARRAY(4),ARRAY(6) SET TALK ON

14.下列程序运行后,X的值为 ,Y的值为 。

【程序清单】 CLEAR x=26 y=0

IF INT(x/2)=x/2 y=MOD(x,3) x=x+4 ENDIF

IF INT(x/3)=x/3 y=MOD(x,-4) ENDIF ?x,y

15.运行下列程序后,显示的运行结果为 。

【程序清单】

? TT(“123E%n w$O 4q*5n6”) FUNCTION TT

PARAMETERS cStr cResult=SPACE(0)

41

FOR n=1 TO LEN(ALLT(cStr)) C=SUBSTR(cStr,n,1)

IF !BETWEEN(C,’A’,’Z’) AND !BETWEEN(C,’a’,’z’) LOOP ENDIF

cResult=cResult+CHR(ASC(C)+1) ENDFOR RETURN cResult ENDFUNC

16.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】

SET TALK OFF

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

DO WHILE N<8 ?SUBS(ch,N,2) N=N+2 ENDDO ?SUBS(ch,5)

??SUBSTR(ch,1,4)

17.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 CLEAR

STORE 5 TO ml,m2 STORE 1 TO m3,m4

DO PA WITH ml,m2,m3,m4 ?m4

PROCEDURE PA

PARAMETER a,b,c,d d=b^2-4*a*c DO CASE CASE d<0 d=100 CASE d=0 d=200 CASE d>0 d=300 ENDCASE RETURN

18.执行下列程序后,屏幕上显示的运行结果为 。 【程序清单】 CLEAR

42

cstring=\ nresult=0

m=LEN(cstring) FOR n=1 to m

c=SUBSTR(cstring,n,1)

IF !BETWEEN(ASC(c),ASC(\ LOOP ENDIF

nresult=nresult+1 ENDFOR

?nresult

19.执行下列程序后,屏幕上显示的运行结果为 和 。【程序清单】

STORE 10 TO M,N DO SUB1 ?M,N

PROCEDURE SUB1 PRIVATE M M=5 N=6

ENDPROC

43

20.执行下列程序后,屏幕上显示的运行结果为 。

****主程序**** CLEAR

PUBLIC x,y,z x=3 y=4 z=5 DO PP ?x+y+z

****过程**** PROCEDURE PP LOCAL x x=5 y=7 z=x+y 1.下列程序的功能是 ENDPROC

四、程序

四、程序改错

1.下列程序的功能是清除字符串中的所有空格,例如输入” abc de f”,输出”abcdef”。 要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

S=\ love China!\Sresult=SPACE(0)

DO WHILE LEN(S)<0 Ch=LEFT(S,1) S=SUBS(S,2)

IF Ch=SPACE(1) Exit ENDIF

Sresult=Sresult+Ch ENDDO ?Sresult

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

2.下列程序用于计算S=1!+2!+3!+4!+5!。要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

S=0

For I=1 to 5 S=S+fjc(i) EndFor ?S

FUNCTION fjc

Parameters x p=0

For n=1 to x

p=p*x EndFor Return p ENDFUNC

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

3.下列程序的功能是:显示10000以内所有回文数的个数及其平均值。所谓回文数是指左右数字完全对称的自然数,例如11、121、1221等都是回文数,要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

STORE 0 TO nCount,nSum FOR n=11 to 10000 C1=STR(n) C2=SPACE(0)

FOR m=1 TO LEN(c1)

C2=SUBSTR(c1,m,1)+c2 ENDFOR IF c1=c2

nCount= nCount+1 nSum=nSum+c1 ENDIF ENDFOR

?”回文个数及其平均值为:”+STR(nCount)+”,”+STR(nSum/nCount) 请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

4.下列程序的功能是:删除字符串(不包括汉字)中的空格,并将它按字符从小到大的顺序排列以后输出.例如,字符串“B C efA”,输出结果为“ABCef\。要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

CLEAR x='B C efA' y=''

x=STRTRAN(x,SPACE(1),SPACE(0)) n=LEN(x)

DIMENSION A(n) FOR i=1 TO n

A(i)=LEFT(x,1) x=SUBSTR(x,i)

ENDFOR

=ASORT(A) &&ASORT()函数的功能是对数组元素进行排序 FOR j=1 TO n y=A(j)+y ENDFOR ?y

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

5.下列程序的功能是:随机出10道100以内整数加减法算术题。如果是加法,则两数的和不得大于100;如果是减法,则被减数不小于减数。。要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

Clear

Ts=1 &&题数计数 Do while ts<=10

Czf=iif(rand()>0.5, ”+”, ”-”) &&rand()函数的功能是返回一个0~1之间的随机数 Num1=rand()*100 Num2=rand()*100 If czf=”+”

If num1+num2>100 Loop Endif Else

If num1

? ”(”+str(ts,2)+ ”) ”+str(num1,3)+czf+str(num2,2)+ ”=” ts=ts+1 endif

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

6.下列程序的功能是将一个字符串中的各个单词的首字母组成其缩写形式(大写字母),其

中字符串由多个英文单词组成,且各单词之间用一个空格分隔。其基本算法是:从字符串中的单词取其第一个字母,然后去掉该单词,如此重复直到字符串长度为0.例如,对于字符串“central prodessing unit”,生成其缩写形式“CPU”。要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 cString='central processing unit' cString=alltrim(upper(cString)) cResult=SPACE(1) IF LEN(cResult)#0

DO WHILE LEN(cString)>0

cResult=cResult+LEFT(cString) n=AT(SPACE(1),cString)

cString=ALLTRIM(SUBSTR(cString,n)) END ENDIF

? \新缩写形式为\ 请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

7.下列程序的功能是找出1000之内所有的完数,并统计它们的个数。完数是指:数的各因子之和正好等于该数本身(例如6的因子是1、2、3,而1+2+3=6,所以6是完数)。要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 CLEAR nCount=0

FOR n1=1 TO 1000 m=0

FOR n2=1 TO n1-1 IF n1/n2=MOD(n1,n2) m=m+n2 ENDIF ENDIF IF n1=m ?n1

nCount=nCount+1 ENDIF ENDFOR

?\完整的个数为\(nCount) 请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

8.下列程序是将一个由多个ASCII字符组成的字符串,根据各个字母的ASCII码值,由小

到大的进行字符排序。其基本算法是:从字符串中取第一个字符作为结果字符串的初值,然后从字符串中依次取1个字符,并在结果字符串中找到其位置并插入,例如,将字符串“ACC264DFB”排序为“246ABCCDF”。要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 CLEAR

cString='ACC264DFB' cResult=LEFT(cString,1) FOR m=2 TO LEN(cString) ch=SUBSTR(cString,m,1) FOR n=1 TO LEN(cResult)

IF ASC(ch)>ASC(SUBS(cResult,n,1)) EXIT

ENDIF ENDDO

cResult=SUBS(cResult,1,n-1)+ch+SUBS(cResult,n) ENDFOR

?\字母的排序为:\请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

9.下列程序用于。要求:

① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 cString='111100000111111111000111110000' cResult=LEFT(cString,1) nCount=1

FOR n=2 TO cString

IF SUBSTR(cString,n,1)=SUBSTR(cString,n-1,1) nCount=nCount+1 ELSE

cResult=cResult+allt(STR(nCount))+\ nCount=ncount+1 ENDIF ENDFOR

cResult=cResult+Allt(STR(nCount)) ?\压缩后为:\

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

10.下列程序的功能是对于数列1,1,2,3,5,8,…(从第3项开始,每一数列项的值为

前2项之和),求前多少项的和刚好不大于100要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 a1=1 a2=2

nSum=a1+a2 nCount=2

DO WHILE nSum<100 x=a1 a1=a2 a2=x+a1

nSum=nSum+a1 nCount=nCount+1

ENDDO

nCount=nCount+1

? \前\项的和刚好不大于100\请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

11.下列程序的功能是将一个英文字符串中的相同字符调整到一起。例如,对于字符串

“ASDSYDA”显示“AASSDDY”。要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 cString=\cResult=SPACE(0)

FOR n=1 TO LEN(cString) c=SUBSTR(cString,n,1) m=AT(c,cResult) IF n=0

cResult=cResult+c ELSE

cResult=SUBSTR(cResult,1,m)+c+SUBSTR(cResult,m) ENDIF ENDFOR

? \字符串处理后结果为\

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

12.下列程序的功能是对英文字符串进行加密处理。加密算法是:将字符串中的第2、4、6、

8(偶数位)个字符换成其“对称”字符(a与z对称,A与Z对称,b与y对称,B与Y对称等等)。例如,字符串“ACbDez”加密后变成“AXbWea”要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 cString=\cResult=SPACE(0)

FOR n=1 TO LEN(cString) IF mod(n,2)=0

cResult=cResult+SUBSTR(cString,n,1) ELSE

c=SUBSTR(cString,n)

IF ISUPPER(c) &&ISUPPER()函数的功能是判断一字符串是否为大写 cResult=cResult+CHR(25-(ASC(c)-ASC(\ ELSE

cResult=cResult+CHR(25-(ASC(c)-ASC(\ ENDIF ENDIF

ENDFOR

? \字符串加密后结果为\

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

13.下列程序的功能是显示10~80之间的所有具有ab*cd=ba*dc(a!=b,c!=d)特性的数。例如,

12*42=21*24,12*63=21*36等等。要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 nCount=0

FOR m=10 TO 80 FOR n=m TO 80

a=LEFT(ALLT(STR(m)),1) b=RIGHT(ALLT(STR(m)),1) c=LEFT(ALLT(STR(n)),1) d=RIGHT(ALLT(STR(n)),1)

IF n*m=VAL(ba)*VAL(dc) AND a#b AND c#d nCount=nCount+1

?\第\组数\

ENDIF ENDIFOR

ENDFOR

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

14.下列程序的功能是统计所有的“水仙花数”的个数(“水仙花数”是指一个三位数,其各位

数字立方和等于该数本身,例如153=13+53+33)。要求: ① 对其中的两条错误语句进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 nCount=1

FOR n=100 TO 999

n1=VAL(SUBS(STR(n,3),3,1)) n2=VAL(SUBS(STR(n,3),2,1)) n3=VAL(SUBS(STR(n,3),1,1)) IF n=n1^3+n2^3+n3^3 nCount=nCount+1 ENDIF ENDFOR

?\水仙花数\

请将改正后的程序语句写在横线上

(1)___________________________________ (2)___________________________________

本文来源:https://www.bwwdw.com/article/293p.html

Top