Visual FoxPro按章节题库

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

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

Visual FoxPro程序设计

第1章 Visual FoxPro 基础 .............................................................................................. 2 第2章 Visual FoxPro的数据操作 ................................................................................... 6 第3章 关系数据库标准语言-SQL................................................................................ 16 第4章 结构化程序设计基础 .......................................................................................... 33 第5章 视图和查询 ........................................................................................................ 42 第6章 面向对象的可视化程序设计 ............................................................................... 48 第7章 应用程序开发................................................................................................... 60

1

第1章 Visual FoxPro 基础

一、单项选择题

1. 中文Visual FoxPro 6.0版本,是可视化语言集成包_______中的一员。

A)Visual Studio 6.0 B) FoxPro系列产品 C)Office 2000家族 D) Windows系列产品

2.Visual FoxPro 6.0提供了_______,帮助用户管理项目开发中的数据、文档、源代码和类库等。

A)菜单生成器 B)项目管理器 C)数据库设计器 D)查询设计器 3.安装Visual FoxPro 6.0有_______两种途径。

A)从光盘安装和从网络上安装 B)从光盘安装和从软盘上安装

C)从光盘安装和从硬盘上安装 D)从软盘上安装和从硬盘上安装 4. 退出Visual Foxpro的操作方法是________。

A. 从“文件”菜单中选择“退出”选项

B. 用鼠标左键单击关闭窗口按钮。

C. 在命令窗口中键入QUIT命令,然后回车

D. 以上方法都可以

5. 显示和隐藏命令窗口的操作是_________。

A. 单击“常用”工具栏上的“命令窗口”按钮

B. 通过“窗口”菜单下的“命令窗口”选项来切换 C. 直接按Ctrl+F2或Ctrl+F4组合键

D. 以上方法都可以

6. 下面关于工具栏的叙述,错误的是_________。

A. 可以创建用户自己的工具栏 B. 可以修改系统提供的工具栏 C. 可以删除用户创建的工具栏 D. 可以删除系统提供的工具栏 7. 在“选项”对话框的“文件位置”选项卡用于显示和管理________。

A. 表单的默认大小 B. 默认目录 C. 日期和时间的显示格式 D. 程序代码的颜色

8. “项目管理器”的“数据”选项卡用于显示和管理_________。

A. 数据库、自由表和查询 B. 数据库、视图和查询 C. 数据库、自由表、查询和视图 D. 数据库、表单和查询 9.“项目管理器”的“文档”选项卡用于显示和管理_________。

A. 表单、报表和查询 B. 数据库、表单和报表 C. 查询、报表和视图 D. 表单、报表和标签

10. 要启动Visual Foxpro的向导可以__________。

A. 打开新建对话框 B. 单击工具栏上的“向导”图表按钮

C. 从“工具”菜单中选择“向导” D. 以上方法都可以 11.在下述Visual FoxPro表达式中,结果总是逻辑值的为( )。

A. 字符运算表达式 B. 算术运算表达式

C. 关系运算表达式 D.日期运算表达式

12.表达式LEN(‘CHINESE’)+VAL(‘86’)+({04/05/98}-{04/01/98})返回的数据类型是( )。

A. 字符型 B. 日期型 C. 数值型 D. 逻辑型

2

13.所有运算符中优先级最高的是( )。

A. ** B.() C. = D. .AND. 14.下列选项语法正确的是( )。 A. ? \现在是:\?\今天是:\C. ? \当前时间是:\15.Visual FoxPro的表达式LEN(DTOC(DATE()))+DATE()的类型是( )

A. 数值型 B. 逻辑型 C. 字符型 D. 日期型 16. a=5*2 b=[a/2]

c=\

下面表达式正确的是( )。

A. STR(a)+b+c B. a+b+c

C. STR(a)+b+DTOC(c) D. STR(a,2)+VAL(b)+c 17.执行?AT(“教室”,“自习教室”)命令后显示结果为 ( )。 A .T B.2 C.3 D.5

18.下列4个表达式中,运算结果为数值的是 ( )。

A.30 + 23 =58 B.“3344”-“1122”

C.CTOD([04/01/02])-10 D.LEN(SPACE(3))-1

19.已知某人生日是1969年4月28日,则其现在的确切年龄是( )。

A.INT((DATE()-CTOD(\

B.VAL(SUBSTR(DTOC(DATE()),7,2))-69

C.INT((DATE()-\

D.VAL(DATE()-CTOD(\

20.下列表达式中结果为“计算机等级考试”的表达式为( )。

A.“计算机”|“等级考试” B.“计算机”&“等级考试” C.“计算机”and“等级考试” D.“计算机”+“等级考试”

21.在下面的Visual FoxPro表达式中,运算结果是逻辑真的是______。 A、EMPTY(.NULL.) B、LIKE('acd','ac?') C、AT('a','123abc') D、EMPTY(SPACE(2)) 22.设D=5>6,命令?VARTYPE(D)的输出值是______。

A、L B、C C、N D、D 23.设有变量sr=\年上半年全国计算机等级考试\,能够显示\年上半年计算机

等级考试\的命令是______。

A、? sr\全国\、? SUBSTR(sr,1,8)+SUBSTR(sr,11,17) C、? STR(sr,1,12)+STR(sr,17,14) D、? SUBSTR(sr,1,12)+SUBSTR(sr,17,14) 24.STR(109.87,7,3)的值是______。

A、109.87 B、\、109.870 D、\25.{^1999/05/01}+31的值应为______。

A、{99/06/01} B、{99/05/31} C、{99/06/02} D、{99/04/02} 26.要清除当前所有其名字的第2个字符为\的内存变量,应该使用命令______ 。

A、RELEASE ALL *X B、RELEASE ALL LIKE X C、RELEASE ALL LIKE ?X D、RELEASE ALL LIKE \27.下面关于Visual FoxPro数组的叙述中,错误的是____。

A、用DIMENSION和DECLARE都可以定义数组

3

B、Visual FoxPro只支持一维数组和二维数组

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

28.设N=886,M=345,K='M+N',表达式1+&K的值是______。

A、1232 B、数据类型不匹配 C、1+M+N D、346

29.命令\执行后,array(3,3)的值为______。 A、0 B、1 C、.T. D、.F. 30.在下列函数中,函数返回值为数值的是______。

A、BOF() B、CTOD('01/01/96')

C、AT('人民','中华人民共和国') D、SUBSTR(DTOC(DATE()),7) 31.表达式VAL(SUBS(\奔腾586\的结果是______。 A、13.00 B、14.00 C、45.00 D、65.00 32.设X=\,Y=\,则下列表达式中值为.T.的是______。 A、X=Y B、X==Y C、X$Y D、AT(X,Y)=0

二、填空题

1. 当在Visual Foxpro中,打开不同的文件时,系统自动调用相应的___________来打

开它们。

2. 安装完Visual Foxpro之后,系统自动用一些默认值来设置环境,要定制自己的系统环境,应单击_________菜单下的_________菜单项。

3. 打开“选项”对话框之后,要设置日期和时间的显示格式,应当选择“选项”对话框中的_________选项卡。

4. 要把帮助文件设置为复制到硬盘上的Foxhelp.chm文件,需要在“选项”对话框的

__________选项卡上设置。

5. 项目管理器文件的扩展名是__________。

6. 扩展名为.prg的程序文件在“项目管理器”的_________选项卡中显示和管理。 7. 项目管理器的“移去”按钮有两个功能:一是把文件_________________ ,二是____________________文件。

8. 算术运算的结果是_________型数据;关系运算的结果是_________型数据;逻辑运

算的结果是_________型数据。 9. 达式VAL(SUBSTR(\TE())),2))+15的值是_______。

(系统日期为04/01/2002) 10. 11.

数组大小由下标值的________决定,下限规定为________。

a=5,b=\,则? type(b)输出结果为______,而? type(\输出结果为

_______。 12. AT(\。 13.

TIME()的返回值的数据类型是______类型。

14. 设工资=1200,职称=\教授\,下列逻辑表达式的值是_____。

工资>1000 AND (职称=\教授\职称=\副教授\15.

下列命令执行后的结果是______。

STORE -100 TO X

?SIGN(X)*SQRT(ABS(X)) 16. ASC()的返回值的数据类型是______类型。 17. 表达式VAL(SUBS(\奔腾586\的结果是______。

4

答案及解析

一、单项选择题

1.A 解析:可视化语言集成包Visual Studio 6.0包含着中文Visual FoxPro 6.0、Visual C++ 6.0、Visual Basic 6.0等多个软件。

2.B 解析:“项目管理器”提供简易、可见的方式,组织处理表、表单、数据库、报表、查询和其他文件,用于管理表和数据库或创建应用程序。

3.A

4.D 解析:选项A、B、C都是退出Visual FoxPro的正确的方法。

5.D 解析:用户可以通过按组合键Ctrl+F2显示命令窗口或按组合键Ctrl+F4隐藏命令窗口。

6.D 解析:选项D是错误的,用户不可以删除系统提供的工具栏,只可以删除自己创建的工具栏。

7.B 解析:在“文件位置”选项卡可以更改文件保存的默认位置,在“表单”选项卡的“最大设计区”下拉列表框种选择尺寸来更改表单的默认大小,在“区域”选项卡可以设置日期和时间的显示格式,在“语法着色”选项卡更改程序代码的颜色。

8. A 9. D 10. D

11.C 解析:关系表达式和逻辑表达式的结果为逻辑值

12.C 解析:LEN函数值为数值型,VAL为数值型,两个日期相减得到一个整数 13.B

14.B 解析:是字符和时间日期型相加,类型不匹配,C中TIME()函数值类型为字符型,不能用DTOC()函数转换,D中YEAR()函数的参数应为日期型 15.D 解析:LEN()函数值为整数和日期相加得到一个新的日期 16.A 解析:变量b,c都是字符型,只有答案A是三个字符串相加 17.D 解析:一个汉字相当于两个字符 18.D 解析:答案A是逻辑型,B是字符型, C是日期型 19.A

20.D 解析:字符运算符是“+”

21.D 解析:注意Empty()函数和Isnull()函数的区别

22.A 解析:变量D的值是.F.是逻辑型,变量D的类型就是L

23.D 解析:取子串的函数是SUBSTR(),另外汉字相当于两个字符

24.C 解析:字符串的长度是7,三位小数,所以转换以后是109.870字符型 25.A 解析:得到过31天后的日期

26.C 解析:通配符?表示1个字符,?X表示变量的第二个字符是X 27.C 解析:数组中的各个元素的值的类型可以相同,也可以不同 28.A 解析:&K就是M+N,所以1+&K就等于1232 29.D 解析:定义数组后,如果不赋值,元素的值默认为.F. 30.C 解析:C的函数值是串1在串2中的位置 31.D 解析:5*13的值是65

32.C 解析:答案A、B、D的结果都是.F. 二、填空题

1.菜单 2.工具 选项 3.区域 4.文件位置 5..pjx

5

解析:当新建了一个项目后,会在保存该项目的文件夹中创建一个 ***.pjx 的项目文件,同时还会在同一个文件夹下创建一个同名字的***.PJT的项目备注文件。 6.代码

7.从项目中移去文件 从磁盘上删除文件

解析:选择要“移去”的文件,如果从“项目”菜单中选择“移去文件”命令或者单击“移去”按钮,在打开的移去提示框中,若单击“移去”按钮,则系统仅仅从项目中移去所选择的文件,被移去的文件应保存在原目录中;若单击“删除”按钮,系统不仅从项目中移去文件,还将从磁盘中删除该文件,文件将不复存在。

8. 数值 逻辑 逻辑 9. 9921.00 10. 上下限 1 11. L C 12. .F. 13.字符型 可用函数VARTYPE(TIME())来测试 14..T. 15.-10 16.数值型 求ASCII码值 17.38.00

第2章 Visual FoxPro的数据操作

一、单项选择题

1、下列有关数据库的描述,正确的是__________。

A)数据库是一个DBF文件 B)数据库是一个关系 C)数据库是一个结构化的数据集合 D)数据库是一组文件 2、可以随表的打开而自动打开的索引是__________。

A)单项索引文件 B)复合索引文件

C)结构化复合索引文件 D)非结构化复合索引文件 3、“主键”不允许取重复值,是指__________。

A)实体完整性约束规则 B)引用完整性约束规则 C)用户自定义完整性约束规则 D)数据完整性约束规则 4、在当前表中,查找第2个男同学的记录,应使用命令__________。

A)LOCATE FOR 性别=\男\ B)LOCATE FOR 性别=\男\NEXT 2 C)LOCATE FOR 性别=\男\ D)LIST FOR 性别=\男\CONTINUE NEXT 2 5、下列关于索引的叙述中,不正确的是__________。

A)Visual FoxPro支持两种索引文件:单一索引文件和复合索引文件 B)打开和关闭索引文件均使用SET INDEX TO命令 C)索引的类型有主索引、候选索引、惟一索引和普通索引 D)索引文件不随库文件的关闭而关闭

6、自由表中字段名长度的最大值是__________。

A)8 B)10 C)128 D)255

7、要同时打开多个数据表文件,选择不同的工作区可使用的命令是__________。 A)USE B)OPEN C)SELECT D)以上命令均可 8、在Visual FoxPro中,字段的数据类型不可以指定为__________。

A)日期型 B)时间型 C)通用型 D)备注型

9、 用命令\ON 姓名TAG index_name UNIQUE\建立索引,其索引类型是__________。

A)主索引 B)候选索引 C)普通索引 D)惟一索引 10、以下关于主索引和候选索引的叙述正确的是__________。

6

A)主索引和候选索引都能保证表记录的惟一性

B)主索引和候选索引都可以建立在数据库表和自由表上 C)主索引可以保证表记录的惟一性,而候选索引不能 D)主索引和候选索引是相同的概念

11、数据库表的字段可以定义默认值,默认值是__________。

A)逻辑表达式 B)字符表达式 C)数值表达式 D)前三种都可能 12、数据库表的字段可以定义规则,规则是__________。

A)逻辑表达式 B)字符表达式 C)数值表达式 D)前三种说法都不对 13、使数据库表变为自由表的命令是__________。

A)DROP TABLE B)REMOVE TABLE C)FREE TABLE D)RELEASE TABLE

14、有A、B、C三个数据表,若已建立了A->B的关联,需要再建立B->C的关联,形成A->B->C

的关联,则 __________。

A)必须使用带ADDITIVE子句的SET RELATION命令 B)直接利用SET RELATION命令进行关联

C)在保持A->B关联的基础上不能再建立B->C关联

D)在保持A->B关联的基础上不能在建立的B->C关联,但可以建立A->C关联

15、在Visual FoxPro中设置参照完整性时,要设置成:当更改父表中的主关键字段或候选关

键字段时,自动更新相关子表中的对应值,应在“更新规则”选项卡中选择__________。 A)忽略 B)限制 C)级联 D)忽略或限制 16、下列关于自由表的说法中,正确的是__________。

A)可以为表中的字段指定标题和添加注释 B)可以指定表中字段的默认值和输入掩码 C)只能建立候选索引、惟一索引和普通索引 D)支持主关键字、参照完整性和表之间的联系

17、在Visual FoxPro中,以共享方式打开数据库文件的命令短语是__________。

A)EXCLUSIVE B)SHARED C)NOUPDATE D)VALIDATE

18、下列索引中,不具有“惟一性”的是__________。

A)主索引 B)候选索引 C)惟一索引 D)普通索引

19、如要设定学生年龄有效性规则在18至20岁之间,当输入的数值不在此范围内,则给出错

误信息,我们必须定义__________。

A)实体完整性 B)域完整性 C)参照完整性 D)以上各项都需要定义 20、命令SELECT 0的功能是__________。

A)选择编号最小的空闲工作区 B)选择编号最大的空闲工作区 C)随机选择一个工作区的区号 D)无此工作区,命令错误 21、下列关于自由表的说法中,错误的是__________。

A)在没有打开数据库的情况下所建立的数据表,就是自由表 B)自由表不属于任何一个数据库 C)自由表不能转换为数据库表

D)数据库表可以转换为自由表

22、在Visual FoxPro中,可以同时打开表文件的个数最多是__________。

A)16 B)32 767 C)255 D)256

23、要将数据库“考生库”文件及其所包含的数据库表文件直接物理删除,下列命令正确的是

__________。

7

A)DELETE DATABASE 考生库

B)DELETE DATABASE 考生库 RECYCLE C)DELETE DATABASE 考生库 DELETETABLES D)DELETE DATABASE 考生库 DELETETABLES RECYCLE

24、在Visual FoxPro中,下列各项的数据类型所占字符的字节数相等的是__________。 A)日期型和逻辑型 B)日期型和通用型 C)逻辑型和备注型 D)备注型和通用型 25、在Visual FoxPro中,下列不能用来修改数据表记录的命令是__________。

A)EDIT B)CHANGE C)BROWSE D)MODIFY STRUCTURE 26、在Visual FoxPro中,数据的完整性不包括__________。

A)实体完整性 B)域完整性 C)属性完整性 D)参照完整性

27、在Visual FoxPro中,在命令窗口输入CREATE DATABASE命令,系统产生的结果是_____。

A)系统会弹出“打开”对话框,请用户选择数据库名 B)系统会弹出“创建”对话框,请用户输入数据库名并保存

C)系统会弹出“保存”对话框,请用户输入数据库名并保存

D)出错信息

28、在Visual FoxPro中,数据库文件和数据表文件的扩展名分别是__________。

A).DBF和.DCT B).DBC和.DCT C).DBC和.DCX D).DBC和.DBF 29、建立一个表文件,表中包含字段:姓名(C,6)、出生日期(D)和婚否(L),则该表

中每条记录所占的字节宽度为__________。 A)15 B)16 C)17 D)18 30、在Visual FoxPro中,可以对字段设置默认值的表是 __________。

A)自由表 B)数据库表 C)自由表或数据库表 D)都不能设置 31、数据库表的索引类型共有__________。

A)1种 B)2种 C)3种 D)4种 32、利用SET RELATION命令可以建立两个表之间的关联,该关联是__________。 A)永久性联系 B)临时性联系 C)任意的联系 D)以上说法均不正确 33、假设表中共有10条记录,执行下列命令后,屏幕所显示的记录号顺序__________。 USE ABC.dbf GOTO 6

LIST NEXT 5

A)1~5 B)1~6 C)5~10 D)6~10 34、惟一索引的“惟一性”是指__________。

A)字段值的“惟一” B)表达式的“惟一” C)索引项的“惟一” D)列属性的“惟一” 35、下列字段名中,合法的是__________。

A)_学生姓名 B)学生□姓名 C)学生_姓名 D)学生.姓名 36、在Visual FoxPro中,参照完整性规则不包括__________。

A)更新规则 B)删除规则 C)插入规则 D)约束规则 37、在Visual FoxPro中,以独占方式打开数据库文件的命令短语是__________。

A)EXCLUSIVE B)SHARED C)NOUPDATE D)VALIDATE 38、在没有打开索引的情况下,以下各组中的两条命令,执行结果相同的是__________。 A)LOCATE FOR RECNO( )=2 与 SKIP 2 B)GO RECNO( )+2与 SKIP 2 C)SKIP RECNO( )+2 与 GO RECNO( )+2 D)GO RECNO( )+2 与 LIST NEXT 2 39、建立惟一索引后,只允许重复出现记录值的__________。

A)第一个 B)最后一个 C)全部 D)字段值不惟一,不能存储

8

40、NULL是指__________。

A)0 B)空格 C)未知的值或无任何值 D)空字符串 41、在Visual FoxPro中,字段的宽度不是由系统自动给出的字段类型是__________。

A)数值型 B)备注型 C)逻辑型 D)日期型 42、在当前表查找少数民族学生的学生记录,执行“LOCATE FOR 民族!=\汉\命令后,应

紧接短语__________。

A)NEXT B)LOOP C)SKIP D)CONTINUE 43、下列命令中,功能相同的是__________。

A)DELETE ALL 和 PACK B)DELETE ALL、ZAP 和 PACK

C)DELETE ALL、PACK 和ZAP D)DELETE ALL 和 RECALL ALL 44、在Visual FoxPro中,一个表可以建立一个__________。

A)主索引 B)候选索引 C)惟一索引 D)普通索引

45、将学生表按籍贯字段升序排列,如果籍贯(C,10)相等,则按学号(N,4)升序排列,

下列语句正确的是__________。

A)INDEX ON 籍贯,学号 TO JGXH B)INDEX ON 籍贯+学号TO JGXH

C)INDEX ON 籍贯,STR(学号,4)TO JGXH D)INDEX ON 籍贯+STR(学号,4)TO JGXH

46、Visual FoxPro中,通过命令方式新建一数据库文件,新建的数据库文件__________。

A)可属于任何一个项目 B)属于当前打开的项目 C)不属于任何项目 D)以上说话均不正确 47、在Visual FoxPro的主窗口中显示当前表记录的命令是__________。

A)CHANGE B)USE C)LIST D)MODIFY 48、INDEX命令无法建立的索引是__________。

A)主索引 B)候选索引 C)惟一索引 D)普通索引

49、在一个Visual FoxPro数据表文件中有2个通用字段和3个备注字段,该数据表的备注文件

数目是__________。 A)1 B)2 C)3 D)5

50、在Visual FoxPro的浏览窗口中,将某字段的显示宽度增加一倍后,该字段的实际宽度将

__________。 A)增加一倍 B)减少一半 C)不变 D)无法确定 51、下列命令中,可以打开数据库设计器的是__________。

A)CREATE DATABASE B)MODIFY DATABASE C)OPEN DATABASE D)USE DATABASE 52、通过关键字建立临时关联时,要求__________。 A)父表必须建立索引并打开

B)子表必须建立索引并打开

C)父表和子表必须同时建立索引,并在不同的工作区打开 D)两表无需建立索引,有相同字段即可

53、多表操作中,分别在1,3,5号工作区中打开数据表,此时若执行命令SELECT 0后,当

前的工作区号是__________。 A)0号 B)1号 C)2号 D)无工作区打开 54、要为当前表中所有学生的总分加5,应该使用的命令是__________。

A)CHANGE 总分 WITH 总分+5 B)REPLACE 总分 WITH 总分+5

9

C)CHANGE ALL 总分 WITH 总分+5 D)REPLACE ALL 总分 WITH 总分+5 55、数据表中“婚否”字段是逻辑型字段,要显示所有未婚记录,应使用命令__________。

A)LIST FOR 婚否=F B)LIST FOR 婚否<>T C)LIST FOR 婚否 D)LIST FOR NOT婚否

56、如果希望用户在输入“年龄”字段值时,要求数值必须大于0,应在下列哪项中设置

__________。

A)字段类型 B)信息 C)规则 D)默认值 57、在“数据工作期”窗口中,“一对多”按钮的作用是__________。

A)一个表与多个表建立关联

B)父表中的一条记录与子表中的多条记录建立关联 C)父表中的一条记录与子表中的一条记录建立关联 D)多个表与当前表建立关联

58、要控制两个表中数据的完整性和一致性,可以设置参照完整性,要求这两个表_______。

A)是同一个数据库中的两个表 B)是不同数据库中的两个表 C)是两个自由表 D)一个数据库表,另一个是自由表 59、不论索引是否生效,定位到相同记录上的命令是__________。

A)GO TOP B)GO BOTTOM C)SKIP D)GO 5

60、数据表当前记录的“基本工资”字段值为500,执行以下命令:__________。

REPLACE 基本工资 WITH 基本工资*1.2 当前记录的基本工资字段值为

A)1.2 B)500 C)600 D)语法错误 二、填空题 1、 如果在第一个工作区中打开一个数据表文件,然后在另一个工作区上再次打开该数据表

文件,且不关闭前一个工作区上打开的,必须加短语 。 2、 在Visual FoxPro的字段类型中,系统默认的日期型数据占 个字节,逻辑型字

段占 个字节。 3、 在Visual FoxPro中,为了建立参照完整性,首先必须建立表之间的 。

4、 使用数据库设计器为两个表建立联系,首先应在父表中建立 索引,在子表中

建立 索引。 5、 要修改指定的数据表结构,首先应该打开该数据表,然后利用 命令进入表设计器修改数据表结构。 6、 在Visual FoxPro中,物理删除当前表中所有记录,可使用命令 。

7、 在Visual FoxPro中,数据表中备注型字段所保存的数据信息存储在以 为扩展名的文件中。

8、 在Visual FoxPro中,利用DELETE命令可以 删除数据表的记录,必要时可以利用 命令进行恢复。

9、 在Visual FoxPro中,索引分为 、 、惟一索引和普通索引。 10、将当前表中所有的学生年龄加1,可使用命令: 年龄 WITH 年龄+1 11、使用命令在结构复合索引添加一个对“姓名”字段的索引项,索引名为“xm”。请将语句填

写完整。 INDEX 姓名 xm 12、将工资表中总金额字段的默认值设置为0.00,这属于定义数据 完整性。 13、自由表与数据库表相比较,在自由表中不能设置 索引。

14、保证表中记录惟一的特性,即在表中不允许有重复的记录,是为了保证数据 的

10

完整性。

15、在VF中,SKIP命令是按 顺序定位,如果使用索引时,则是按 顺序定位。 16、为表建立索引,其基本特点是可以提高 速度。 17、参照完整性规则包括更新规则、 和 。

18、在2号工作区打开数据表xs.dbf,并设置别名为student,应输入的命令是: USE xs.dbf 2 student

19、按照主文件名不同,复合索引文件可以分为 和 。 20、由关系数据库系统支持的完整性约束是指 和参照完整性。

21、在Visual FoxPro中,索引文件的扩展名有两类,即 和 。 22、在Visual FoxPro中,对于只取两种值的数据,一般使用 字段。

23、设置字段有效性规则在表设计器的 选项卡中进行。而设置记录有效性规则,

是在表设计器的 选项卡中进行。

24、在没有打开索引的情况下,如果当前记录指针指向20号记录,执行命令SKIP-4后,记录

指针指向第 记录。 25、在用SELECT选择工作区时,命令选项可以是别名,也可以是 ,被选定的工作区称为 。 26、当删除父表中的记录时,若子表中的所有相关记录也能自动删除,则相应的参照完整

性的删除规则为 。

27、在表文件文件尾部增加一条空记录,应该使用命令 。

28、设当前表中姓名字段为字符型,要把内存变量NAME 字符串的内容输入到当前记录的

姓名字段,应当使用命令 。 29、设当前库中共有8条记录,当前记录号是5。当执行APPEND BLANK 命令增加一条空

记录后,该空记录的记录号是 。

30、设当前库中共有8条记录,当前记录号是5。当执行INSERT BLANK 命令增加一条空记

录后,该空记录的记录号是 。

答案及解析

一、单项选择题

1、 C 解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放

于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。 2、 C 解析:结构化复合索引文件是Visual FoxPro数据库中最普通的,也是最重要的一种

索引文件,它会随着表的打开而自动打开。 3、 A 解析:实体完整性是保证表中记录惟一的特性,即在一个表中不允许有重复的记录。

在Visual FoxPro中利用主关键字或候选关键字来保证表中的记录惟一。 4、 B 解析: LOCATE FOR是指查找到第1条满足要求的记录,然后使用CONTINUE继

续查找下1条满足要求的记录。选项B)是查找所有满足要求的记录。选项A),D)命

令格式错误。

5、 D 解析:索引文件是数据库的一部分,会随着数据库的关闭而关闭。

6、 B解析:在自由表中不可使用长字段名,字段名的最大值是10;数据库表中可以使用长字段名,最大值为128。

7、 C 解析:在Visual FoxPro中,如果要在同一时刻打开多个表,只需要利用SELECT命令选择不同的工作区并打开不同的表即可。最小的工作区号是1,最大的是32 767,即可以同时打开32 767个表。

8、 B 解析:Visual FoxPro中所支持的数据类型有字符型、货币型、浮点型、数值型、日期

11

型、日期时间型、双精度型、整型、逻辑型、备注型、通用型、字符型(二进制)、备注型(二进制)。没有单独的时间型数据,只能是日期时间型数据。

9、 D 解析:利用INDEX命令可以为数据表建立候选索引、惟一索引和普通索引,其基本

格式为:INDEX ON eExpression TO IDXFileName|TAG TagName[OF CDXFileName]。其中eExpression给出索引表达式,IDXFileName或TagName指定索引名。如果加

UNIQUE短语指明建立惟一索引,CANDIDATE短语指明建立候选索引,如不加短语则为一个普通索引。

10、A 解析:主索引和候选索引都要求了字段值的惟一,不允许出现重复的记录。但由于

主索引中不允许出现重复值,一个表只能有一个主关键字,因此一个表只能建立一个主

索引,建立候选索引的字段可以看做是候选关键字,它也要求的字段值的唯一性,但可以建立多个。

11、D 解析:在Visual FoxPro数据库表中,建立字段有效性规则时,要注意“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则由字段的类型决定。

12、A 解析:在Visual FoxPro数据库表中,建立字段有效性规时,要注意“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则由字段的类型决定。

13、B 解析:将数据库表从数据库中移出成为自由表的命令是:REMOVE TABLE<数据库表名>,该命令有[DELETE]和[RECYCLE]两个命令短语,如果加短语则表示删除数据库表。

14、A解析:使用SET RELATION命令时,若选用了ADDITIVE短语,则允许在保留已建

立关联的基础上建立另一个关联。若缺省此项,则在建立新的关联时,自动取消已经建

立的关联。

15、C 解析:更新规则包括“级联”、“限制”和“忽略”3个选项,其中“级联”是指用新的关键

字值更新子表中的所有相关记录。

16、C解析:本题中选项A),B),D)都是数据库表的特点,在自由表中无法实现这些功能,

且只能建立候选索引、惟一索引和普通索引3种索引类型。 17、B 解析:在打开数据库时,EXCLUSIVE短语是以独占方式打开;SHARED短语是以

共享方式打开;NOUPDATE短语是以只读方式打开;VALIDATE短语用以指定Visual FoxPro检查在数据库中应用的对象是否合法。

18、D 解析:Visual FoxPro中包括4种索引:主索引、候选索引、惟一索引和普通索引。主

索引和候选索引都要求了字段值的惟一,不允许出现重复记录,在惟一索引中,它的“惟

一性”是指索引项的惟一,而不是字段值的惟一。普通索引只用来处理记录的物理顺序,不仅允许字段中出现重复值,并且允许索引项中也出现重复值。

19、B 解析:定义域完整性,可以通过指定不同的宽度说明不同范围数值的数据类型,从

而可以限定字段的取值类型和取值范围。包括“规则”、“信息”和“默认值”3个项的定义。 20、A 解析:在Visual FoxPro中,利用SELECT命令可以选择不同的工作区。最小的工作区号是1,最大的是32 767。若编号指定为0,则选择编号最小的可用工作区,即尚未使用

的工作区。

21、C 解析:所谓的自由表就是不属于任何数据库的表,在没有打开数据库的情况下所建

立的数据库表就是一个自由表,自由表和数据库表之间是可以相互转换的。 22、B 解析:在Visual FoxPro中,最小的工作区号是1,最大的工作区号32 767,且在每个

工作区上只允许打开1个表文件,所以同时最多可以打开32 767个表文件。 23、C 解析:DELETE DATABASE命令只是用来删除指定的数据库文件,RECYCLE短语是

将数据库文件删除,放到Windows的回收站中,必要时还可以恢复。如果要将库中的表文件也一起删除到回收站中,必须使用DELETETABLES短语,此短语如不和RECYCLE

12

连用,则将库文件和表文件直接物理删除。

24、D 解析:在Visual FoxPro中,系统默认的备注型和通用型字段占4个字节,日期型字段

占8个字节,逻辑型字段只占1个字节。

25、D 解析:在Visual FoxPro中用来修改数据表记录的命令可以是EDIT或CHANGE命令,

也可用BROWSE命令打开浏览器,在浏览器中直接修改记录。MODIFY STRUCTURE是修改数据表结构的命令,不能修改表中记录。

26、C 解析:在数据库中数据完整性是指保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和参照完整性等。Visual FoxPro提供了实现这些完整性的方法和手段。 27、B 解析:CREATE DATABASE命令的功能是打开数据库,如果没有指定数据库名,或

使用问号(?),系统会自动弹出“打开”对话框,请用户输入数据库名并保存。 28、D 解析:Visual FoxPro在建立数据库时,建立了数据库文件(DBC)、数据库备注文件

(DCT)和数据库索引文件(DCX)。DBF为数据表文件的扩展名。

29、B 解析:在Visual FoxPro数据表中,日期型字段占8个字节,逻辑型字段占1个字节,且

每条记录之前都带有一个删除标记,占一个字节,故每条记录所占的字节数为16。 30、B 解析:自由表是不属于任何数据库的表,所有由FoxBASE或早期版本的FoxPro创建

的数据库文件都是自由表。数据库表属于数据库的一部分,与自由表相比,数据库表有为字段指定默认值和输入掩码等特点。

31、D 解析:数据库表的索引有主索引、候选索引、惟一索引和普通索引4种。 32、B 解析:利用SET RELATION命令建立两个表之间的关联,该关联为临时性关联,用于控制表间记录指针关系的临时联系。

33、D 解析:利用GOTO命令将记录指针定位到记录号为6的记录上,NEXT 5是表示从当前记录起到其后的总共5条记录的范围,因此本题所显示的记录范围是从第6条记录开始到第10记录。 34、C 解析: 在Visual FoxPro中,惟一索引是为了保持同早期版本的兼容性。它的“惟一性”

是指索引项的惟一,而不是字段值的惟一,即重复的索引字段值只有惟一一个值出现在索引项中。

35、C 解析:根据字段的命名规则:字段名可以由字母、汉字、数字、下划线组成;字段名可以是汉字或合法的西文标识符,字段名必须以字母或汉字开头;字段名中不能包含空格或句点。

36、D 解析:在Visual FoxPro中,参照完整性规则包括更新规则、删除规则和插入规则3种。 37、A 解析:在打开数据库时,EXCLUSIVE短语是以独占方式打开;SHARED短语是以共

享方式打开;NOUPDATE短语是以只读方式打开数据库;VALIDATE短语用以指定Visual FoxPro检查在数据库中应用的对象是否合法。 38、B

39、A 解析:在Visual FoxPro中,惟一索引的“惟一性”是指索引项的惟一,允许出现重复的

字段值,但重复的索引字段值只有惟一一个值,即第一个字段值出现在索引项中。 40、C 解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。

41、A 解析:系统自动指定字段宽度的字段类型有日期型、逻辑型、备注型、通用型等,

数值型字段的宽度是由用户自己定义的。 42、D 解析:利用LOCATE FOR命令可以按指定的条件查询记录,该命令执行后将记录指

针定位到满足条件的第1条记录上,如果使指针继续指向下1条满足条件的记录,应使用CONTINUE命令。

43、C 解析:利用DELETE ALL命令可以逻辑删除表中所有记录,再利用PACK命令物理删

除当前表中所有被逻辑删除的记录,两条命令执行结果与ZAP命令的功能一样,都是物

13

理删除表中的所有记录。

44、A 解析:由于主索引中不允许出现重复记录,一个表只能有一个主关键字,因此一个

表只能建立一个主索引,建立候选索引的字段可以看做是候选关键字,它也要求字段值的惟一性,但可以建立多个,惟一索引和普通索引都可以建立多个。

45、D 解析:利用命令建立多个字段索引时,建立索引的字段之间应用“+”连接,选项A)和C)属于语法错误,选项B)中应将“学号”字段类型转为字符型字段。

46、C 解析:本题考查了考生对项目管理器与管理器中各种文件的关系的理解。只有通过

项目中的“新建”按钮建立的文件,才属于当前项目。在Visual FoxPro中,通过命令方式新建的文件,即使当前窗口有项目管理器打开,该新建的数据库文件,也不属于任何项目。

47、C 解析:利用LIST命令,可在Visual FoxPro的主窗口中一次性显示当前表记录。

CHANGE用于编辑记录,USE为打开/关闭表,MODIFY用于修改记录。

48、A 解析:通过INDEX命令方式只能建立表的候选索引(CANDIDATE)、惟一索引

(UNIQUE)和普通索引。 49、A 解析:表中所有的备注型和通用型字段的内容都是统一存放在表的1个备注文件中,

无论有几个该类型字段都一样。 50、C 解析:在浏览窗口中调整记录的显示宽度,不会改变字段的实际宽度,要修改字段

实际宽度,应该在表设计器中修改表结构。 51、B 解析:利用MODIFY DATABASE命令可以打开数据库设计器。选项A)用来新建一

个数据库;选项C)为打开一个数据库文件,但不能打开数据库设计器;选项D)语法

错误。

52、C 解析:建立关联必须先建立表的相关索引,且必须在不同的工作区打开不同的表。

选项A)、B)、D)的说法都是错误的。

53、C 解析:在Visual FoxPro中,利用SELECT命令可以选择不同的工作区。最小的工作区

号是1,最大的是32 767。若编号指定为0,则选择编号最小的空闲工作区,即尚未使用的工作区。

54、D 解析:CHANGE命令用来交互式修改表中记录,本题中语法运用错误,REPLACE命令可直接修改表中记录,默认的只修改当前指针所指的记录,要修改所有记录需要加短语ALL。

55、D 解析:“婚否”字段为逻辑型字段,应利用“NOT 婚否”逻辑表达式表示未婚。 56、C 解析:用户输入数值必须大于0,应该设置该字段的有效性,在“规则”文本框中输

入“年龄>0”。 57、B 解析:在“数据工作期”窗口中,“一对多”按钮,用来实现父表中的一条记录与子表中的多条记录建立关联。 58、A 解析:设置参照完整性必须在数据库中完成,因此要求这两个数据表必须在同一个

数据库中。 59、D 解析: GO是按记录号进行定位的,无论表中记录如何改变,记录号是不变的;GO

TOP和GO BOTTOM分别指向表中第一条和最后一条记录,当表中建立索引时,记录的次序会随之改变;SKIP为向下移动一条记录。

60、C 解析: 不带参数的REPLACE语句,默认修改当前指针所指的记录。本题中,修改

当前记录的基本工资字段的值为原来的1.2倍,即500*1.2=600。 二、填空题

1、 AGAIN 解析:在Visual FoxPro中,一个工作区上只能打开一个数据表,如果要在不

同工作区上打开同一个数据表文件,必须使用AGAIN短语。

14

2、 8、1 解析:在Visual FoxPro中,日期型占8个字节,逻辑型占1个字节,备注型和通用型占4个字节,都是在设定数据类型时由系统默认的。

3、 联系 解析:参照完整性是关系数据库管理系统的一个很重要的功能。在Visual FoxPro

中为了建立参照完整性,必须首先建立表之间的联系。

4、 主索引或候选索引、普通索引 解析:在数据库设计器中设计表之间的联系时,要在父

表中建立主索引或候选索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立两个表之间的联系。

5、 MODIFY STRUCTURE 解析:修改数据表结构首先应该使用USE命令打开相应的数

据表文件,然后使用MODIFY STRUCTURE命令打开表设计器,进行数据表结构的修

改。

6、 ZAP 解析:在Visual FoxPro中,使用ZAP命令,可以一次性物理删除当前表中所有

记录。其功能等同于DELETE ALL和PACK命令连用。

7、 DBT 解析:备注型字段存放不定长的字符型文本,它在表中占用4个字节,所保存的

数据信息存储在以DBT为扩展名的文件中。 8、 逻辑、RECALL 解析:在Visual FoxPro中,利用DELETE命令可以逻辑删除数据表的

记录,给记录打上删除标记,使记录暂时不可用,必要时可以利用RECALL命令进行恢复。

9、 主索引、候选索引 解析:索引可以在表设计器中定义,Visual FoxPro中的索引分为主索

引、候选索引、惟一索引和普通索引4种。 10、REPLACE 解析:REPLACE命令直接用指定表达式或值修改当前记录,其格式如下:

REPLACE FieldName1 WITH eExpression1 [,FieldName1 WITH eExpression2]... [FOR lExpression1]

11、ON、TAG 解析:利用INDEX ON eExpression TAG TagName[OF CDXFileName]命令

可以在结构复合索引添加一个对指定字段的索引项,其中TAG后给出索引名。

12、域 解析:定义域完整性,可以通过指定不同的宽度说明不同范围数值的数据类型,从而可以限定字段的取值类型和取值范围。包括“规则”、“信息”和“默认值”3个项的定义。 13、主 解析:与数据库表比较,在自由表中只能建立3种索引,即候选索引、惟一索引和普通索引。

14、实体 解析:实体完整性是保证表中记录惟一的特性,不允许同一表中出现重复的记录。

在Visual FoxPro中利用主关键字或候选关键字来保证表中的记录惟一。 15、逻辑、索引项 解析:在Visual FoxPro中,SKIP命令是按逻辑顺序定位记录的,如果使

用了索引,则是按索引项的顺序定位。 16、查询 解析:索引可以提高查询速度,但对表进行插入、删除和修改等操作时,系统会

自动维护索引,从而也降低了插入、删除和修改操作的速度。 17、删除规则、插入规则 解析:在Visual FoxPro中,参照完整性规则包括更新规则、删除

规则和插入规则3种。 18、IN、ALIAS 解析:打开数据表命令USE中的IN短语指定在哪个工作区中打开,而ALIAS短语则为该工作区指定别名。

19、非结构复合索引、结构复合索引 解析:从索引的组织方式来讲,共有3类索引:非结构

单索引、非结构复合索引和结构复合索引。其中,与表名相同的符合索引称为结构复合索引。

20、实体完整性 解析:关系的完整性约束指关系的某种约束条件,包括实体完整性、参照

完整性和用户定义的完整性。其中,前两种完整性约束由关系数据库系统自动支持。 21、.IDX、.CDX解析:单索引文件的扩展名为.IDX,结构复合索引和非结构复合索引文件

15

的扩展名为.CDX。

22、逻辑型 解析:逻辑型字段允许使用逻辑真和逻辑假两个值。 23、字段、表 解析:“表设计器”中包括3个选项卡,其中字段有效性在“字段”选项卡中

设置,记录有效性在“表”选项卡中设置,建立字段索引在“索引”选项卡中进行。 24、16 解析:SKIP -4表示指针从当前记录开始,向上移动4条记录,此时记录指针指向第16条记录。

25、工作区号、当前工作区或活动工作区 解析:利用SELECT命令选择不同的工作区,可

采用的参数是一个大于或等于0的数字。最大工作区号是32 767,还可以采用表自身的别名或工作区所对应的别名进行选择。

26、级联 解析:在删除规则中,如果选择“级联”,在删除父表中记录时,则自动删除子表

中的相关所有记录;选择“限制”表示子表中有相关的记录时,禁止删除父表中的记录;选择“忽略”则表示不做任何参照完整性检查,即删除父表的记录时,与子表无关。 27、APPEND BLANK 解析:APPEND在表的尾部增加记录,APPEND BLANK在表的尾部增加一条

空白记录。 28、REPLACE 姓名 WITH NAME 解析:REPLACE命令如果缺省范围,并且不使用FOR

短语,则默认修改的是当前记录。 29、9 解析:APPEND BLANK在表的尾部增加一条空白记录,当前库中共有8条记录,所以插

入的空白记录的记录号为9。 30、6解析:INSERT BLANK在当前记录之后插入一条空白记录,当前记录号为5,所以插入

的空白记录的记录号为6。

第3章 关系数据库标准语言-SQL

一、选择题

1.Visual FoxPro在SQL方面,不提供的功能是

A)数据查询 B)数据定义 C)数据操纵 D)数据控制 2.检索职工表中工资大于800元的职工号,正确的命令是

A)SELECT 职工号WHERE 工资>800

B)SELECT 职工号FROM 职工SET 工资>800

C)SELECT 职工号FROM 职工 WHERE 工资>800 D)SELECT 职工号FROM 职工 FOR 工资>800

3.找出在仓库面积大于500的仓库中工作的职工号,以及这些职工工作所在的城市,正确的

命令是

A)SELECT 职工号,城市 FROM职工;WHERE (面积>500) OR (职工.仓库号=仓库.仓库号)

B)SELECT 职工号,城市 FROM职工

WHERE (面积>500) AND (职工.仓库号=仓库.仓库号) C)SELECT 职工号,城市 FROM仓库,职工;

WHERE (面积>500) OR (职工.仓库号=仓库.仓库号) D)SELECT 职工号,城市 FROM仓库,职工;

WHERE (面积>500) AND (职工.仓库号=仓库.仓库号)

4.利用SQL语句,检索仓库中至少有一名职工的仓库信息,正确的命令是

A) SELECT * FROM 仓库表 WHERE IN (SELECT 仓库号 FROM 职工表)

16

B) SELECT * FROM 仓库表 WHERE NOT IN (SELECT 仓库号 FROM 职工表) C) SELECT * FROM仓库表WHERE 仓库号 EXISTS;

(SELECT * FROM 职工表 WHERE 仓库号=仓库表.仓库号)

5.SQL语言又称为

A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言 第(6)~(9)题使用如下的设备表。

设备型号 设备名称 使用日期 设备数量 单价 W27-1 W27-2 C31-1 C31-2 M20-1 J18-1 F15-1

微机 微机 车床 车床 磨床

01/10/03 02/06/03 03/30/03 04/05/03 02/10/03 05/07/03 02/01/03

1 2 2 2 3 2 2

使用部门 进口

生产一间 生产一间 生产二间 生产二间 生产二间 办公室 办公室

T F T T F T F

143000.00 98000.00 138000.00 97500.00 98000.00 156000.00 8600.00

轿车 复印机

6.从设备表中查询单价大于100000元的设备,并显示设备名称,正确的命令是

A)SELECT单价>100000 FROM 设备表 FOR设备名称

B)SELECT 设备名称 FROM 设备表 FOR 单价>100000 C)SELECT单价>100000 FROM 设备表 WHERE 设备名称 D)SELECT 设备名称 FROM 设备表 WHERE 单价>100000 7.为设备表增加一个\设备总金额N(10,2)\字段,正确的命令是

A)ALTER TABLE 设备表 ADD FIELDS设备总金额 N(10,2)

B)ALTER TABLE设备表ADD 设备总金额 N(10,2)

C)ALTER TABLE设备表 ALTER FIELDS设备总金额 N(10,2) D)ALTER TABLE设备表 ALTER 设备总金额 N(10,2)

8.利用SQL数据更新功能,自动计算更新每个\设备总金额\字段的字段值,该字段值等于\

单价*设备数量\的值,正确命令为 A)UPDATE 设备表 SET 设备总金额=单价*设备数量 B)UPDATE 设备表 FOR 设备总金额=单价*设备数量 C)UPDATE 设备表 WITH 设备总金额=单价*设备数量 D)UPDATE 设备表 WHERE 设备总金额=单价*设备数量

9.有如下SQL语句:

SELECT 使用部门,SUM(单价*设备数量)AS 总金额FROM 设备表;

WHERE .NOT.(进口) GROUP BY 使用部门 执行该语句后,第一条记录的\总金额\字段值是( )

A)196000.00 B)143000.00 C)294000.00 D)17200.00

10.SQL的查询结果可以存放到多种类型的文件中,下列都可以用来存放查询结果的文件类 型的是

A) 临时表、视图、文本文件 B) 数组、永久性表、视图

C) 永久性表、数组、文本文件 D) 视图、永久性表、文本文件

11.语句\DELETE FROM 成绩表WHERE 计算机<60\的功能是

A) 物理删除成绩表中计算机成绩在60分以下的学生记录

B) 物理删除成绩表中计算机成绩在60分以上的学生记录 C) 逻辑删除成绩表中计算机成绩在60分以下的学生记录

D) 将计算机成绩低于60分的字段值删除,但保留记录中其它字段值

17

12.下列选项中,不属于SQL数据定义功能的是

A)SELECT B)CREATE C)ALTER D)DROP 13.嵌套查询命令中的IN,相当于

A)等号= B)集合运算符∈ C)加号+ D)减号- 14.关于SQL的超联接查询,说法错误的是

A)在SQL中可以进行内部联接、左联接、右联接和全联接 B)SQL的超联接运算符\*=\代表左联接,\=*\代表右联接

C)Visual FoxPro同样支持超联接运算符\*=\和\=*\

D)利用全联接,即使两个表中的记录不满足联接条件,也会在目标表或查询结果中

出现,只是不满足条件的记录对应部分为NULL

第(15)~(18)题使用如下的仓库表和职工表。 仓库表 仓库号 所在城市

A2 A3

职工表

上海 天津 广州 仓库号

工资

A4 职工号 M1 M3 M4 M5 M6

A1 2000.00 A3 2500.00 A4 1800.00 A2 A4

1500.00 1200.00

15.检索在广州仓库工作的职工记录,要求显示职工号和工资字段,正确的命令是

A)SELECT 职工号,工资 FROM 职工表 WHERE 仓库表.所在城市=\广州\B)SELECT 职工号,工资 FROM职工表 WHERE 仓库表.仓库号=职工表.仓库号; AND 仓库表.所在城市=\广州\

C)SELECT 职工号,工资 FROM 仓库表,职工表 WHERE 仓库表.仓库号=职工; 表.仓库号 AND 仓库表.所在城市=\广州\

D)SELECT 职工号,工资 FROM 仓库表,职工表 WHERE 仓库表.仓库号=职工; 表.仓库号 OR 仓库表.所在城市=\广州\16.有如下SQL语句:

SELECT SUM(工资) FROM 职工表 WHERE 仓库号 IN;

(SELECT 仓库号 FROM 仓库表 WHERE 所在城市=\北京\所在城市=\上海\执行语句后,工资总和是

A)1500.00 B)3000.00 C)5000.00 D)10500.00

17.求至少有两个职工的每个仓库的平均工资

A)SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表 HAVING COUNT(*)>=2

B)SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 HAVING COUNT(*)>=2

C)SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 SET COUNT(*)>=2

D)SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 WHERE COUNT(*)>=2

18.有如下SQL语句:

SELECT DISTINCT 仓库号 FROM 职工表 WHERE 工资>=ALL;

18

(SELECT 工资 FROM 职工表 WHERE 仓库号=\

执行语句后,显示查询到的仓库号有

A)A1 B)A3 C)A1,A2 D)A1,A3 19.下列关于SQL对表的定义的说法中,错误的是

A)利用CREATE TABLE语句可以定义一个新的数据表结构

B)利用SQL的表定义语句可以定义表中的主索引

C)利用SQL的表定义语句可以定义表的域完整性、字段有效性规则等

D)对于自由表的定义,SQL同样可以实现其完整性、有效性规则等信息的设置 20.在SQL的数据定义功能中,下列命令格式可以用来修改表中字段名的是

A)CREATE TABLE 数据表名 NAME... B)ALTER TABLE 数据表名 ALTER字段名...

C)ALTER TABLE 数据表名 RENAME COLUMN字段名 TO...

D)ALTER TABLE 数据表名 ALTER 字段名 SET DEFAULT...

21.利用SQL 命令从职工表中派生出含有\职工号\、\姓名\字段的视图,下列语句正确的

A)CREATE VIEW ZG_view SELECT 职工号,姓名 FROM 职工表 B)CREATE VIEW ZG_view AS SELECT 职工号,姓名 FROM 职工表 C)CREATE QUERY ZG_view SELECT 职工号,姓名 FROM 职工表 D)CREATE QUERY ZG_view AS 姓名,职工号 第(22)~(25)题使用如下的班级表和学生表。 班级表 班级号 班级名称 班级人数

20030103 计算机一班

20030203 计算机二班 20030303 计算机三班

学生表

班级号 200301 200301 200301 200302

学号 1001 1002 1003 2001 2002

姓名 王伟 刘红 李林 张清 刘雷

性别 男 女 女 女 男

籍贯 北京 上海 北京 上海 上海

55 48 50

200302

22.有如下SQL语句:

SELECT班级名称,姓名,性别 FROM 班级表,学生表;

WHERE班级表.班级号=学生表1.班级号 AND 籍贯=\上海\性别=\女\; ORDER BY 班级名称 DESC

执行该语句后,查询结果中共有几条记录,且第一条记录的学生姓名是

A)1 李林 B)2 张清 C)2 刘红 D)3 张清 23.有如下SQL语句:

SELECT MAX(班级人数) INTO ARRAY arr FROM 班级表

执行该语句后

A)arr[1]的内容为48 B)arr[1]的内容为55 C)arr[0]的内容为48 D)arr[0]的内容为55 24.有如下SQL语句:

SELECT 班级名称,姓名,性别 FROM 班级表,学生表;

19

WHERE 班级表.班级号=学生表.班级号 AND 姓名 LIKE \刘*\;

ORDER BY 班级号 该语句的含义是

A)查找学生表中姓\刘\的学生,并按班级号分组显示学生的班级名称、姓名和性别 B)查找学生表中姓\刘\的学生,按班级号升序显示学生的班级名称、姓名和性别 C)查找学生表中非姓\刘\的学生,按班级号升序显示学生的班级名称、姓名和性别 D)语句错误

25.有如下SQL语句:

SELECT 班级名称 FROM 班级表 WHERE NOT EXISTS;

(SELECT * FROM 学生表 WHERE 班级号=班级表.班级号) 执行该语句后,班级名称的字段值是

A)03计算机一班 B)03计算机二班

C)03计算机三班 D)03计算机一班和03计算机二班 26.下列SQL语句中,用于修改表结构的是

A) ALTER B) CREATE C)UPDATE D)INSERT 27.找出平均分大于95分的学生学号和他们所在的班级

A)SELECT 学号,班级 FROM 成绩 WHERE 平均分>95

B)SELECT 学号,班级 FROM 班级 WHERE (平均分>95) AND (成绩.学号=班级. 学号)

C)SELECT 学号,班级 FROM 成绩,班级 WHERE (平均分>95) OR (成绩.学号=

班 级.学号)

D)SELECT 学号,班级 FROM 成绩,班级 WHERE (平均分>95) AND (成绩.学号=

班级.学号)

28.在当前目录下有数据表文件student.dbf,执行如下SQL语句后

SELECT * FORM student INTO DBF student ORDER BY 学号/D

A)生成一个按\学号\升序的表文件,将原来的student.dbf文件覆盖 B)生成一个按\学号\降序的表文件,将原来的student.dbf文件覆盖 C)不会生成新的排序文件,保持原数据表内容不变 D)系统提示出错信息 29.有如下SQL语句:

SELECT * FROM 仓库 WHERE 仓库号=\;

SELECT * FROM 仓库 WHERE 仓库号=\该语句的功能是

A) 查询在H1或者H2仓库中的职工信息 B) 查询仓库号H1或者H2的仓库信息

C) 查询即在仓库号H1,又在仓库号H2工作的职工信息 D) 语句错误,不能执行

(30)~(40)题使用的数据表如下:

当前盘当前目录下有数据库:学院.dbc,其中有\教师\表和\学院\表。 \教师\表:

职工号 系号 姓名 工资 主讲课程 11020001 01 肖海 3408 数据结构

20

11020002 02 王岩盐 4390 数据结构 11020003 11020004 11020005 11020006

01 03 01 02

刘星魂 张月新 李明玉 孙民山

2450 3200 4520 2976

C语言 操作系统 数据结构 操作系统

11020007 03 钱无名 2987 数据库 11020008 04 呼延军 3220 编译原理 11020009 03 王小龙 3980 数据结构 110200010 01 张国梁 2400 C语言 110200011 04 林新月 1800 操作系统 110200012 01 乔小廷 5400 网络技术 110200013 02 周兴池 3670 数据库 110200014 04 欧阳秀 3345 编译原理 \学院\表

系号 系名 01 计算机 02 通信

03 信息管理 04 数学

30.为\学院\表增加一个字段\老师人数\的SQL语句是

A)CHANGE TABLE学院ADD教师人数I B)ALTER STRU学院ADD教师人数I C)ALTER TABLE学院ADD教师人数I

D)CHANGE TABLE学院INSERT教师人数I 31.将\欧阳秀\的工资增加200元的SQL语句是

A)REPLACE教师WITH工资=工资+200 WHERE 姓名=\欧阳秀\B)UPDATE教师 SET 工资=工资+200 WHEN 姓名=\欧阳秀\

C)UPDATE教师 工资 WITH 工资+200 WHERE 姓名=\欧阳秀\D)UPDATE教师 SET 工资=工资+200 WHERE 姓名=\欧阳秀\

32.有SQL语句:SELECT*FROM教师WHERE NOT(工资>3000 OR 工资<2000)

与如上语句等价的SQL语句是

A)SELECT*FROM教师WHERE工资BETWEEN2000 AND 3000 B)SELECT*FROM教师WHERE工资>2000 AND 工资<3000 C)SELECT*FROM教师WHERE工资>2000 OR 工资<3000

D)SELECT*FROM教师WHERE工资<=2000 AND 工资>=3000 33.为\教师\表的职工号字段添加有效性规则:职工号的最左边三位字符是110,正确的SQL语句是

A)CHANGE TABLE教师ALTER职工号SET CHECK LEFT(职工号,3)=\

B)ALTER TABLE教师ALTER职工号SET CHECK LEFT(职工号,3)=\C)ALTER TABLE教师ALTER职工号CHECK LEFT(职工号,3)=\

D)CHANGE TABLE教师ALTER职工号SET CHECK OCCURS(职工号,3)=\34.有SQL语句:

SELECT DISTINCT 系号 FROM 教师 WHERE 工资>= ALL(SELECT 工资 FROM; 教师 WHERE 系号=\

21

该语句的执行结果是系号

A)\01\和\02\B)\01\和\03\C)\01\和\04\D)\02\和\03\

35.建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是

A)CREATE VIEW salary AS 系号,AVG(工资)AS平均工资 FROM教师 GROUP BY;

系号 B)CREATE VIEW salary AS SELECT 系号,AVG(工资)AS平均工资 FROM教师; GROUP BY 系号 C)CREATE VIEW salary SELECT 系号,AVG(工资)AS平均工资 FROM教师; GROUP BY 系号

D)CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资 FROM教师; GROUP BY 系号

36.删除视图salary的命令是

A)DROP salary VIEW B)DROP VIEW salary C)DELETE salary VIEW D)DELETE salary 37.有SQL语句:

SELECT主讲课程,COUNT(*)FROM 教师 GROUP BY 主讲课程 该语句执行结果含有记录个数是

A)3 B)4 C)5 D)6

38.有SQL语句:

SELECT COUNT(*)AS 人数,主讲课程 FROM 教师GROUP BY主讲课程; ORDER BY人数DESC

该语句执行结果的第一条记录的内容是

A)4 数据结构 B)3 操作系统 C)2 数据库 D)1 网络技术 39.有SQL语句:

SELECT 学院.系名,COUNT(*)AS 教师人数 FROM教师,学院; WHERE 教师 系号=学院.系号 GROUP BY学院.系名

与如上语句等价的SQL语句是

A)SELECT 学院.系名,COUNT(*) AS 教师人数 FROM 教师 INNER JOIN 学院;

教师.系号=学院.系号 GROUP BY 学院.系名 B)SELECT 学院.系名,COUNT(*) AS 教师人数 FROM 教师 INNER JOIN 学院;

ON 系号 GROUP BY 学院.系名 C)SELECT 学院.系名,COUNT(*) AS 教师人数 FROM 教师 INNER JOIN 学院;

ON 教师.系号=学院.系号 GROUP BY 学院.系名 D)SELECT 学院.系名,COUNT(*) AS 教师人数 FROM 教师 INNER JOIN 学院;

ON 教师.系号=学院.系号 40.有SQL语句:SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;

ALL (SELECT 工资 FROM 教师 WHERE 系号=\与如上语句等价的SQL语句是

A)SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=(SELECT MAX(工资); FROM 教师 WHERE 系号=\

B)SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=(SELECT MIN(工资); FROM 教师 WHERE 系号=\

C)SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=ANY (SELECT 工资;

22

FROM 教师 WHERE 系号=\

D)SELECT DISTINCT 系号FROM 教师 WHERE 工资>=SOME(SELECT 工资 ; FROM 教师 WHERE 系号=\

41.使用SQL语句增加字段的有效性规则,是为了能保证数据的

A)实体完整性 B)表完整性 C)参照完整性 D)域完整性 42.用于显示部分查询结果的TOP短语,使用时需与之连用的短语是

A)WHERE B)FROM C)GROUP BY D)ORDER BY 43.下列关于集合的并运算的说法不正确的是

A)ALL防止UNION删除组合结果中的重复行

B)在SQL语句中支持集合的并运算

C)两个SELECT语句的查询结果中的列数可以不相同

D)两个SELECT语句的查询结果中的对应列必须有相同的数据类型和宽度 44.查询学生表中学号(字符型,长度为2)尾数字符是\1\的错误命令是

A)SELECT * FROM 学生表 WHERE \$学号

B)SELECT * FROM 学生表 WHERE RIGHT(学号,1)=\C)SELECT * FROM 学生表 WHERE SUBSTR(学号,2)=\

D)SELECT * FROM 学生表 WHERE SUBSTR(学号,2,1)=\

45.在成绩表中要求按\总分\降序排列,并查询前3名学生的记录,正确的命令是

A)SELECT * TOP 3 FROM 成绩表 WHERE 总分 DESC

B)SELECT * TOP 3 FROM 成绩表 FOR 总分 DESC

C)SELECT * TOP 3 FROM 成绩表 GROUP BY 总分 DESC D)SELECT * TOP 3 FROM 成绩表 ORDER BY 总分 DESC 46.检索订购单表中尚未确定的供应商的定单号,正确的命令是

A) SELECT * FROM 订购单 WHERE 供应商号 NULL B) SELECT * FROM 订购单 WHERE 供应商号 =NULL

C) SELECT * FROM 订购单 WHERE 供应商号 IS NULL

D) SELECT * FROM 订购单 WHERE 供应商号 IS NOT NULL 第(47)~(50)题中使用如下的学生表、课程表和成绩表。 学生(学号C(4),姓名C(8),性别C(2),出生日期D,院系C(8)) 课程(课程编号(4),课程名C(10),开课院系C(8))

成绩(学号C(4),课程编号C(4),成绩I)

47.查询每门课程的平均分,要求得到的信息包括课程名和平均分,正确的命令是

A)SELECT 课程名,AVG(成绩) FROM 课程,成绩

WHERE 课程.课程编号=成绩.课程编号 GROUP BY 课程名 B)SELECT 课程名,SUM(成绩) FROM 课程,成绩;

WHERE 课程.课程编号=成绩.课程编号 GROUP BY 课程名 C)SELECT 课程名,AVG(成绩) AS 平均分 FROM 课程,成绩; WHERE 课程.课程编号=成绩.课程编号 GROUP BY 课程编号 D)SELECT 课程名,SUM(成绩) AS 平均分 FROM 课程,成绩; WHERE 课程.课程编号=成绩.课程编号 GROUP BY 课程编号

48.有如下SQL语句:

SELECT 课程名,开课院系,COUNT(学号) AS 选修人数;

FROM 成绩,课程 WHERE 课程.课程编号=成绩.课程编号; GROUP BY 课程名称 HAVING COUNT(*)<=2

23

该语句所表示的含义是

A)检索选修两门课程以上的学生记录,显示课程名、开课院系和选修人数

B)检索选修两门课程以上(包括两门)学生,显示课程名、开课院系和选修人数 C)检索选修两门课程以下的学生记录,显示课程名、开课院系和选修人数

D)检索选修两门课程以下(包括两门)的学生,显示课程名、开课院系和选修人数 49.为成绩表中的成绩字段定义有效性检查及错误信息的提示,正确的命令是

A)ALTER TABLE 成绩表 ALTER 成绩 CHECK 成绩>0 ERROR 成绩不能为负

B)ALTER TABLE 成绩表 ALTER 成绩 SET CHECK 成绩>0 ERROR 成绩不能为负 C)ALTER TABLE 成绩表 ALTER 成绩 CHECK 成绩>0 ERROR \成绩不能为负\D)ALTER TABLE 成绩表 ALTER 成绩 SET CHECK 成绩>0 ERROR \成绩不能为 负\

50.利用SQL派生一个包含学号、姓名、课程名和成绩的视图,正确的命令是

A)CREATE VIEW v_view AS SELECT 课程名,成绩,姓名,学号;

FROM 课程!课程 INNER JOIN 课程!成绩 INNER JOIN 课程!学生; ON 成绩.学号 = 学生.学号 ON 课程.课程编号 = 成绩.课程编号 B)CREATE VIEW v_view AS;

SELECT 课程.课程名, 成绩.成绩, 学生.姓名,成绩.学号;

FROM 课程!课程 INNER JOIN 课程!成绩 ON 成绩.学号 = 学生.学号; ON 课程.课程编号 = 成绩.课程编号

C)CREATE VIEW v_view AS;

SELECT 课程.课程名, 成绩.成绩, 学生.姓名,成绩.学号; FROM 课程!课程 INNER JOIN 课程!成绩 INNER JOIN 课程!学生; ON 成绩.学号 = 学生.学号 D)CREATE VIEW v_view AS;

SELECT 课程.课程名, 成绩.成绩, 学生.姓名,成绩.学号;

FROM 课程!课程 INNER JOIN 课程!成绩 INNER JOIN 课程!学生;

ON 成绩.学号 = 学生.学号 ON 课程.课程编号 = 成绩.课程编号

51.下列不属于SQL语言特点的是

A)是一种一体化语言 B)是一种高度过程化的语言

C)语言非常简洁 D)可以直接以命令方式交互使用,也可以程序方式使用 52.SELECT-SQL语句中,可以对查询结果进行排序的短语是

A)ORDER BY B)GROUP BY C)HAVING D)WHERE

53.在SQL语句中,与表达式\工资 BETWEEN 1000 AND 1500\功能相同的表达式是

A)工资<=1000 AND 工资>=1500 B)工资<=1500 AND 工资>=1000 C)工资<=1000 OR 工资>=1500 D)工资<=1500 OR 工资>=10000 54. SQL查询语句中,用来实现关系的投影运算的短语是

A)WHERE B)FROM C)SELECT D)GROUP BY 55.SQL -INSERT命令的功能是

A)在表头插入一条记录 B)在表尾插入一条记录 C)在表中任意位置插入一条记录 D)在表中插入任意条记录 56.有如下SQL SELECT语句

SELECT * FORM 工资表 WHERE 基本工资<=2000 AND 基本工资>=1500 下列与该语句等价的是

A)SELECT * FORM 工资表 WHERE 基本工资 BETWEEN 1500 AND 2000

24

B)SELECT * FORM 工资表 WHERE 基本工资 BETWEEN 2000 AND 1500 C)SELECT * FORM 工资表 WHERE 基本工资 FROM 1500 INTO 2000 D)SELECT * FORM 工资表 WHERE 基本工资 FROM 2000 INTO 1500 57.在当前目录下有数据表文件\zg.dbf\,执行如下SQL语句后

SELECT * FROM zg INTO CURSOR zg ORDER BY 职工号/A

A)生成一个按\职工号\升序的临时表文件,将原来的zg.dbf文件覆盖 B)生成一个按\职工号\降序的临时表文件,将原来的zg.dbf文件覆盖 C)不会生成新的排序文件,保持原数据表内容不变 D)系统提示出错信息 (58)-(60)小题使用如下数据:

外币表:

外币名称 外币代码 现钞买入价 基准价 美元 英镑 欧元 法郎 持有者:

姓名 张三 张三 张三

李芳 李芳 王林 王林

12 14 15 18

现钞卖出价

825.9500 1204.0500

821.6555 827.4500 1171.4300 1176.5000

877.5325 895.5600 886.2686 585.5500 600.4888 604.6500

外币代码 持有数量 12 1000

14 15

14 18 14 15

1300 1500

2000 1500 1800 1200

刘剑 刘剑 12 15 2000 1200

刘剑 18 1500 58.有如下SQL语句:

SELECT 姓名,外币名称,持有数量 FROM 兑换,持有者 WHERE兑换.外币代码=持有 者.外币代码 AND 持有数量>=1500 ORDER BY持有数量 DESC,姓名 执行该语句后,最后一条记录的内容是

A)李芳 英镑 2000 B)张三 欧元 1500 C)刘剑 法郎 1500 D)李芳 法郎 1500 59. 计算出\刘剑\所持有的全部外币相当于人民币的价值数量,下列语句正确的是 注意:某种外币相当于人民币数量的计算公式:人民币价值数量= 该种外币的\现钞买入价\* 该种外币\持有数量\

A)SELECT SUM(现钞买入价*持有数量) AS 人民币价值 FROM 持有者,兑换; WHERE 兑换.外币代码=持有者.外币代码 AND 姓名=\刘剑\

B)SELECT SUM(现钞买入价*持有数量) AS 人民币价值 FROM 持有者,兑换; WHERE 兑换.外币代码=持有者.外币代码 FOR 姓名=\刘剑\

C)SELECT COUNT(现钞买入价*持有数量) AS 人民币价值 FROM 持有者,兑换; WHERE 兑换.外币代码=持有者.外币代码 AND 姓名=\刘剑\

D)SELECT COUNT(现钞买入价*持有数量) AS 人民币价值 FROM 持有者,兑换;

WHERE 兑换.外币代码=持有者.外币代码 FOR 姓名=\刘剑\

25

60.将兑换表中,美元和英镑的基准价上调0.05%,下列SQL语句正确的是

A)UPDATE 兑换FOR 基准价=基准价*1.05

WHERE 外币名称=\美元\外币名称=\英镑\B)UPDATE 兑换SET 基准价=基准价*1.05;

WHERE 外币名称=\美元\外币名称=\英镑\C)UPDATE兑换SET 基准价=基准价*1.05;

WHERE 外币名称=\美元\外币名称=\英镑\D)UPDATE 兑换FOR 基准价=基准价*1.05;

WHERE 外币名称=\美元\外币名称=\英镑\二、填空题

1.SQL是一种高度非过程化的语言,它可直接以 方式使用,也可以 方式使用。 2.当前目录下有\课程表\文件,要查找选修了\W1\,又选修了\W2\的学生号,则语句为:

SELECT A.学生号 FROM 选课表 A, ;

WHERE A.学生号=B.学生号 AND A.学生号=\ 3.当前目录下有\工资表\文件,现要将\职称\为\工程师\的工资增加30元,则语句为:

UPDATE 工资表 WHERE 职称=\工程师\4. SQL SELECT语句中的 用于实现关系的选择操作。 5.在SQL SELECT中,字符串匹配运算符用 表示, 可用来表示0个或多个字符。 6.在成绩表中,只显示分数最高的前10名学生的记录,SQL语句为:

SELECT * 10 FROM 成绩表 总分 DESC

7.要求按成绩降序排序,输出\文学系\学生选修了\计算机\课程的学生姓名和成绩。请将

下面的SQL语句填写完整。

SELECT 姓名,成绩 FROM 学生表,选课表; WHERE AND AND ; ORDER BY 成绩 DESC

8.利用SQL语句统计选修了\计算机\课程的学生人数。请将下面的语句补充完整。

SELECT FROM 选课表 WHERE 9.利用SQL语句删除当前文件夹中一个名为temp的自由表文件为: temp。

10.在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下面的SQL语句补充完整。

SELECT 学号,SUM(成绩) FROM WHERE 成绩>=60 GROUP BY学号 COUNT(*)>=3 11.在\职工表\中删除\年龄\字段的有效性规则,应使用命令

ALTER TABLE 职工表 ALTER 年龄 12.设有选课表,表中包含的字段有:学号C(3),课程号C(3),成绩N(3)。查询每门

课程的学生人数,要求显示课程号和学生人数,对应的SQL语句为:

SELECT 课程号, AS 学生人数FROM 选课表 GROUP BY 13.为\学生\表增加一个\平均成绩\字段的正确命令是 ALTER TABLE学生ADD 平均成绩N(5,2)。 14.SQL是 语言,其核心是 。

15.检索学生表中,\籍贯\为\北京\的学生记录,将结果保存到表temp中,SQL语句为:

SELECT * FROM 学生表 WHERE 籍贯=\北京\ temp 16.在SQL语句中,为了避免查询到重复记录,可用 短语。 17.检索当前\职工表\中,全部姓\李\的职工记录,SQL语句为:

SELECT * FROM 职工表 WHERE 姓名 \李*\

26

18.在SQL语句中,要删除仓库表中仓库号的字段值是WH1的记录,可利用命令: FROM 仓库WHERE 仓库号= \

19.当前目录下有\学生表\文件,表中有字段\学号C(2)\,现要将\学号\字段的宽度由2

改为4,则语句为:ALTER TABLE 学生表

20.Visual FoxPro在SQL方面支持数据查询、 和 3种功能。

21.利用SQL语句的定义功能,建立一个职工表文件,其中为职工号建立主索引,工资的默 认值为1200,语句格式为:

CREATE TABLE 职工(仓库号C(5) ,职工号C(5),工资 I 1200)

22.在SQL-SELECT语句中,用来定义一个区间范围的特殊运算符是 ,检查一个属性值是否属于一组给定的值中的特殊运算符是 。

23.查询\学生成绩\表中,所有姓\张\的学生记录,完成下列SQL语句:

SELECT * FROM WHERE 姓名 \张*\

24.当前目录下有student和coure两个表文件,要求查找同时选修了课程号为\0001\和\0002\

的学生姓名,语句为:

SELECT 姓名 FROM student,coure WHERE student.学号=coure.学号 AND 课程号=\姓名 (SELECT 姓名 FROM ;

WHERE AND 课程号=\

25.设有学生表(姓名,班级名称),用SQL语句检索每个班级的学生人数的语句是:

SELECT 班级名称, AS 人数 FROM 学生表 26.SQL语句中,修改表中数据的短语是 ,修改表结构的短语是 。

27.检索学生表中,\籍贯\为\上海\的学生记录,将结果保存到文本文件temp中,SQL语句为:SELECT * FROM 学生表 WHERE 籍贯=\上海\ temp 28.SQL语句中,修改列的短语是 ,增加列的短语是 。 29.在工资表中,显示工资最少的3名职工记录,SQL语句为:

SELECT * 3 FROM 工资表 ORDER BY 工资 。 30.在SQL的嵌套查询中,量词ANY的同义词是________。

答案和解析

一、选择题 1.D 解析: Visual FoxPro在SQL方面支持数据定义、数据查询和数据操纵功能。由于Visual FoxPro自身在安全控制方面的缺陷,它没有提供数据控制功能。 2.C 解析: SELECT查询语句最基本的格式为SELECT-FROM-WHERE。选项A)缺少FROM短语,选项B)和D)中条件短语错误。

3.D 解析: 选项A)中缺少查询的\仓库\表,且查询条件联接有误;选项B)中同样缺少查询的\仓库\表;选项C)中查询条件错误,应使用AND进行条件联接,而不是OR。 4.D 解析: 利用EXISTS或NOT EXISTS,可用来检查在子查询中是否有结果返回。利用运算符IN来表示,可写成如下格式:SELECT * FROM 仓库表 WHERE 仓库 IN; (SELECT 仓库号 FROM 职工表)

5.C 解析: 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。 6.D 解析: SELECT查询最基本的格式通常为:SELECT-FROM-WHERE。其中,SELECT用于选择查询结果要显示的目标列表,FROM用于列出查询要用到的所有表文件,WHERE则用于指定查询结果的筛选条件。 7.B 解析: 在SQL语句中,为表增加字段应使用关键字ADD,而不是ADD FIELDS。ALTER

27

是用来修改已有的字段,不能用来新增一个字段。

8.A 解析: SQL语句中,利用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...] WHERE Condition

9.A 解析: 本题SQL语句的功能是根据设备的使用部门分组计算各个部门中,使用非进口设备的设备总金额。

10.C 解析: 在SQL的查询语句中,其结果可存放到数组、临时表、永久性表或文本文件中,但是不能存放到视图中,视图是从基本表中派生出来的一个\虚表\,不能用来存放SQL的查询结果。

11.C 解析: 在使用SQL语句的删除命令时,根据WHERE短语删除满足指定条件的记录,如果不使用WHERE短语,则表示删除表中的所有记录。此处是对表中的记录进行逻辑删除,如果要物理删除表中记录,还需要加上PACK命令。

12. A 解析: 选项A)用来查询数据,属于SQL的查询功能。选项B)用来创建表,选项C)用来修改表结构,选项D)用来删除表文件,都属于SQL的定义功能。

13.B 解析: 嵌套查询命令中,IN相当于集合运算符∈,选项A),C),D)只是用来迷惑读者。

14.C 解析: SQL的超联接运算符中\*=\代表左联接,\=*\代表右联接。但在Visual FoxPro中,不支持超联接运算符\*=\和\=*\,它有专门的联接运算语法格式,分别用LEFT JOIN和RIGHT JOIN表示。

15.C 解析: 本题中,通过仓库号字段将仓库表和职工表进行联接,查询仓库所在地是\广州\的记录。

16. C 解析: 本题SQL查询语句的功能是统计在北京和上海仓库工作的职工的工资总和。 17. B 解析: 本题利用SQL分组查询的功能,计算至少有两个职工的每个仓库的平均工资,利用HAVING子句可以对分组条件做进一步限定。

18. D 解析: 本题查询的是职工的工资大于或等于A1仓库中所有职工工资的仓库号。在SQL语句中可以使用ANY,ALL等量词进行查询。其中ANY在进行比较运算时,只要子查询中有一行能使结果为真,则结果就为真;而ALL则要求子查询中的所有行都使结果为真时,结果才为真。

19. D 解析: 在SQL的定义功能中,所定义的新数据表结构的内容和在表设计器中定义一个新表的内容一样,可以完成其所有功能,包括主索引、域完整性约束、字段有效性规则等。但对于自由表的定义和在表设计器中一样,都不能定义自由表的主索引、域完整约束、字段有效性规则等,只能进行一些最基本的操作,如定义字段名、宽度和类型等。

20.C 解析: SQL的数据定义功能中,可以定义数据表结构、删除表和修改表结构,修改表结构的命令格式有3种,其中只有一种格式才能对表中的字段名进行修改和删除。 21. B 解析: SQL的数据定义功能中,可以对视图进行定义,语句格式为: CREATE VIEW view_name[(column_name[,column_name]...)]AS select_statement。 22.C 解析: 该SQL语句是查找每个班中籍贯为上海的女生记录,查询结果按班级名称降序排列,要求显示该生的班级名称、姓名和性别。

23. B 解析: 此命令是将班级人数字段值中的最大数保存到数组中,数组元素的上标和下标都是从1开始的。

24. B 解析: 该SQL语句的功能是查找学生表中姓\刘\的学生记录,要求显示该生的班级名称、姓名和性别,并按班级号升序排序。这里的LIKE是字符串匹配运算符,通配符\*\表示0个或多个字符。

25.C 解析: 该SQL语句的功能是查找还没有学生记录的班级名称。在学生表中暂时还

28

没有\03计算机三班\学生的记录,所以查询结果为\03计算机三班\。

26.A 解析: SQL语句中凡创建都用CREATE,删除都用DROP,改变用ALTER,再跟类型和名字,附加子句。

27.D 解析: 选项A)中缺少查询的\班级\表,且查询条件不全;选项B)中同样缺少查询的\成绩\表;选项C)中查询条件错误,应使用AND进行条件连接,而不是OR。

28.D 解析:在SQL语句中,查询结果存放到新表的表名不能与原表表名相同,否则提示出错信息。

29.B 解析: 查询仓库号为H1或H2的仓库信息,UNION是用来合并单独的查询结果。 30.C 解析: 在SQL的数据定义功能中,可以定义数据表结构、删除表和修改表结构,修改表结构的命令格式有三种,利用ALTER TABLE TableName ADD FieldName1 FieldType命令可以为表增加一个新字段。

31.D 解析: SQL语句中,利用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...]

WHERE Condition

32.A 解析: 本题中SQL语句查询的是工资小于等于3000且大于等于2000的职工记录,与SQL中特殊运算符BETWEEN...EDN...等价,意思是在\?和?之间\。 33.B 解析:定义和修改表的有效性规则和错误信息提示,可使用如下命令格式: ALTER TABLE TableName1 ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET CHECK lExpression2[ERROR cMessageText2]] 34.A 解析: 本题SQL语句的含义是检索有教师工资大于或等于系号为\02\的所有教师工资的系号。

35.D 解析:在SQL的数据定义功能中,可以对视图进行定义,语句格式为:

CREATE VIEW view_name[(column_name[,column_name]...)]AS select_statement 在选项B)中,用于指定分组的条件设置错误,教师表中不存在\系名\字段,选项A)和C)都存在语法错误。

36.B 解析: SQL语句中,删除视图的命令格式是DROP VIEW <视图名>。

37.D 解析: 本题中SQL语句的含义是分组统计\教师\表中\主讲课程\记录个数。 38.A 解析: 本题中SQL语句的含义是分组统计\教师\表中\主讲课程\记录个数,通过AS短语为查询结果的COUNT(*)字段指定一个新的字段名\人数\,并将结果按人数降序排列。

39.C 解析: 本题SQL语句的含义是统计每个系的教师人数各有多少人,通过AS短语可以为查询统计结果指定一个新的字段名\教师人数\。\教师\和\学院\表是通过\系号\字段进行连接的。利用JOIN短语进行连接的语法格式为:

SELECT FROM Table JOIN Table ON JoinCondition WHERE...

40.A 解析: 本题SQL语句的含义是检索有教师工资大于或等于系号为\02\的所有教师工资的系号。ALL、ANY和SOME都是SQL语句中的量词,在进行比较运算时只要子查询中有一行能使结果为真,则结果为真,而ALL则要求子查询中的所有行都使结果为真时,结果才为真,因此在子查询中要使用MAX()函数求出\02\系的教师最高工资,其他系中只要有教师工资高于此函数值,结果便为真。

41.D 解析:数据完整性一般包括实体完整性、域完整性和参照完整性等。通过字段的有效性规则,可进一步保证域完整性。

42.D 解析: 在SQL语句中,显示满足条件的几项记录的关键字是TOP,排序短语是ORDER BY,且TOP短语要与ORDER BY短语同时使用才有效。

43.C 解析: 默认情况下,UNION检查组合的结果并删除重复行,要组合多个UNION子

29

句,可使用括号。ALL防止UNION删除组合结果中的重复行,但在SQL语句中不能用UNION来组合子查询,两个SELECT命令的查询结果中的列数必须相同,且对应列必须有相同的数据类型和宽度。

44.A 解析: 函数SUBSTR()是从源字符串取子字符串函数,需要指明位置和个数,如果不指明个数则取到最后;RIGHT()是从源字符串右侧取指定个数的子字符串;$是字符串包含测试运算符。

45. D 解析: 使用SQL SELECT可以对查询结果进行排序,排序的短语是ORDER BY。选项A)和B)属于语法错误,选项C)中的GROUP BY短语的功能是对查询结果进行分组。使用SELECT-SQL可以实现显示部分结果,需结合TOP短语。

46.C 解析: 进行空值查询时,要使用\IS NULL\,而\=NULL\是无效的,因为空值不是一个确定的值,所以不能使用\=\这样的运算符进行比较。

47.C 解析: 求平均分需要使用AVG函数。由于查询每门课程的平均分,所以需要对课程进行分组,由于课程名可能出现重名,因此分组依据为课程编号。使用AS短语,可将\成绩\字段名重新命名为\平均分\作为新的字段名,用于显示查询结果。

48.D 解析: 利用GROUP BY短语根据课程名字段,分组统计选修课程在2门以下(包括2门)的学生记录,显示课程名、开课院系和选修人数。其中HAVING字句用于选课门数的判断。

49.D 解析: 定义和修改表的有效性规则和错误信息提示,可使用如下命令格式: ALTER TABLE TableName1 ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET CHECK lExpression2[ERROR cMessageText2]]

50.D 解析: 在SQL的数据定义功能中,可以对视图进行定义,语句格式为: CREATE VIEW view_name[(column_name[,column_name]...)] AS select_statement 51.B 解析: SQL是一种高度非过程化的语言,选项A),C),D)都属于SQL语言的重要特点。

52.A 解析: 在SQL查询语句中,利用ORDER BY短语可以对查询的结果进行排序。包括升序(ASC)和降序(DESC)两种,系统默认的为升序排列,如果要降序排列,必须加参数\DESC\。

53. B 解析: BETWEEN...AND...是SQL查询语句中的一个特殊运算,意思为\?和?之间\,相当与逻辑与运算中的(A>=AND>=B ,其中A>B)。 54.C 解析:SELECT用于实现关系的投影操作,使用时将所选的字段名放在SELECT之后,多个字段名间用逗号隔开。WHERE用于实现关系的选择操作,FROM指定查询数据的来源,GROUP BY用于实现分组。

55.B 解析:SQL中的INSERT命令每次只能在表末尾插入一条记录,相当于APPEND BLANK命令一样,在表末尾追加一条记录,只不过APPEND BLANK只能追加一条空记录,而INSERT可以将记录值同时追加到表中。 56.A 解析:BETWEEN...AND...是SQL查询语句中的一个特殊运算符,意思为\?和?之间\,相当与逻辑运算中的(A>= AND >=B,其中A>B),选项B)中数值放置错误,选项C)和选项D)为语法错误。

57.D 解析:在SQL语句中,查询结果不管是输入到临时表或永久性表中,用于存放查询输出的新表表名不能与原表表名相同,否则提示出错信息。

58.B 解析:本该SQL语句是查找外币持有数量大于1500的人员姓名、外币名称和持有数量的信息,并按持有数量降序排列,当持有数相同时,按姓名升序排列。查询结果中,张三、刘剑和王芳的持有数都是1500,再按姓名升序排列,最后一条记录应为选项B)

59.A 解析:本小题中数值求和需要利用MAX( )函数,COUNT( )是统计函数,只

30

能统计记录个数,另外需要注意的是查询条件的设置以及联接。

60.B 解析:SQL语句中,利用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...] WHERE Condition

选项A)中的更新数据语法错误,指定新的记录值,应使用SET短语,选项C)和选项D)中的更新条件连接错误,应使用OR逻辑运算符。 二、填空题

1.命令交互 程序

解析: SQL语言是一种一体化语言,语言非常简洁,是高度非过程化的语言,它不仅可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。 2.选课表 B B.学生号=\解析: SQL不仅可以对多个关系进行联接操作,也可以将同一关系与其自身进行联接。在自联接操作中,别名必不可少的,别名是在FROM短语中定义的,格式为<关系名> <别名>。 3.SET 工资=工资+30

解析: 在SQL语句中,使用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...] WHERE Condition 4.WHERE

解析:SQL SELECT语句中的WHERE用来进行查询条件的筛选,相当于关系的选择操作。 5.LIKE 星号或 *

解析: SQL SELECT语句中,字符串匹配运算符用LIKE表示,属于特殊运算符,通配符\*\表示0个或多个字符,\?\表示一个字符。 6.TOP ORDER BY

7. 院系=\文学系\课程名=\计算机\学生表.学号=选课表.学号 解析: 本题为SQL简单的联接查询,注意两表联接的关键--\学生表.学号=选课表.学号\。

8.COUNT(*)或COUNT(成绩) 课程名=\计算机\

解析: 本题为SQL简单的计算查询,SQL中用于统计数量的函数为COUNT() 9.DROP TABLE

解析: 在SQL语句中,利用DROP TABLE <表文件名>可删除数据表文件。 10.成绩表 HAVING 解析: 本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。 11.DROP CHECK 解析: 删除字段有效性规则,可使用DROP CHECK短语直接进行删除。

12.COUNT(学号) 课程号

解析: 本题中使用SQL分组统计的功能,统计选课表中每门课程的学生人数,分组依据为课程号。

13.COLUMN 解析:在SQL语句中,给表增加字段的关键字是ADD [COLUMN],其中COLUMN短语为可选的。

14. 结构化查询 查询

解析: SQL是结构化查询语言Structured Query Language的缩写。查询是SQL语言的重要组成部分。

15.INTO TABLE或 INTO DBF

31

解析: 在SQL语句中,查询结果可以保存到数组中,也可以保存到临时文件、永久性表等文件中,保存到永久性表中必须使用关键字INTO TABLE。 16.DISTINCT

解析: SQL语句中,为了避免查询到重复记录,可使用DISTINCT短语,但是每一个子句中只能使用一次DISTINCT。

17. LIKE

解析: SQL SELECT语句中,字符串匹配运算符用LIKE表示,属于特殊运算符,通配符\*\表示0个或多个字符,\?\表示一个字符。 18.DELETE 解析: 在SQL语句中,利用DELETE语句可以删除表中满足要求的记录,但同样是逻辑删除,要进行物理删除,必须再使用PACK命令 19.ALTER 学号 C(4)

解析: 在SQL语句中,ALTER可以用来修改已有的字段,该子句不能用来新增一个字段。 20.数据定义 数据操纵 解析: SQL包括数据查询、数据定义、数据操纵和数据控制功能,由于Visual FoxPro自身在安全控制方面的缺陷,所以它没有提供数据控制功能。

21.PRIMARY KEY DEFAULT 解析: SQL语句可定义表结构,除建立表的基本功能,还包括满足实体完整性的主关键字(主索引)、定义域完整性的CHECK约束及出错提示信息ERROR、定义默认值DEFAULT等。 22.BETWEEN...AND... IN

解析:SQL中可包含特殊运算符,其中用来定义一个区间范围的运算符是BETWEEN...AND...,检查一个属性值是否属于一组给定的值中的特殊运算符是IN,即包含测试。

23.学生成绩 LIKE 解析:利用SQL查询记录时,可以使用通配符\*\,表示0个或多个任意字符,特殊运算符LIKE在此处为字符串匹配运算符。

24.IN student,coure student.学号=coure.学号

解析:本小题为SQL的嵌套查询,通过内层查找符合条件的记录集合,在通过外层查询检索该集合中相同的记录值,使用的特殊运算符为IN(包含运算) 25.COUNT(*) GROUP BY 班级名称

解析:检索每个班级人数时,必须对记录分组,同时需要利用统计函数COUNT( )进行人数统计,SUM( )是数值求和函数,此处容易弄混淆。

26.UPDATE ALTER

解析: 修改表中数据的功能,属于SQL操作中的数据更新功能(UPDATE),修改表结构属于SQL的定义功能,关键字为ALTER。 27.TO FILE

解析: 在SQL语句中,查询结果可以保存到数组中,也可以保存到临时文件、永久性表等文件中,保存到文本文件必须使用关键字TO FILE。 28.ALTER ADD

解析: SQL中修改列,即修改表中字段名的短语是ALTER,增加列的短语是ADD。 29.TOP ASC

解析: 在SQL语句中,显示满足条件的几项记录的关键字是TOP,排序短语是ORDER BY,且TOP短语要与ORDER BY短语同时使用才有效,ASC为升序关键字。 30.SOME

32

第4章 结构化程序设计基础

1.结构化程序设计的3种结构是( )

A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构

2.在INPUT、ACCEPT和WAIT三个命令中,必须要以回车键表示输入结束的命令是( )

A)INPUT、ACCEPT B)INPUT、WAIT

C)ACCEPT、WAIT D)INPUT、ACCEPT和WAIT 3.执行如下程序,最后S的显示值为( )

SET TALK OFF S=0 I=5 X=11

DO WHILE S<=X S=S+I I=I+1 ENDDO ?S

SET TALK ON

A)5 B)11 C)18 D)26

4.在VISUAL FOXPRO中,如果希望跳出SCAN…ENDSCAN循环体、执行ENDSCAN后面的语句,应使用( )

A) LOOP语句 B) EXIT语句

C) BREAK语句 D) RETURN语句 5.CLEAR

SET TALK OFF

STORE 1 TO I,A,B DO WHILE I<=3

DO PROG1

??\I=I+1 ENDDO ??\RETURN

PROCEDURE PROG1 A=A*2 B=B+A SET TALK ON

RETURN

程序的运行结果为( )

A)P(1)=2,P(2)=3,P(3)=4,B=15 B)P(1)=2,P(2)=4,P(3)=6,B=8

33

C)P(1)=2,P(2)=4,P(3)=6,B=18

D)P(1)=2,P(2)=4,P(3)=8,B=15

6.如果主程序、子程序1、子程序2、子程序3依次调用,在子程序3中有RETURN TO MASTER语句,则由子程序3返回 ( )

A)主程序 B)子程序1 C)子程序2 D)子程序3 7.在DO WHILE-ENDDO的循环结构中,下列叙述正确的是( )

A)循环体中的LOOP和EXIT语句的位置是固定的

B)在程序中应加入控制循环结束的语句

C)执行到ENDDO时,首先判断表达式的值,然后再返回DO WHILE语句 D)循环体中的LOOP语句为跳出循环体 8.下列关于过程文件的说法中,错误的是( )

A)过程文件的建立需使用MODIFY COMMAND命令 B)过程文件的默认扩展名为.PRG

C)在调用过程文件中的过程之前不必打开过程文件 D)过程文件只包含过程,可以被其他程序所调用 9.设有如下程序文件:

SET TALK OFF CLEAR

DIMENSION A(2,3) I=1

DO WHILE I<=2 J=1

DO WHILE J<=3 A(I,J)=I+J ??A(I,J) J=J+1 ENDDO ? I=I+1 ENDDO

SET TALK ON RETURN

执行此程序,程序的运行结果为( )

A)2 3 4 B) 1 2 3 C) 1 2 3 D)2 3 4 3 4 5 3 4 5 2 4 6 4 5 6

10.下列关于参数传递的说法中,正确的是( )

A)当实参的数量少于形参的数量时,多余的形参初值取逻辑假.F. B)当实参的数量大于形参的数量时,多余的实参被忽略 C)实参和形参的数量必须相等

D)答案A、B均正确

11.在VISUAL FOXPRO中,根据变量的作用域来分,内存变量可分为( ) A)私有变量和局部变量 B)公共变量和私有变量

C)公共变量和局部变量 D)公共变量、私有变量和局部变量 12.下列关于接收参数和传送参数的说法中,正确的是( )

34

A)接收参数的语句PARAMTERS可以写在程序中的任意位置

B)通常传送参数的语句DO-WITH和接收参数的语句PARAMETERS不必搭配成队, 可以单独使用

C)传送参数和接收参数排列顺序和数据类型必须一一对应 D)传送参数和接收参数的名字必须相同 13.下列叙述中,正确的是( )

A)在命令窗口中被赋值的变量均为局部变量

B)在命令窗口中用PRIVATE命令说明的变量均为局部变量

C)在被调用的下级程序中用PUBLC命令说明的变量都是全局变量 D)在程序中用PRIVATE命令说明的变量均为全局变量 14.执行下列程序后,屏幕上显示的结果是( )

X=2 Y=3 ?X,Y DO SUB1 ??X,Y

PROCEDURE SUB1 PRIVATE Y X=4 Y=5

RETURN

A)2 3 4 5 B)2 3 4 3 C)4 5 4 5 D)2 3 2 3 15.设班级号字段为字符型,下面程序的运行结果是( )

USE 学生表

INDEX ON 班级号 TO BJH

SEEK \

DO WHILE NOT EOF()

DISPLAY SKIP ENDDO

A)屏幕上显示学生表中所有班级号为1002的记录

B)屏幕上显示学生表中从班级号1002开始一直到表末尾的所有记录 C)屏幕上显示学生表中的所有记录 D)程序出错

16.下列叙述中,正确的是 ( )

A)INPUT命令只能接受字符串

B)ACCEPT命令只能接受字符串

C)ACCEPT命令可以接收任意类型的VISUAL FOXPRO表达式 D)WAIT只能接收一个字符,且必须按ENTER键

17.在指定范围内扫描数据表文件,查找满足条件的记录并执行循环体中其他的语句,最合适的循环语句是( )。 A)DO WHILE-ENDDO B)DO CASE-ENDCASE

C)SCAN-ENDSCAN D)FOR-ENDFOR 18.有如下程序:

35

X=10

M=2 N=3

DO SUB1 WITH M,N DO SUB1 WITH M,N PROCEDURE SUB1 PARAMETERS M,N X=M+10 M=M+N ?X,M,N

ENDPROC

执行程序后,屏幕中的输出结果为 ( )

A)1253 B)1283 C)1253 D)1223

1283 1583 1583 1283

19.下列程序实现的功能是 ( )

USE 学生表

DO WHILE NOT EOF()

IF 计算机>=60

SKIP LOOP ENDIF

DISPLAY SKIP ENDDO USE

A)显示所有计算机成绩大于等于60的学生记录 B)显示所有计算机成绩小于60的学生记录

C)显示第一条计算机成绩大于等于60的学生记录 D)显示第一条计算机成绩小于60的学生记录

20.若将过程或函数放在单独的程序文件中,可以在应用程序中使用 ( )A)SET PROGRAM TO B)SET FUNCTION TO C)SET ROUTINE TO D)SET PROCEDURE TO 21.在运行下列程序后,屏幕上显示的结果是 ( )

STORE 10 TO X,Y,Z

DO PROC1 WITH (X),Y ?X,Y,Z PROCEDURE PROC1 PARAMETER M,N M=M+10 N=N+10

RETURN

A)10 10 10 B)10 20 10 C)10 20 20 D)10 10 20 22.下列程序段的输出结果是( )

36

CLEAR

STORE 10 TO A STORE 20 TO B

SET UDFPARMS TO REFERENCE DO SWAP WITH A,(B) ?A,B

PROCEDURE SWAP PARAMETERS X1,X2 TEMP=X1 X1=X2

X2=TEMP ENDPROC

A)1020 B)2020 C)2010 D)1010

23.使用调试器调试上一小题的程序,如果想在过程SWAP执行时观察X1的值,可以在其 中安置一条命令,程序执行到该命令时,系统将计算X1的值,并将结果在调试输出窗口 中显示,这条命令的正确写法是( )

A)DEBUGOUT X1 B)DEBUG X1 C)OUT X1 D)TEST X1 24.假定用户名和口令存储在自由表\口令表\中,当用户输入用户名和口令并单击\登录\按钮时,若用户名输入错误,则提示\用户名错误\;若用户名输入正确,而口令输入错误,则提示\口令错误\。若命令按钮\登录\的CLICK事件中的代码如下:

USE口令表

GO TOP FLAG=0

DO WHILE.NOT.EOF()

IF ALLTRIM(用户名)= =ALLTRIM(THISFORM.TEXT1.VALUE)

IF ALLTRIM(口令)= =ALLTRIM(THISFORM.TEXT2.VALUE)

WAIT\欢迎使用\ELSE

WAIT\口令错误\ENDIF FLAG=1 EXIT ENDIF SKIP

ENDDO

IF ____________

WAIT\用户名错误\ENDIF

则在横线处应填写的代码是( )

A)FLAG=-1 B)FLAG=0 C)FLAG=1 D)FLAG=2 25.下列程序段的功能是( )

CLOSE DATA A=0

USE 医生信息

37

GO TOP

DO WHILE.NOT.EOF()

IF 职称=\主任医师\ .OR. 职称=\副主任医师\

A=A+1 ENDIF SKIP

ENDDO ?A

A)查找职称为“主任医师”的医生数 B)查找职称为“副主任医师”的医生数

C)查找职称为“主任医师”或“副主任医师”的医生数 D)查找职称不是“主任医师”或“副主任医师”的医生数

26.使用\调试器\调试程序时,用于显示正在调试的程序文件的窗口是 ( )

A)局部窗口 B)跟踪窗口 C)调用堆栈窗口 D)监视窗口 27.不能改变Visual FoxPro当前文件夹的是( )

A)CD B)CHDIR C)SET DEFAULT TO D)RD 28.函数FILE()的自变量类型为( )

A)字符型 B)数值型 C)逻辑性 D)任何类型 29.函数FILE()的结果数据类型为( )

A)字符型 B)数值型 C)逻辑性 D)任何类型 30.如下方法可以显示系统当前时间的是 ( )

A)? DATE() B)? DATETIME() C)? TIMEDATE() D)SET CLOCK ON 二、填空题

1.结构化程序设计包含3种基本控制结构,其中SCAN-ENDSCAN语句属于 结构。 2.在DO CASE-ENDCASE语句中,可使用 短语直接跳出该分支语句。 3. 使用 命令可以定义一个过程的开始。 4. 下列程序的运行结果是 。

X=\医学计算机技术\

Y=\

L=LEN(X)

DO WHILE L>=1

Y=Y+SUBSTR(X,L-1,2) L=L-2

ENDDO ?Y

5.下列程序的功能是计算S=1!+2!+?+10!的值,完成程序填空。

S=0

FOR N=1 TO 10 P=1

FOR I=1 TO N ENDFOR

38

ENDFOR

?\

6.学生表中有字段:姓名、计算机和班级号,下列程序是查询并显示所有班级号为\1002\

的学生记录,完成程序填空。 USE 学生表

DO WHILE IF 班级号=\DISPLAY ENDIF

ENDDO USE

7.如下程序段的输出结果是 。

i=1

DO WHILE i<10

i=i+2

ENDDO ? i

8.在Visual FoxPro中如下程序的运行结果(即执行命令DO main后)是 。

*程序文件名:main.prg SET TALK OFF CLOSE ALL CLEAR ALL

mX=\mY=\技术\DO s1 ?mY+mY

RETURU

*子程序文件名:s1.prg PROCEDURE s1

LOCAL mX

mX=\考试\

mY=\医学计算机\RETURN

9.如下程序显示的结果是________。

S=1

I=0

DO WHILE I<8 S=S+I I=I+2

ENDDO

? S

10. 如下程序的执行结果是________。

SET DATE TO YMD

39

SET CENTURY ON

SET CENTURY TO 19 ROLLOVER 10 SET MARK TO “.” ? CTOD(“49-10-01”)

答案及解析

一、选择题

1.D 【解析】顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的3种基本结构。

2.A 【解析】WAIT命令只能接收单个字符型数据,可以在用户输入一个字符后自动结束该命令。

3.C 【解析】 该循环语句中,变量S和I每次执行循环后值的变化如下:

S值 I值第一次循环 5 6,第二次循环 11 7,第三次循环 18 8,程序在第四次执行循环时,因条件(18<=11)为假而退出循环。 4.B

5.D 【解析】 本题中共调用了3次子程序,A的值每执行一次便乘以2,B的值每执行一次变加上一次A的值。

6.A 【解析】如果在返回语句中加入了选项TO MASTER,那么在执行程序嵌套时,它们的返回次序将被改变。子程序3中加入选项TO MASTER,则它们的返回次序将是由子程序2直接返回到主程序,并不是按子程序3,2,1的次序再返回到主程序。

7.C 【解析】LOOP语句用来结束循环体的本次执行,重新返回到DO WHILE处判断条件;EXIT则直接跳出循环体,执行ENDDO后面的语句,这两个语句在循环体中的位置并不是固定的。

8.C 【解析】建立和修改过程文件都可以使用MODIFY COMMAND命令,默认的扩展名为.PRG。PROCEDURE命令表示一个过程的开始,并命名过程,若过程文件只包含过程,调用过程文件中的过程之前必须打开过程文件,可使用SET PROCEDURE TO打开该过程文件。

9.A 【解析】该程序首先定义一个二维数组A(2,3),然后利用DO WHILE-ENDDO嵌套循环将每个数组元素赋值,即将该数组元素的行下标和列下标之和赋值给对应元素。

10.A 【解析】形参的数目不能少于实参的数目,否则系统会产生运行时错误;当形参的数量大于实参的数量时,多余的形参初值取逻辑假.F.。

11.D 【解析】变量的一个重要属性是作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在VISUAL FOXPRO中,可分为公共变量、私有变量和局部变量3类。 12.C 【解析】接收参数的语句PARAMTERS,应该是模块程序的第一条可执行命令,在调用模块程序时,必须和语句PARAMTERS语句搭配使用,发送参数和接收参数的名字可以不一样,但排列顺序和数据类型必须一一对应。

13.C 【解析】在命令窗口中,只有LOCAL说明的变量才是局部变量,且无论在哪一层程序中,只要PUBLC说明的变量均是全局变量。

14.C 【解析】主程序中有两个变量X,Y,未指定类型默认为PUBLIC,第一个?X,Y语句先显示X,Y的值为2,3,然后调用SUB1程序,在SUB1中,使用了两个与主程序同名的变量X,Y,变量Y被定义为私有变量,这样,Y值的变化不会被反映到主程序的Y中,而X的值默认为PUBLIC。

15.B 【解析】程序中INDEX短语已将记录按班级建立索引,这样,表中的所有记录已按班级顺序逻辑排序,执行SEEK \1002\后,记录指针定位到班级号为1002的第一条记录上,而循环结构中则是从当前记录一直处理即显示到表文件尾的所有记录。

40

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

Top