第1章 数据库系统概述
1.1 基础知识练习
1.1.1 选择题
1. 存储在计算机内、有结构的相关数据的集合称为______。
A. 数据库
C. 数据库管理系统
【答案】A
2. 数据库DB 、数据库系统DBS 和数据库管理系统DBMS 之间的关系是________。
A. DBMS包括DB 和DBS B. DBS包括DB 和DBMS
C. DB包括DBS 和DBMS D. DB、DBS 和DBMS 是平等关系
【答案】B
3. ________是处理数据库存取和各种管理控制的软件系统,是数据库系统的中心枢纽。
A. DB B. DBMS C. DBAS
【答案】B
4. 下列关于数据库系统的叙述中,正确的是________。
A. 数据库系统只是比文件系统管理的数据更多
B. 数据库系统中数据的一致性是指数据类型一致
C. 数据库系统避免了数据冗余
D. 数据库系统减少了数据冗余
【答案】D
5. 能唯一标识实体的是________。
A. 属性 B. 域 C. 码 D. 联系
【答案】C
6. Visual FoxPro是一种关系数据库管理系统,所谓关系是指________。
A. 表中各条记录彼此之间有一定的关系
B. 表中各个字段彼此之间有一定的关系
C. 一个表与另一个表之间有一定的关系
D. 数据模型符合满足一定条件的二维表格式
【答案】D
7. 如果一个部门有若干职员,每个职员只能属于某一个部门,则部门和职员两个实体之间的联系属于________。
A. 一对一联系 B. 一对二联系 C. 多对多联系 D. 一对多联系。
【答案】D
8. 在数据库设计中,将E-R 图转换为关系模式是在________阶段。
A. 需求分析 B. 概念设计
【答案】C
9. 在关系中将年龄字段的值限制在15-30岁之间的这种约束属于________。
A. 实体完整性约束 B. 域完整性约束
C. 参照完整性约束 D. 视图完整性约束 C. 逻辑设计 D. 物理设计 D. DML B. 数据库系统 D. 数据结构
【答案】B
10. 下列叙述中正确的是________。
A. 数据库系统是一个独立的系统,不需要操作系统的支持
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库管理系统就是数据库系统
D. 以上三种说法都不对
【答案】B
11. 如果把学生看作实体,某个学生的姓名叫“王刚”,则“王刚”应看成________。
A. 记录型 B. 记录值
C. 属性型 D. 属性值
【答案】D
12. 在概念模型中,一个实体相对于关系数据库中一个关系中的一个________。
A. 属性
C. 列
【答案】B B. 元组 D. 字段
1.1.2 填空题
1.存储在计算机中的数据包括________和________两方面。
【答案】数据内容,数据形式
2.数据处理技术大致经历的三个发展阶段是________、_________和________。
【答案】人工管理阶段,文件系统管理阶段,数据库系统管理阶段
3.数据库系统是由________、________、________和_______组成的具有高度组织性的总体。
【答案】计算机系统,数据库,数据库管理系统,有关人员
4.用实体名及其属性名集合来抽象和刻画同类实体称为_______。
【答案】实体型
5.数据模型不仅表示反映事物本身的数据,而且表示________。
【答案】事物之间的联系
6.用二维表的形式来表示实体之间联系的数据模型叫做________。
【答案】关系模型
7.在关系数据模型中,二维表的列称为________,二维表的行称为________。
【答案】属性,记录
8.对关系进行选择、投影或连接运算之后,运算的结果仍然是一个________。
【答案】关系
9.在关系数据库的基本操作中,从表中选出满足条件的元组的操作称为________;从表中抽取属性值满足条件的列的操作称为________;把两个关系中相同属性的元组连接在一起构成新的二维表的操作称为________。
【答案】选择,投影,连接
10.E-R 图中实体间的________联系必须转换为一个独立的关系模式。
【答案】多对多
第2章 Visual FoxPro 6.0基础
2.1 基础知识练习
2.1.1 选择题
1. _________是V isual FoxPro中专门用来输入各种命令的区域。
A. 主窗口 B. 命令窗口 C. 菜单栏 D. 工具栏
【答案】B
2. “项目管理器”的“数据”选项卡用于显示和管理________。
A. 数据库、自由表和查询 B. 数据库、视图和查询
C. 数据库、自由表、查询和视图 D. 数据库、表单和查询
【答案】C
3. “项目管理器”的“文档”选项卡用于显示和管理________。
A. 表单、报表和查询 B. 数据库、表单和报表
C. 查询、报表和视图 D. 表单、报表和标签
【答案】D
4. 利用VFP 中的________可以帮助用户高效方便地创建表、表单等文件。
A. 设计器 B. 向导 C. 生成器 D. 工具栏
【答案】A
5. 在以下四组函数运算中,结果相同的是________。
A. LEFT("Visual FoxPro",6)与SUBSTR("Visual FoxPro",1,6)
B. YEAR(DATE())与SUBSTR(DTOC(DATE()),7,2)
C. VARTYPE("36-5*4")与V ARTYPE(36-5*4)
D. 假定A="this ",B="is a string",A-B与A+B
【答案】A
6. 在下面的V isual FoxPro表达式中,不正确的是________。
A. {^2008-12-01 10:10:10AM}-10 B. {^2008-12-01}-DATE()
C. {^2008-12-01}+DATE() D. [^2008-12-01]+[1000]
【答案】C
7. 在下列函数中,函数值为数值的是________。
A. AT('人民' ,' 中华人民共和国') B. CTOD('01/01/96')
C. BOF() D. SUBSTR(DTOC(DATE()),7)
【答案】A
8. 已知D1和D2为日期型变量,下列4个表达式中非法的是________。
A. D1-D2
【答案】D B. D2-36 C. D1+28 D. D1+D2
9. 函数INT(数值表达式) 的功能是________。
A. 按四舍五入取数值表达式值的整数部分
B. 返回数值表达式值的整数部分
C. 返回不大于数值表达式值的最大整数
D. 返回不小于数值表达式值的最小整数
【答案】B
10. 在下面的V isual FoxPro表达式中,运算结果是逻辑真的是________。
A. EMPTY(.NULL.) B. LIKE("ABC","AC?")
C. AT("A","123ABC") D. EMPTY(SPACE(2))
【答案】D
11. 设D=5>6,V ARTYPE(D)的输出值是________。
A. N
【答案】C B. C C. L D. D
12. 设N=886,M=345,K="M+N",表达式1+&K的值是________。
A. 1232 B. 数据类型不匹配
C. 1+M+N
【答案】A
A. L
【答案】C D. 346 13. 如果X=10,Y="X=20",则TYPE("Y")的值是________。 . N C. C D. 出错
14. 命令?V ARTYPE (TIME ())结果是
A. C B. D C. T D. 出错
【答案】A
15. 命令?LEN (SPACE (3)-SPACE (2))的结果是
A. 1 B. 2 C. 3 D. 5
【答案】D
2.1.2 填空题
1. Visual FoxPro6.0是________位的关系型数据库管理系统。
【答案】32
2. 在命令窗口中键入命令后,按________键执行该命令。
【答案】Enter
3. 对V isual FoxPro进行环境设置除了用SET 命令外,还可以在________对话框中进行设置。
【答案】选项
4. VFP的三种工作方式是________、________和________工作方式。
【答案】菜单,命令,程序
5. VFP命令的续行符是________。
【答案】 ;
6. 在V isual FoxPro中,项目文件的扩展名是________。
【答案】PJX
7. 扩展名为.Prg 的程序文件在“项目管理器”的________选项卡中显示和管理。
【答案】代码
8. 项目管理器的“移去”按钮有两个功能:一是把文件________,二是________文件。
【答案】从项目管理器中移去,从磁盘上删除
9. 如果一个表达式中包含算术运算、关系运算、逻辑运算和函数时,则运算的优先次序是________。
【答案】函数>算术运算>关系运算>逻辑运算,
10. TYPE("10/25/08")的输出值是________。
【答案】N
11. 设工资=1200,职称="教授" ,下列逻辑表达式的值是________。
工资>1000 AND (职称="教授" OR 职称="副教授")
【答案】.T.
12. ROUND(337.2007,3)的结果是________。
【答案】337.201
13. LEN("THIS IS MY BOOK")的结果是________。
【答案】15
14. TIME()返回值的数据类型是________。
【答案】字符型
15. MOD(9,-2)的返回值为______。
【答案】-1
2.2.4 常见错误
1. 找不到变量’A ,B ’。
出错原因:变量名写错;表达式中使用了未定义的变量;两变量名之间使用中文逗号分隔;命令中的短语之间缺少空格,如CLEAR MEMORY LIKE *写成CLEAR MEMORYLIKE *。
2. 不能识别的命令谓词。
出错原因:命令字写错,如CLEAR MEMORY写成CLEAN MEMORY;在中文状态下输入命令。
3. 命令中含有不能识别的短语或关键字。
出错原因:命令中短语部分的保留字拼错,如CLEAR MEMORY 写成CLEAR MOMERY ;表达式中使用了中文括号,如:G=50*1.2+(T-50)*2.4写成G=50*1.2+(T-50)*2.4。
4. 操作符/操作数类型不匹配。
出错原因:表达式中参加运算的变量的类型不一致,如?BirthDay
5. 函数参数的值、类型或数目无效。
出错原因:类型不符合要求,如SUBS("1234",2,2)写成SUBS(1234,2,2);参数值不符合要求,如HOUR(DATETIME())写成HOUR(TIME())。
6. 参数太多。
出错原因:参数个数多于规定的个数,如SQRT(25.5)写成SQRT(25,5)。
7. 参数太少。
出错原因:参数个数少于规定的个数,如MAX(10,20)写成MAX(10.25)。
8. 文件"xxx" 不存在。
出错原因:函数名拼错,如SUBS("1234",2,2)写成SUB("1234",2,2)。
9. 命令中含有不能识别的短语或关键字。
出错原因:函数嵌套时括号不匹配,通常多右括号。如YEAR(DATE()))。
10. 日期/日期时间计算为无效值。
出错原因:日期常量格式错。如{^1980/10/01}写成{^10/01/1980}。
11. 不明确的日期/日期时间常量。
出错原因:日期常量格式错。如DTOC({^1980/10/01})写成DTOC({^19801001})。
第3章 数据库与表的基本操作
3.1 基础知识练习
3.1.1 选择题
1. 不允许记录中出现重复索引值的索引是________。
A. 主索引 B. 主索引、候选索引、普通索引
C. 主索引和候选索引 D. 主索引、候选索引和惟一索引
【答案】C
2. 要控制两个表中数据的完整性和一致性可以设置“参照完整性”,要求这两个表________。
A. 是同一个数据库中的两个表 B. 不同数据库中的两个表
C. 两个自由表 D. 一个是数据库表另一个是自由表
【答案】A
3. 在V isual FoxPro中,可以对字段设置默认值的表________。
A. 必须是数据库表 B. 必须是自由表
C. 可以是自由表或数据库表 D. 可以是自由表和数据库表
【答案】A
4. 在V isual FoxPro中,打开数据库的命令是________。
A. OPEN B. OPEN DATABASE
C. USE D. USE DATABASE
【答案】B
5. 在V isual FoxPro的数据工作期窗口,使用SET RELATION 命令可以建立两个表之间的关联,这种关联是________。
A. 永久性关联 B. 永久性关联或临时性关联
C. 临时性关联 D. 永久性关联和临时性关联
【答案】C
6. 在V isual FoxPro中,通用型字段C 和备注型字段M 在表中的宽度都是________。
A. 2个字节 B. 4个字节 C. 8个字节 D. 10个字节
【答案】B
7. 可以伴随着表的打开而自动打开的索引文件是________。
A. 单一索引文件(IDX ) B. 结构化复合索引文件
C. 复合索引文件(CDX ) D. 非结构化复合索引文件
【答案】B
8. Visual FoxPro参照完整性规则不包括________。
A. 更新规则 B. 查询规则 C. 删除规则 D. 插入规则
【答案】B
9. 在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实现的________。
A. “一方”表的主索引或候选索引,“多方”表的普通索引
B. “一方”表的主索引,“多方”表的普通索引或候选索引
C. “一方”表的普通索引,“多方”表的主索引或候选索引
D. “一方”表的普通索引,“多方”表的候选索引或普通索引
10. 不论索引是否生效,均能定位到相同记录上的命令是________。
A. GO TOP B. GO BOTTOM C. GO 6 D. SKIP
【答案】C
11. 要为当前表中所有职工增加100元工资应该使用命令________。
A. CHANGE 工资 WITH 工资+100
B. REPLACE 工资 WITH 工资+100
C. CHANGE ALL 工资 WITH 工资+100
D. REPLACE ALL 工资 WITH 工资+100
【答案】D
12. 当前已打开的学生表中有姓名、性别、出生日期等字段,要显示所有1985年出生的学生名单,应使用的命令是________。
A. LIST 姓名 FOR 出生日期=1985
B. LIST 姓名 FOR 出生日期="1985"
C. LIST 姓名 FOR YEAR(出生日期)=1985
D. LIST 姓名 FOR YEAR("出生日期")=1985
【答案】C
13. 在VFP 环境下,用LIST STRUCTURE命令显示表中每个记录的长度(总计)为60,用户实际可用字段的总宽度为________。
A. 58
【答案】B B. 59 C. 60 D. 61
14. 如果需要给当前表增加一个字段,应使用的命令是________。
A. APPEND
C. INSERT
【答案】B B. MODIFY STRUCTURE D. EDIT
15. 执行SET EXACT OFF命令后,再执行 ? "山东省"="山东" 命令的结果是________。
A. .T. B. .F. C. 0 D. 非0
【答案】A
16. 已知当前表中有60条记录,当前记录为第6条记录。如果执行命令SKIP 3后,则当前记录为第________条记录。
A. 3
【答案】D B. 4 C. 8 D. 9
17. 使用REPLACE 命令时,如果范围短语为ALL 或REST ,则执行该命令后记录指针指向________。
A. 末记录
C. 末记录的后面
【答案】C
18. 当前表中有4个数值型字段:数学、英语、计算机和总分。其中数学、英语、计算机的成绩均已录入,总分字段为空。要将所有学生的总分自动计算出来并填入总分字段中,使用命令________。
A. REPLACE 总分 WITH 高等数学+英语+计算机网络
B. REPLACE 总分 WITH 高等数学, 英语, 计算机网络
C. REPLACE 总分 WITH 高等数学+英语+计算机网络 ALL
D. REPLACE 总分 WITH 高等数学+英语+计算机网络 FOR ALL B. 首记录 D. 首记录的前面
19. 在当前表中,查找第2个女同学的记录,应使用命令________。
A. LOCATE FOR 性别="女"
B. LOCATE FOR 性别="女" NEXT 2
C. LOCATE FOR 性别="女"
CONTINUE
D. LIST FOR 性别="女" NEXT 2
【答案】C
20. 当前工资表中有108条记录,当前记录号为8,用SUM 命令计算工资总和时,若缺省范围短语,则系统将________。
A. 只计算当前记录的工资值 B. 计算前8条记录的工资和
C. 计算后8条记录的工资和 D. 计算全部记录的工资和
【答案】D
21. 在VFP 中,使用A VERAGE 命令时,表文件需要________。
A. 排序
C. 排序或建立索引 B. 建立索引 D. 以上操作都不需要
【答案】D
22. 执行SELECT 0选择工作区的结果是________。
A. 选择了0号工作区 B. 选择了空闲的最小号工作区
C. 选择了一个空闲的工作区 D. 显示出错信息
【答案】B
23. RSGZ 数据表文件按基本工资字段升序索引后,再执GO TOP命令,此时当前记录号是________。
A. 1 B. 基本工资最少的记录号
C. 0 D. 基本工资最多的记录号
【答案】B
24. 数据库文件有30条记录,当前记录号为20,执行命令LIST NEXT 5后,所显示的记录号是________。
A.21~25
【答案】D B.21~26 C.20~25 D.20~24
25. 数据库文件默认的扩展名是________。
A. .dbf B. .dbc C. .dbt
【答案】B
26. 与“DISPLAY NEXT 1”等价的命令是________。
A. LIST ALL B. LIST
【答案】C D. .fpt C. DISPLAY D. DISPLAY ALL
27. 如果某数据表为空表,则打开该表后________。
A. BOF()和EOF()均为.T. B. BOF()和EOF()均为.F.
C. BOF()=.T. EOF()=.F. D. BOF()=.F. EOF()=.T.
【答案】A
28. 使用RECALL ALL 命令________。
A. 将恢复所有被物理删除的记录
C. 将恢复所有被逻辑删除的记录
【答案】C B. 只能恢复被逻辑删除的当前记录 D. 只能恢复被物理删除的当前记录
29. 在V isual FoxPro中进行参照完整性设置时,要想设置成:当更改父表中的主关键字段或候选关键字段时,自动更改所有相关子表记录中的对应值。应选择________。
A. 限制(Restrict) B. 忽略(Ignore)
C. 级联(Cascade) D. 级联(Cascade )或限制(Restrict)
【答案】C
30. 数据库表移出数据库后,仍然有效的是________。
A. 字段的有效性规则 B. 表的有效性规则
C. 字段的默认值
【答案】D D. 结构复合索引
3.1.2 填空题
1. LIST和DISPLA Y 命令的区别在于,前者⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽,后者⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】LIST 连续不分屏显示信息;DISPLA Y 采用分屏显示信息。
2. 在数据表结构设计时,字段宽度的总计数目比⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽之和大1,这是因为系统保留了1个字节的宽度记用于⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】各字段宽度;存放逻辑删除标
3. 所谓当前表是指⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】已经打开并且正在使用的数据表
4. 设当前记录为第3条记录(没有打开任何索引文件),执行SKIP 2后,记录指针指向⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽记录,连续执行GO BOTTOM 和SKIP 两条命令后,记录指针执向⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】第5条记录;最后一条记录后面(此时EOF()函数的值为.T. )
5. ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令原来做逻辑删除,⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令用来做物理删除。
【答案】DELETE ; PACK
6. 索引文件分为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和复合索引文件,复合索引文件又分为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】单入口索引文件;结构化复合索引文件;非结构化(独立)复合索引文件
7. Visual FoxPro将表分为两种,即⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】自由表,数据表
8. 汇总命令TOTAL 的功能是分别对关键字相同的记录的数值型字段求和,并将结果存储在一个⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽中。
【答案】新数据表
9. 如果某记录的备注型字段标志显示为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽,则表明该字段不再为空。
【答案】Memo
10. 字段“定价”为数值型,如果整数部分最多为3位、小数部分为2位,那么该字段的宽度至少应为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】6位
11. 顺序查询对表的记录没有任何要求,但查找速度较慢;而索引查询要求表的记录是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽的,查找速度较快。
【答案】按索引顺序排列
12. 当前表为图书表,其中字段“分类号”为字符型,要将分类号以字母“I ”开头的记录作删除标记,可使用命令⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】DELETE FOR SUBSTR(分类号,1,1)=”I ”
13. 物理删除当前表第8条到第15条记录的命令序列是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】GO 8
DELETE NEXT 8
PACK
14. 结构复合索引文件的主名与⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽相同,它随表的打开而打开,在增删记录时会自动维护,因而使用最方便。
【答案】数据表名
15. 数据库表有4种索引类型,即⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽、普通索引、惟一索引和候选索引。
【答案】主索引
16. RSDA.DBF表中“婚否”字段为逻辑型,则显示所有已婚记录的命令为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】LIST FOR 婚否=.T.
17. 永久关系建立后存储在⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽中,只要不作删除或变更就一直保存。
【答案】数据库
18. 利用LOCA TE 命令查找到满足条件的第1条记录后,连续执行⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令即可找到满足条件的其他记录。
【答案】CONTINUE
19. 对数据库表添加新记录时,系统自动地为某一字段给定一个初始值,这个值称为该字段的_____。
【答案】默认值
20. 自由表的扩展名是_____。
【答案】DBF
3.2.5 常见错误
1. 不能加入这个表…
出错原因:将属于某个数据库的数据表添加到另一个数据库时,会发生该类错误。解决方法是将该数据表移出原数据库,再进行添加。
2. “表设计器”确定按钮、插入按钮和删除按钮不可用。
出错原因:当前数据表为“只读”方式或当前数据表为“共享”方式。解决方法:在Windows 环境下,修改数据表的属性,取消“只读”方式。以“独享”方式打开数据表的命令是:
SET EXCLUSIVE ON
USE Xsda
或者:USE Xsda EXCLUSIVE
3. 修改表结构后,无法从“表设计器”退出。
出错原因:当设置“字段校验规则”后,单击“确定”按钮保存修改时,系统将按设定的规则校验每个记录,若有不符合规则的记录,将不准退出。解决方法:在系统弹出图3-13时,单击复选框取消设置,不用规则对照现有记录。
图3-13 规则校验对话框
4. 文件‘XXX ’不存在。
出错原因:当前盘无此文件。解决方法:指定当前工作目录。
5. 文件必须以独占方式打开。
出错原因:数据表以“共享”方式打开后,执行“PACK ”永久删除时,将发生该类错误。解决方法:以“独享”方式打开数据表。如:USE Xsda EXCLUSIVE。
6. 逻辑错误:分类汇总结果不正确。
出错原因:TOTAL 语句执行前数据表未按指定关键字排序。
7. 变量找不到。
出错原因:变量名写错;当前数据表中无此字段;使用别区字段时未加别区名。
8. 文件正在使用。
出错原因:当前要打开的数据表在其他工作区已经打开了。常常发生在调试程序时,程序中途出错,由于未执行到关闭所有数据表的语句(如:CLOSE ALL),使许多数据表仍处于打开状态,当再次执行程序时发生该类错误。解决方法:在命令窗口输入命令CLEAR ALL或者CLOSE ALL。
9. 逻辑错误:关联不成功。
出错原因:父库与子库关联字段的类型不同或宽度不同;子库未在关联字段上索引或未指定关联字段为主控索引;数据表名与工作区名冲突,如:数据表名为A.dbf 与第一工作区名冲突。
第4章 查询与视图
4.1 基础知识练习
4.1.1 选择题
1. 查询设计器和视图设计器的主要区别表现在________。
A. 查询设计器有“更新条件”选项卡,没有“查询去向”选项卡
B. 查询设计器没有“更新条件”选项卡,但有“查询去向”选项卡
C. 视图设计器没有“更新条件”选项卡,有“查询去向”选项卡
D. 视图设计器有“更新条件”选项卡,也有“查询去向”选项卡
【答案】B
2. 如果要在屏幕上直接看到查询结果,“查询去向”应该选择________。
A. 屏幕 B. 浏览 C. 临时表和屏幕 D. 浏览或屏幕
【答案】B
3. 使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr 后,在命令窗口生成的命令是________。
A. OPEN QUERY zgjk.qpr B. MODIFY QUERY zgjk.qpr
C. DO QUERY zgjk.qpr D. CREATE QUERY zgjk.qpr
【答案】B
4. 只有满足联接条件的记录才包含在查询结果中,这种联接为________。
A. 左联接 B. 右联接 C. 内部联接 D. 完全联接
【答案】C
5. 修改本地视图使用的命令是________。
A. CREATE SQL VIEW B. MODIFY VIEW
C. RENAME VIEW D. DELETE VIEW
【答案】B
6. 以下关于查询的描述正确的是________。
A. 不能根据自由表建立查询 B. 只能根据自由表建立查询
C. 只能根据数据库表建立查询 D. 可以根据数据库表和自由表建立查询
【答案】D
7. 以下关于视图的描述正确的是________。
A. 不能根据自由表建立视图 B. 只能根据自由表建立视图
C. 只能根据数据库表建立视图 D. 可以根据数据库表和自由表建立视图
【答案】D
8. 查询设计器中包括的选项卡有________。
A. 字段、筛选、排序依据 B. 字段、条件、分组依据
C. 条件、排序依据、分组依据 D. 条件、筛选、杂项
【答案】A
9. 在SQL 查询时,使用WHERE 子句指出的是________。
A. 查询目标 B. 查询结果 C. 查询条件 D. 查询视图
【答案】C
10. DELETE FROM S WHERE 年龄>60语句的功能是________。
A. 从S 表中彻底删除年龄大于60岁的记录
B. S表中年龄大于60岁的记录被加上删除标记
C. 删除S 表
D. 删除S 表的年龄列
【答案】B
11. UPDATE-SQL 语句的功能是________。
A. 属于数据定义功能 B. 属于数据查询功能
C. 可以修改表中某些列的属性 D. 可以修改表中某些列的内容
【答案】D
12. SELECT-SQL语句是________。
A. 选择工作区语句 B. 数据查询语句
C. 选择标准语句 D. 数据修改语句
【答案】B
13. 关于INSERT-SQL 语句描述正确的是________。
A. 可以向表中插入若干条记录 B. 在表中任何位置插入一条记录
C. 在表尾插入一条记录 D. 在表头插入一条记录
【答案】C
14. 建立表结构的SQL 命令是________。
A. CREATE CURSOR B. CREATE TABLE
C. CREATE INDEX D. CREATE VIEW
【答案】B
15. 不属于数据定义功能的SQL 命令是________。
A. CREATE TABLE B. CREATE CURSOR
C. UPDATE D. ALTER TABLE
【答案】C
16. 关于视图和查询,下列说法正确的是________。
A. 对视图和查询的使用与表一样,也可以进行插入、查询、删除、修改操作
B. 视图和查询文件的扩展名都是.QPR
C. 执行查询文件可使用DO 命令
D. 在VFP 中,建立视图不会用到任何网络资源
【答案】C
17. 关于视图,下列说法错误的是________。
A. 对视图的使用与表一样,也可以进行插入、查询、删除、修改操作
B. 视图与查询一样,都以文件的形式独立存在,都可以为数据库所管理
C. 视图与表不一样,它是一种虚表,不存储数据
D. 在VFP 中,可建立本地视图和远程视图
【答案】B
18. 学生成绩表 STUDENT.dbf 的结构如下:姓名(C,8),语文(N,5,2),数学(N,5,2),英语(N,5,2),总分(N,6,2)。其中前4个字段均已有值,要求统计每位学生的总分并存入总分字段中,下列命令中不能实现的是________。
A. replace all 总分 with 语文+数学+英语
B. sum 语文+数学+英语 to 总分
C. update STUDENT set 总分=语文+数学+英语
D. scan
repl 总分 with 语文+数学+英语
endscan
【答案】B
19. 要在浏览窗口中显示表TEACHER.dbf 中所有教授和副教授的记录,下列命令中错误的是________。
A. use TEACHER
browse for 职称="教授" OR 职称="副教授"
B. select * from TEACHER where "教授"$职称
C. select * from TEACHER where 职称 in("教授", "副教授")
D. select * from TEACHER where职称="教授" AND职称="副教授"
【答案】D
20. 使用SELECT-SQL 命令建立查询时,若要将查询结果输出到一临时数据表中,需要选择使用以下________子句。
A. INTO ARRAY
C. INTO TABLE
【答案】B B. INTO CURSOR D. TO FILE
21. 视图是一个________。
A. 虚拟的表
B. 真实的表 D. 不能修改的表 C. 不依赖于数据库的表
【答案】A
22. 不属于数据定义功能的 SQL 语句是________。
A. CREATE TABLE B. CREATE VIEW
C. UPDATE D. ALTER TABLE
【答案】C
23. 在下面有关HA VING 子句描述错误的是________。
A. HAVING 子句必须与GROUP BY子句同时使用,不能单独使用
B. 使用HA VING 子句的同时不能使用WHERE 子句
C. 使用HA VING 子句的同时可以使用WHERE 子句
D. 使用HA VING 子句的作用是限定分组的条件
【答案】B
24. SQL的数据操作语句不包括________。
A. INSERT
【答案】D B. UPDATE C. DELETE D. CHANGE
25. SQL 语句中条件短语的关键字是________。
A. WHERE B. FOR C. WHILE D. CONDITION
【答案】A
26. SQL 语句中修改表结构的命令是________。
A. MODIFY TABLE
C. ALTER TABLE
【答案】C
A. DROP TABLE B. MODIFY STRUCTURE D. ALTER STRUCTURE 27. SQL 语句中删除表的命令是________。 B. DELETE TABLE
C. ERASE TABLE D. DELETE DBF
【答案】A
28. 对视图的更新是否反映在了基本表里,取决于在建立视图时是否在" 更新条件" 选顶卡中选择了________。
A. 关键字段 B. SQL UPDATE
C. 发送SQL 更新 . 同步更新
【答案】C
29. 在查询设计器的查询去向的设置中,不能实现的输出是________。
A. 表 B. 视图 C. 图形 D. 报表
【答案】B
30. 在 V isual Foxpro 6.0 中,建立查询可用________方法
A. 使用查询向导 B. 使用查询设计器
C. 直接使用SELECT-SQL 命令 D. 以上方法均可
【答案】D
31. 有关多表查询结果中,以下说法正确的是________。
A. 只可包含其中一个表的字段
B. 必须包含查询表的所有字段
C. 可包含查询表的所有字段,也可只包含查询表部分字段
D. 以上说法均不正确
【答案】C
32. 视图不能单独存在,它必须依赖于________。
A. 视图 B. 数据库
【答案】B C. 数据表 D. 查询
33. 修改本地视图使用的命令是________。
A. CREATE SQL VIEW B. MODIFY VIEW
C. RENAME VIEW D. DELETE VIEW
【答案】B
34. 下面关于查询描述正确的是________。
A. 可以使用CREA TE VIEW打开查询设计器
B. 使用查询设计器可以生成所有的SQL 查询语句
C. 使用查询设计器生成的SQL 语句存盘后将存放在扩展名为QPR 的文件中
D. 使用DO 语句执行查询时,可以不带扩展名
【答案】C
35. 下列关于查询设计器的说法中错误的是________。
A. 既可对单表查询,也可对多表查询
B. 在分组依据选项卡中,可以设置查询结果按某一字段值的升序排列
C. 可以将查询结果保存到扩展名为.qpr 的查询文件中,并可在命令窗口中直接用do 命令执行
D. 可以设定查询结果的输出形式,如临时表,图形等
【答案】B
36. 在查询设计器中已设定联接条件为STUDENT. 姓名=xscj.姓名,若要在查询结果中显示STUDENT 表中所有记录及xscj 表中满足条件的记录,则联接类型应为________。
A. 内部联接 B. 左联接
【答案】B C. 右联接 D. 完全联接
37. 下列说法中错误的是________。
A. 在数据库中,可以包含表, 视图, 查询以及表间永久关系
B. 可以通过修改视图中数据来更新数据源中数据,但查询不可以
C. 建立查询和视图时,数据表可作为数据源
D. 视图虽然具备了一般数据表的特征,但它本身并不是表
【答案】A
38. SQL语言具有两种使用方式,分别称为交互式SQL 和________。
A. 提示式SQL B. 多用户SQL C. 嵌入式SQL D. 解释式SQL
【答案】C
39. Visual FoxPro 中支持的SQL 功能不包括________。
A. 数据定义 B. 数据修改 C. 数据查询 D. 数据控制
【答案】D
40. 在SQL 语句中用语分组的短语是________。
A. ORDER BY B. AVG C. GROUP BY
【答案】C
41. 下面SQL 语句的执行结果是________。 D.SUM
SELECT SUM(工资) FROM 职工
A. 工资的最大值 B. 工资的最小值
C. 工资的平均值
【答案】D D. 工资的合计
42. SQL查询语句中ORDER BY子句的功能是________。
A. 对查询结果进行排序
C. 限定分组检索结果 B. 分组统计查询结果 D. 限定查询条件
【答案】A
43. 在VFP 系统中,查询文件的扩展名为________。
A. .DBF B. .QPR C.. .SCX
【答案】B
44. 在VFP 中,关于视图说法正确的是________。 D. .TXT
A. 视图与查询没有区别 B. 视图是一个虚表,不形成对应的磁盘文件
C. 通过视图不能修改原表 D. 只能给自由表建立视图
【答案】B
45. 在SQL 的SELECT 查询结果中,消除重复记录的方法是________。
A. 通过指定主关系键 B. 通过指定惟一索引
C. 使用DISTINCT 子句
【答案】C D. 使用HA VING 子句
46. 在查询设计器中已设定联接条件为 STUDENT. 姓名=xscj.姓名, 若要在查询结果中显示 STUDENT 表中所有记录及 xscj 表中所有的记录,则联接类型应为________。
A. 内部联接
【答案】D
47. 查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL 语句是________。
A. SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} AND 性别=”男”
B. SELECT * FROM 学生WHERE 出生日期
C. SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} OR 性别=”男”
D. SELECT * FROM 学生WHERE 出生日期
【答案】A
48. 计算刘明同学选修的所有课程的平均成绩,正确的SQL 语句是________。
A. SELECT A VG(成绩) FROM 选课WHERE 姓名=”刘明”
B. SELECT A VG(成绩) FROM 学生, 选课WHERE 姓名=”刘明”
C. SELECT A VG(成绩) FROM学生, 选课WHERE 学生. 姓名=”刘明”
D. SELECT A VG(成绩) FROM学生, 选课WHERE 学生. 学号=选课. 学号 AND 姓名=”刘明”
【答案】D
49. 假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为”101”课程的平均成绩,正确的SQL 语句是________。
A. SELECT 专业 AS SUBS(学号,3,2), 平均分 AS A VG(成绩) FROM 选课WHERE 课程号=”101” GROUP BY 专业
B. SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” GROUP BY 1
C. SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” ORDER BY 专业
D. SELECT 专业 AS SUBS(学号,3,2), 平均分 AS A VG(成绩) FROM 选课WHERE 课程号=”101” ORDER BY 1
【答案】B
50. 查询选修课程号为”101”课程得分最高的同学,正确的SQL 语句是________。
A. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号 AND 课程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课)
B. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
C. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号AND 成绩>=ANY(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
D. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号 AND 课B. 左联接 C. 右联接 D. 完全联接
程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
【答案】D
51. 插入一条记录到“选课”表中,学号、课程号和成绩分别是“02080111”、“103”和80,正确的SQL 语句是________。
A.INSERT INTO 选课 V ALUES(“02080111”,”103”,80)
B.INSERT VALUES(“02080111”,”103”,80)TO 选课(学号,课程号,成绩)
C.INSERT VALUES(“02080111”,“103”,80)INTO 选课(学号,课程号,成绩)
D.INSERT INTO 选课(学号,课程号,成绩) FORM VALUES(“02080111”, ”103”,80)
【答案】A
52. 将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL 语句是________。
A. UPDATE 选课SET 成绩WITH 92 WHERE学号=”02080110”AND 课程号=”102”
B. UPDATE 选课SET 成绩=92 WHERE学号=”02080110 AND课程号=”102”
C. UPDATE FROM选课SET 成绩WITH 92 WHERE学号=”02080110”AND 课程号=”102”
D. UPDATE FROM选课SET 成绩=92 WHERE学号=”02080110” AND 课程号=”102”
【答案】B
53. 假设同一名称的产品有不同的型号和产地, 则计算每种产品平均单价的SQL 语句是________。
A. SELECT产品名称,A VG(单价)FROM 产品GROUP BY单价
B. SELECT产品名称,A VG(单价)FROM 产品ORDERBY 单价
C. SELECT产品名称,A VG(单价)FROM 产品ORDER BY产品名称
D. SELECT产品名称,A VG(单价)FROM 产品GROUP BY产品名称
【答案】D
54. 设有s(学号, 姓名, 性别) 和sc(学号, 课程号, 成绩) 两个表,如下SQL 语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是________。
A. SELECT 学号, 姓名, 性别 FROM s WHERE EXISTS
(SELECT* FROM SC WHERE SC.学号=s.学号 AND 成绩
B. SELECT 学号, 姓名, 性别 FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE SC.学号=s.学号 AND 成绩
C. SELECT 学号, 姓名, 性别 FROM S WHERE EXISTS
(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩>85)
D. SELECT 学号, 姓名, 性别 FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩
【答案】D
55. 假设”订单”表中有订单号、职员号、客户号和金额字段, 正确的SQL 语句只能是________。
A. SELECT 职员号 FROM 订单
GROUP BY 职员号 HA VING COUNT(*)>3 AND AVG_金额>200
B. SELECT 职员号 FROM 订单
GROUP BY 职员号 HA VING COUNT(*)>3 AND AVG(金额)>200
C. SELECT 职员号 FROM 订单
GROUP ,BY 职员号 HA VING COUNT(*)>3 WHERE AVG(金额)>200
D. SELECT 职员号 FROM 订单
GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200
【答案】B
4.1.2 填空题
1. 查询设计器的“筛选”选项卡用来指定查询的________。
【答案】条件
2. 视图是在数据库表的基础上创建的一种虚拟表。所谓虚拟表是指视图的数据是从已有的数据库表或其他视图中提取的,这些数据在________中并不实际存储,仅在数据词典中存储视图的定义。
【答案】视图
3. 内部联接是指只有________的记录才包含在查询结果中。
【答案】符合条件
4. 在VFP 支持的SQL 语句中,________命令可以向表中输入记录,________命令可以检查和查询表中的内容,________命令可以修改表中的数据,________命令可以修改表的结构。
【答案】INSERT 、SELECT 、UPDA TE 、ALTER TABLE
5. 在ORDER BY排序子句的选择项中,DESC 代表________输出;省略DESC 时,代表________输出。
【答案】降序、升序
6. 在数据表GZB 中,将“职称”字段值为“副教授”的“补贴”字段的值增加800元,可使用SQL 命令为 。
【答案】UPDA TE GZB SET补贴=补贴+800 WHERE 职称=”副教授”
7. 从数据表RSGL 和RSGZ 两个表中, 查询出“编号”字段值相同的记录的全部信息, 则实现此功能的SQL 命令为____ 。
【答案】SELECT * FROM RSGL INNER JOIN RSGZ ON RSGL. 编号=RSGZ. 编号
8. 设有教师工资表SALARY .DBF ,表结构为:工号(C/10)、职称(C/5)、工资(N/7.2),用SQL 语言检索每种职称的 “职称”及平均工资的语句是(关键字必须拼写完整)。
SELECT 职称, FROM SALARY
【答案】A VG(工资) ,GROUP BY职称
9. SQL 支持集合的并运算,运算符是______________。
【答案】UNION
10. 在 SQL 语句中空值用___________表示。
【答案】NULL
11. 在V isual Foxpro中SQL DELETE命令是____________删除记录。
【答案】逻辑
12. 在SQL SELECT 中用于计算检索的函数有COUNT 、______、_______、MAX 和MIN 。
【答案】A VG ,SUM
13. SQL SELECT语句为了将查询结果存放到数组中应该使用____________短语。
【答案】INTO ARRAY
14. 查询设计器的排序依据选项卡的作用相当于SELECT 命令中的___________短语。
【答案】ORDER BY
15. 通过V isual Foxpro的视图,不仅可以查询数据表,还可以__________数据表。
【答案】更新
16. 在数据库中可以建立两种视图,分别是__________和___________。
【答案】本地视图,远程视图
17. 在查询设计器中,选择查询结果中出现字段及表达式应在______选项卡中完成, 设置查询条件应在_______选项卡中完成,该选项卡相当于SQL-SELECT 语句中的where 子句。
【答案】字段,筛选
18. 若有二个数据表stud1.dbf 、stud2.dbf ,结构分别如下:
stud1.dbf 的表结构: stud2.dbf 的表结构: 字段名 字段类型 字段长度 小数位 字段名 字段类型 字段长度 小数位 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 学号 C 6 学号 C 6
姓名 C 8 选课 C 20
性别 C 2
出生年月 D 8
总成绩 N 3
获奖次数 N 2
简历 M 4
两表的内容分别如下:
stud1.dbf 的表中的记录:
学号 姓名 出生年月 性别 总成绩 获奖次数 简历
991201 李红 08/23/71 女 89 5 Memo
991202 张红 05/12/77 女 78 6 Memo
991101
991203
991102
991301 大宝 海飞丝 诗芬 杏花村 06/17/72 男 05/12/72 男 05/18/78 女 05/12/68 男 56 4 Memo 67 7 Memo 76 5 Memo 88 6 Memo
stud2.dbf 的表中的记录:
学号 选课
991201 操作系统
991301 网页设计
991301 操作系统
991202 数据结构
991201 数据结构
991203 操作系统
991101 数据库
991102 数据库
991301 计算机网络
991202 计算机网络
1)使用SQL 命令列出表stud1.dbf 中的“获奖次数”在5次以上的男生详细信息,可使用的命令是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT *FROM STUD1 WHERE获奖次数>5 AND性别=”男”
2)为表stud1.dbf 中“获奖次数”在五次以上(含5次)的学生的总成绩加上5分,“获奖次数”在五次以下的学生的总成绩加上3分,可使用命令:
update stud1⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽总成绩=IIF(⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽, 总成绩+5, 总成绩+3)。
【答案】SET ,获奖次数>=5
3)使用SQL 命令在表stud2.dbf 中插入一条记录:学号为“991201”,选课为“VFP 程序设计”,命令是:Insert⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】INTO STUD2 VALUES (“991201”,“VFP 程序设计”)
4)使用SQL 命令查询表stud1.dbf 中的总成绩最高的学生的“学号”、“姓名”、“总成绩”信息,应使用的命令是:⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT 学号,姓名,总成绩 FROM stud1 WHERE 总成绩 =(SELECT MAX(总成绩)FROM stud1)
5)使用SQL 命令查询表stud1.dbf 中的选课是操作系统的学生的“学号”、“姓名”、“总成绩”信息,应使用的命令是:⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
SELECT 学号,姓名,总成绩 FROM stud1 WHERE 学号 IN (SELECT 学号FROM stud2 WHERE 选课=”操作系统”)
6)使用SQL 命令查询表stud1.dbf 中的总成绩前三名的学生的信息,可使用命令⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT * TOP 3 FROM STUD1 ORDER BY 总成绩 DESC
19. 在SQL 查询语句中,显示部分结果的top 短语必须要与⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽短语一起来使用。
【答案】Order By
20. 查询数据表Rsda 中职工的“职称”字段值为空值的记录的命令是:
SELECT * FROM Rsda WHERE ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
【答案】职称 IS NULL
21. 查询表Rsgz 中“实发工资”字段值在800元到1000元范围内的职工信息查询语句是:SELECT 编号, 姓名, 实发工资 FROM Rsgz ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】WHERE 实发工资 BETWEEN 800 AND 1000 或者
WHERE 实发工资>=800 AND 实发工资<=1000
22. 在SQL 命令中,LIKE 是字符串匹配运算符,其中通配符⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽可表示0个或多个字符。
【答案】%
23. 在SQL 的SELECT 查询中,HA VING 字句不可以单独使用,总是跟在⎽⎽⎽⎽⎽⎽⎽⎽子句之后一起使用。
【答案】GROUP BY
24. 在SQL 的SELECT 查询时,使用⎽⎽⎽⎽⎽⎽⎽⎽子句实现消除查询结果中的重复记录。
【答案】DISTINCT
25. SQL SELECT语句的功能是⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】数据查询
第5章 程序设计基础
5.1 基础知识练习
5.1.1 选择题
1. 连续执行以下命令之后,最后一条命令的输出结果是________。
SET EXACT OFF
X="A "
? IIF("A"=X,X-"BCD",X+"BCD")
A. A B. BCD C. A BCD
【答案】C
2. 结构化程序设计的三种基本逻辑结构是________。 D. ABCD
A. 选择结构、循环结构和嵌套结构 B. 顺序结构、选择结构和循环结构
C. 选择结构、循环结构和模块结构 D. 顺序结构、递归结构和循环结构
【答案】B
3. 在V isual FoxPro中,用于建立或修改过程文件的命令是________。
A. MODIFY COMMAND B. MODIFY
C. MODIFY PROCEDURE D. 上面A 和C 都对
【答案】A
4. 清除主窗口屏幕的命令是________。
A. CLEAR B. CLEAR ALL
C. CLEAR SCREEN
【答案】A D. CLEAR WINDOWS
5. 如果主程序、子程序1、子程序2、子程序3依次调用,在子程序3中有RETURN TO MASTER 语句,则由子程序3返回
A. 主程序 B. 子程序1 C. 子程序2 D. 子程序3
【答案】A
6. 在指定范围内扫描数据表文件,查找满足条件的记录并执行循环体中其他的语句,最合适的循环语句是
A.DO WHILE-ENDDO B.DO CASE-ENDCASE
C.SCAN-ENDSCAN D.FOR-ENDFOR
【答案】C
7. 在V isual FoxPro中,不能清除所有内存变量的命令是______。
A. RELEASE ALL B. CLEAR ALL C. CLOSE ALL
【答案】C
8. 文件的扩展名为.PRG 的文件是______。
A. 数据库文件 B. 格式文件 C. 备注文件 D. CLEAR MEMORY D. 程序文件
【答案】D
9. 若要中止部分语句执行而重新开始下一轮循环的命令是______。
A. LOOP B. EXIT
【答案】A C. SKIP D. GOTO
10. 在INPUT 、ACCEPT 和W AIT 三个命令中,必须要以回车键表示输入结束的命令是______。
A. INPUT、ACCEPT B. INPUT、WAIT
C. ACCEPT、WAIT
【答案】A D. INPUT、ACCEPT 和W AIT
11. 在DO WHILE-ENDDO 的循环结构中,下列叙述正确的是______。
A. 循环体中的LOOP 和EXIT 语句的位置是固定的
B. 在程序中应加入控制循环结束的语句
C. 执行到ENDDO 时,首先判断表达式的值,然后再返回DO WHILE语句
D. 循环体中的LOOP 语句为跳出循环体
【答案】B
12. 下列关于过程文件的说法中,错误的是______。
A. 过程文件的建立需使用MODIFY COMMAND命令
B. 过程文件的默认扩展名为.PRG
C. 在调用过程文件中的过程之前不必打开过程文件
D. 过程文件只包含过程,可以被其他程序所调用
【答案】C
13. 软件是指______。
A. 程序 B. 程序和文档
C. 算法加数据结构 D. 程序、数据与相关文档的完整集合
【答案】D
14. 下面程序计算一个整数的各位数字之和。在下划线处应填写的语句是______。 SET TALK OFF
INPUT”x=”TO x
s=0
DO WHILE x!=0
s=s+MOD(x,10)
______
ENDDO
?s
SET TALK ON
A. x=int(x/10) B. x=int(x%10) C. x=x-int(x/10) D. x=x-int(x%10)
【答案】A
15. 如果在命令窗口执行命令:LIST 名称, 主窗口中显示:
记录号 名称
L 电视机
2 计算机
3 电话线
4 电冰箱
5 电线
假定名称字段为字符型、宽度为6, 那么下面程序段的输出结果是
GO 2
SCAN NEXT 4 FOR LEFT(名称,2)=“电”
IF RIGHT(名称,2)=“线”
EXIT
ENDIF
ENDSCAN
? 名称
A. 电话线 B. 电线
C. 电冰箱 D. 电视机
【答案】A
16. 下面关于类的描述,错误的是________。
A. 一个类包含了相似的有关对象的特征和行为方法
B. 类是实例对象的抽象
C. 类并不实行任何行为操作,它仅仅表明该怎样做
D. 类可以按所定义的属性、事件和方法进行实际的行为操作
【答案】D
17. 下面关于属性、方法和事件的叙述中,错误的是________。
A. 属性用于描述对象的状态,方法用于表示对象的行为
B. 基于同一个类产生的两个对象可以分别设置自己的属性值
C. 事件代码也可以像方法一样被显式调用
D. 在新建一个表单时,可以添加新的属性、方法和事件
【答案】D
18. 现实世界中的每一个事物都是一个对象,任何对象都有自己的属性和方法。在下面关于属性的描述中,正确的是________。
A. 属性只是对象所具有的内部特征
B. 属性就是对象所具有的固有特征,一般用各种类型的数据来表示
C. 属性只是对象所具有的外部特征
D. 属性就是对象所具有的固有方法
【答案】B
19. 每个对象都可以对一个被称为事件的动作进行识别和响应。下面关于事件的描述中,错误的是________。
A. 事件是一种预先定义好的特定的动作,由用户或系统激活
B. VFP基类的事件集合是由系统预先定义好的,是惟一的
C. VFP基类的事件也可以由用户创建
D. 可以激活事件的用户动作有按键、单击鼠标、移动鼠标等
【答案】C
20. 下面关于OOP (面向对象的程序设计)的描述中,错误的是________。
A. OOP以对象及其数据结构为中心
B. OOP用“对象”表现事物,用“类”表示对象的抽象
C. OOP用“方法”表现处理事物的过程
D. OOP工作的中心是程序代码的编写
【答案】D
5.1.2 填空题
1. 下列程序的运行结果是__________。
X="计算机等级考试"
Y=""
I=LEN(X)
DO WHILE I>=1
Y=Y+SUBSTR(X,I-1,2)
I=I-2
ENDDO
?Y
【答案】试考级等机算计
2. 在DO CASE-ENDCASE 语句中,可使用__________短语直接跳出该分支语句。
【答案】EXIT
3. 结构化程序设计包含3种基本控制结构,其中SCAN -ENDSCAN 语句属于
__________结构。
【答案】循环
4. 使用__________命令可以定义一个过程的开始。
【答案】PROCEDURE 或FUNCTION
5. 下列程序的功能是计算S=1!+2!+…+10!的值,完成程序填空。
S=0
FOR N=1 TO 10
P=1
FOR I=1 TO N
__________
ENDFOR
__________
ENDFOR
?"SUM=", S
【答案】P=P*I, S=S+P
6. 学生表中有字段:姓名、计算机和班级号,下列程序是查询并显示所有班级号为"1002" 的学生记录,完成程序填空。
USE 学生表
DO WHILE__________
IF 班级号="1002"
DISPLAY
ENDIF
__________
ENDDO
USE
【答案】NOT EOF()、 SKIP
7. 输入n 的值,求1+1/2!+1/3!+1/4!+„.+1/n! ( 阶乘 n!=1*2*3*4....*(n-1)*n ) CLEAR
SUM=______
MUL=______
INPUT "请输入n 的值: " TO N
FOR i=1 TO N
FOR j=1 TO i
MUL=MUL*______
ENDFOR
SUM= SUM+___________
ENDFOR
?' 求得的总和为: ',SUM
【答案】0, 1, j, 1/mul
8. 主程序MCX2.PRG
clea
public i,j
store 1 to i,j,k
do scx2.prg
?" 主程序的输出结果:"
?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2)
cancel
子程序scx2.prg
clea
private j,k
i=i*2
j=j+1
k=j+1
?" 子程序中输出的结果:"
?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2)
return
执行结果是:___________。
【答案】
子程序中输出的结果:
i= 2 j= 2 k= 4
主程序的输出结果:
i= 2 j= 1 k= 1
9. 类是对象的集合,它包含了相似的有关对象的特征和行为方法,而________是类的实例。
【答案】对象
10. 类具有________、________和________的特征,这就大大加强了代码的可重用性。
【答案】封装、继承、多态
5.2.5 常见错误
1. 找不到变量!
2. 操作符/操作数类型不匹配!
3. 不能识别的命令谓词(命令字拼错) 。
4. 不明确的日期/日期时间常量。
5. 函数参数的值、类型或数目无效。
6. 参数太多(太少)。
7. 命令中含有不能识别的短语或关键字。
出错原因:命令中的保留字拼错,如:ACCEPT "A=" TO A写成ACCEPT "A=" TQ A;数据项之间使用了中文逗号,如:? "行李费:" ,G 。
8. 语法错误。
出错原因:命令格式错,如:ACCEPT "A=" TO A写成 ACCEPT "A=" A,或者语句中的TO 写成T 和零。
9. 嵌套错误。
出错原因:循环语句不配套。如:多ENDDO 或少ENDDO 语句;IF 语句与FOR 、DO WHILE 语句发生交叉。
10. 缺少IF|ELSE|ENDIF语句。
出错原因:分支语句不配套。如:多ENDIF 或少ENDIF 语句;IF 语句与FOR 、DO WHILE语句发生交叉。
11. 非数据表达式。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中对应变量的数据类型不匹配。如:子程序中变量的类型为N 型,而调用语句中对应变量的类型为C 型,将发生该类错误。
12. 操作符/操作数类型不匹配。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中对应变量的数据类型不匹配。
13. 必须指定额外参数。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中变量的个数不匹配。如:调用语句中变量的个数多于子程序中的PARAMETERS 中变量的个数时,将发生该类错误。
注:1—6常见错误的出错原因见第二章实验。
第1章 数据库系统概述
1.1 基础知识练习
1.1.1 选择题
1. 存储在计算机内、有结构的相关数据的集合称为______。
A. 数据库
C. 数据库管理系统
【答案】A
2. 数据库DB 、数据库系统DBS 和数据库管理系统DBMS 之间的关系是________。
A. DBMS包括DB 和DBS B. DBS包括DB 和DBMS
C. DB包括DBS 和DBMS D. DB、DBS 和DBMS 是平等关系
【答案】B
3. ________是处理数据库存取和各种管理控制的软件系统,是数据库系统的中心枢纽。
A. DB B. DBMS C. DBAS
【答案】B
4. 下列关于数据库系统的叙述中,正确的是________。
A. 数据库系统只是比文件系统管理的数据更多
B. 数据库系统中数据的一致性是指数据类型一致
C. 数据库系统避免了数据冗余
D. 数据库系统减少了数据冗余
【答案】D
5. 能唯一标识实体的是________。
A. 属性 B. 域 C. 码 D. 联系
【答案】C
6. Visual FoxPro是一种关系数据库管理系统,所谓关系是指________。
A. 表中各条记录彼此之间有一定的关系
B. 表中各个字段彼此之间有一定的关系
C. 一个表与另一个表之间有一定的关系
D. 数据模型符合满足一定条件的二维表格式
【答案】D
7. 如果一个部门有若干职员,每个职员只能属于某一个部门,则部门和职员两个实体之间的联系属于________。
A. 一对一联系 B. 一对二联系 C. 多对多联系 D. 一对多联系。
【答案】D
8. 在数据库设计中,将E-R 图转换为关系模式是在________阶段。
A. 需求分析 B. 概念设计
【答案】C
9. 在关系中将年龄字段的值限制在15-30岁之间的这种约束属于________。
A. 实体完整性约束 B. 域完整性约束
C. 参照完整性约束 D. 视图完整性约束 C. 逻辑设计 D. 物理设计 D. DML B. 数据库系统 D. 数据结构
【答案】B
10. 下列叙述中正确的是________。
A. 数据库系统是一个独立的系统,不需要操作系统的支持
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库管理系统就是数据库系统
D. 以上三种说法都不对
【答案】B
11. 如果把学生看作实体,某个学生的姓名叫“王刚”,则“王刚”应看成________。
A. 记录型 B. 记录值
C. 属性型 D. 属性值
【答案】D
12. 在概念模型中,一个实体相对于关系数据库中一个关系中的一个________。
A. 属性
C. 列
【答案】B B. 元组 D. 字段
1.1.2 填空题
1.存储在计算机中的数据包括________和________两方面。
【答案】数据内容,数据形式
2.数据处理技术大致经历的三个发展阶段是________、_________和________。
【答案】人工管理阶段,文件系统管理阶段,数据库系统管理阶段
3.数据库系统是由________、________、________和_______组成的具有高度组织性的总体。
【答案】计算机系统,数据库,数据库管理系统,有关人员
4.用实体名及其属性名集合来抽象和刻画同类实体称为_______。
【答案】实体型
5.数据模型不仅表示反映事物本身的数据,而且表示________。
【答案】事物之间的联系
6.用二维表的形式来表示实体之间联系的数据模型叫做________。
【答案】关系模型
7.在关系数据模型中,二维表的列称为________,二维表的行称为________。
【答案】属性,记录
8.对关系进行选择、投影或连接运算之后,运算的结果仍然是一个________。
【答案】关系
9.在关系数据库的基本操作中,从表中选出满足条件的元组的操作称为________;从表中抽取属性值满足条件的列的操作称为________;把两个关系中相同属性的元组连接在一起构成新的二维表的操作称为________。
【答案】选择,投影,连接
10.E-R 图中实体间的________联系必须转换为一个独立的关系模式。
【答案】多对多
第2章 Visual FoxPro 6.0基础
2.1 基础知识练习
2.1.1 选择题
1. _________是V isual FoxPro中专门用来输入各种命令的区域。
A. 主窗口 B. 命令窗口 C. 菜单栏 D. 工具栏
【答案】B
2. “项目管理器”的“数据”选项卡用于显示和管理________。
A. 数据库、自由表和查询 B. 数据库、视图和查询
C. 数据库、自由表、查询和视图 D. 数据库、表单和查询
【答案】C
3. “项目管理器”的“文档”选项卡用于显示和管理________。
A. 表单、报表和查询 B. 数据库、表单和报表
C. 查询、报表和视图 D. 表单、报表和标签
【答案】D
4. 利用VFP 中的________可以帮助用户高效方便地创建表、表单等文件。
A. 设计器 B. 向导 C. 生成器 D. 工具栏
【答案】A
5. 在以下四组函数运算中,结果相同的是________。
A. LEFT("Visual FoxPro",6)与SUBSTR("Visual FoxPro",1,6)
B. YEAR(DATE())与SUBSTR(DTOC(DATE()),7,2)
C. VARTYPE("36-5*4")与V ARTYPE(36-5*4)
D. 假定A="this ",B="is a string",A-B与A+B
【答案】A
6. 在下面的V isual FoxPro表达式中,不正确的是________。
A. {^2008-12-01 10:10:10AM}-10 B. {^2008-12-01}-DATE()
C. {^2008-12-01}+DATE() D. [^2008-12-01]+[1000]
【答案】C
7. 在下列函数中,函数值为数值的是________。
A. AT('人民' ,' 中华人民共和国') B. CTOD('01/01/96')
C. BOF() D. SUBSTR(DTOC(DATE()),7)
【答案】A
8. 已知D1和D2为日期型变量,下列4个表达式中非法的是________。
A. D1-D2
【答案】D B. D2-36 C. D1+28 D. D1+D2
9. 函数INT(数值表达式) 的功能是________。
A. 按四舍五入取数值表达式值的整数部分
B. 返回数值表达式值的整数部分
C. 返回不大于数值表达式值的最大整数
D. 返回不小于数值表达式值的最小整数
【答案】B
10. 在下面的V isual FoxPro表达式中,运算结果是逻辑真的是________。
A. EMPTY(.NULL.) B. LIKE("ABC","AC?")
C. AT("A","123ABC") D. EMPTY(SPACE(2))
【答案】D
11. 设D=5>6,V ARTYPE(D)的输出值是________。
A. N
【答案】C B. C C. L D. D
12. 设N=886,M=345,K="M+N",表达式1+&K的值是________。
A. 1232 B. 数据类型不匹配
C. 1+M+N
【答案】A
A. L
【答案】C D. 346 13. 如果X=10,Y="X=20",则TYPE("Y")的值是________。 . N C. C D. 出错
14. 命令?V ARTYPE (TIME ())结果是
A. C B. D C. T D. 出错
【答案】A
15. 命令?LEN (SPACE (3)-SPACE (2))的结果是
A. 1 B. 2 C. 3 D. 5
【答案】D
2.1.2 填空题
1. Visual FoxPro6.0是________位的关系型数据库管理系统。
【答案】32
2. 在命令窗口中键入命令后,按________键执行该命令。
【答案】Enter
3. 对V isual FoxPro进行环境设置除了用SET 命令外,还可以在________对话框中进行设置。
【答案】选项
4. VFP的三种工作方式是________、________和________工作方式。
【答案】菜单,命令,程序
5. VFP命令的续行符是________。
【答案】 ;
6. 在V isual FoxPro中,项目文件的扩展名是________。
【答案】PJX
7. 扩展名为.Prg 的程序文件在“项目管理器”的________选项卡中显示和管理。
【答案】代码
8. 项目管理器的“移去”按钮有两个功能:一是把文件________,二是________文件。
【答案】从项目管理器中移去,从磁盘上删除
9. 如果一个表达式中包含算术运算、关系运算、逻辑运算和函数时,则运算的优先次序是________。
【答案】函数>算术运算>关系运算>逻辑运算,
10. TYPE("10/25/08")的输出值是________。
【答案】N
11. 设工资=1200,职称="教授" ,下列逻辑表达式的值是________。
工资>1000 AND (职称="教授" OR 职称="副教授")
【答案】.T.
12. ROUND(337.2007,3)的结果是________。
【答案】337.201
13. LEN("THIS IS MY BOOK")的结果是________。
【答案】15
14. TIME()返回值的数据类型是________。
【答案】字符型
15. MOD(9,-2)的返回值为______。
【答案】-1
2.2.4 常见错误
1. 找不到变量’A ,B ’。
出错原因:变量名写错;表达式中使用了未定义的变量;两变量名之间使用中文逗号分隔;命令中的短语之间缺少空格,如CLEAR MEMORY LIKE *写成CLEAR MEMORYLIKE *。
2. 不能识别的命令谓词。
出错原因:命令字写错,如CLEAR MEMORY写成CLEAN MEMORY;在中文状态下输入命令。
3. 命令中含有不能识别的短语或关键字。
出错原因:命令中短语部分的保留字拼错,如CLEAR MEMORY 写成CLEAR MOMERY ;表达式中使用了中文括号,如:G=50*1.2+(T-50)*2.4写成G=50*1.2+(T-50)*2.4。
4. 操作符/操作数类型不匹配。
出错原因:表达式中参加运算的变量的类型不一致,如?BirthDay
5. 函数参数的值、类型或数目无效。
出错原因:类型不符合要求,如SUBS("1234",2,2)写成SUBS(1234,2,2);参数值不符合要求,如HOUR(DATETIME())写成HOUR(TIME())。
6. 参数太多。
出错原因:参数个数多于规定的个数,如SQRT(25.5)写成SQRT(25,5)。
7. 参数太少。
出错原因:参数个数少于规定的个数,如MAX(10,20)写成MAX(10.25)。
8. 文件"xxx" 不存在。
出错原因:函数名拼错,如SUBS("1234",2,2)写成SUB("1234",2,2)。
9. 命令中含有不能识别的短语或关键字。
出错原因:函数嵌套时括号不匹配,通常多右括号。如YEAR(DATE()))。
10. 日期/日期时间计算为无效值。
出错原因:日期常量格式错。如{^1980/10/01}写成{^10/01/1980}。
11. 不明确的日期/日期时间常量。
出错原因:日期常量格式错。如DTOC({^1980/10/01})写成DTOC({^19801001})。
第3章 数据库与表的基本操作
3.1 基础知识练习
3.1.1 选择题
1. 不允许记录中出现重复索引值的索引是________。
A. 主索引 B. 主索引、候选索引、普通索引
C. 主索引和候选索引 D. 主索引、候选索引和惟一索引
【答案】C
2. 要控制两个表中数据的完整性和一致性可以设置“参照完整性”,要求这两个表________。
A. 是同一个数据库中的两个表 B. 不同数据库中的两个表
C. 两个自由表 D. 一个是数据库表另一个是自由表
【答案】A
3. 在V isual FoxPro中,可以对字段设置默认值的表________。
A. 必须是数据库表 B. 必须是自由表
C. 可以是自由表或数据库表 D. 可以是自由表和数据库表
【答案】A
4. 在V isual FoxPro中,打开数据库的命令是________。
A. OPEN B. OPEN DATABASE
C. USE D. USE DATABASE
【答案】B
5. 在V isual FoxPro的数据工作期窗口,使用SET RELATION 命令可以建立两个表之间的关联,这种关联是________。
A. 永久性关联 B. 永久性关联或临时性关联
C. 临时性关联 D. 永久性关联和临时性关联
【答案】C
6. 在V isual FoxPro中,通用型字段C 和备注型字段M 在表中的宽度都是________。
A. 2个字节 B. 4个字节 C. 8个字节 D. 10个字节
【答案】B
7. 可以伴随着表的打开而自动打开的索引文件是________。
A. 单一索引文件(IDX ) B. 结构化复合索引文件
C. 复合索引文件(CDX ) D. 非结构化复合索引文件
【答案】B
8. Visual FoxPro参照完整性规则不包括________。
A. 更新规则 B. 查询规则 C. 删除规则 D. 插入规则
【答案】B
9. 在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实现的________。
A. “一方”表的主索引或候选索引,“多方”表的普通索引
B. “一方”表的主索引,“多方”表的普通索引或候选索引
C. “一方”表的普通索引,“多方”表的主索引或候选索引
D. “一方”表的普通索引,“多方”表的候选索引或普通索引
10. 不论索引是否生效,均能定位到相同记录上的命令是________。
A. GO TOP B. GO BOTTOM C. GO 6 D. SKIP
【答案】C
11. 要为当前表中所有职工增加100元工资应该使用命令________。
A. CHANGE 工资 WITH 工资+100
B. REPLACE 工资 WITH 工资+100
C. CHANGE ALL 工资 WITH 工资+100
D. REPLACE ALL 工资 WITH 工资+100
【答案】D
12. 当前已打开的学生表中有姓名、性别、出生日期等字段,要显示所有1985年出生的学生名单,应使用的命令是________。
A. LIST 姓名 FOR 出生日期=1985
B. LIST 姓名 FOR 出生日期="1985"
C. LIST 姓名 FOR YEAR(出生日期)=1985
D. LIST 姓名 FOR YEAR("出生日期")=1985
【答案】C
13. 在VFP 环境下,用LIST STRUCTURE命令显示表中每个记录的长度(总计)为60,用户实际可用字段的总宽度为________。
A. 58
【答案】B B. 59 C. 60 D. 61
14. 如果需要给当前表增加一个字段,应使用的命令是________。
A. APPEND
C. INSERT
【答案】B B. MODIFY STRUCTURE D. EDIT
15. 执行SET EXACT OFF命令后,再执行 ? "山东省"="山东" 命令的结果是________。
A. .T. B. .F. C. 0 D. 非0
【答案】A
16. 已知当前表中有60条记录,当前记录为第6条记录。如果执行命令SKIP 3后,则当前记录为第________条记录。
A. 3
【答案】D B. 4 C. 8 D. 9
17. 使用REPLACE 命令时,如果范围短语为ALL 或REST ,则执行该命令后记录指针指向________。
A. 末记录
C. 末记录的后面
【答案】C
18. 当前表中有4个数值型字段:数学、英语、计算机和总分。其中数学、英语、计算机的成绩均已录入,总分字段为空。要将所有学生的总分自动计算出来并填入总分字段中,使用命令________。
A. REPLACE 总分 WITH 高等数学+英语+计算机网络
B. REPLACE 总分 WITH 高等数学, 英语, 计算机网络
C. REPLACE 总分 WITH 高等数学+英语+计算机网络 ALL
D. REPLACE 总分 WITH 高等数学+英语+计算机网络 FOR ALL B. 首记录 D. 首记录的前面
19. 在当前表中,查找第2个女同学的记录,应使用命令________。
A. LOCATE FOR 性别="女"
B. LOCATE FOR 性别="女" NEXT 2
C. LOCATE FOR 性别="女"
CONTINUE
D. LIST FOR 性别="女" NEXT 2
【答案】C
20. 当前工资表中有108条记录,当前记录号为8,用SUM 命令计算工资总和时,若缺省范围短语,则系统将________。
A. 只计算当前记录的工资值 B. 计算前8条记录的工资和
C. 计算后8条记录的工资和 D. 计算全部记录的工资和
【答案】D
21. 在VFP 中,使用A VERAGE 命令时,表文件需要________。
A. 排序
C. 排序或建立索引 B. 建立索引 D. 以上操作都不需要
【答案】D
22. 执行SELECT 0选择工作区的结果是________。
A. 选择了0号工作区 B. 选择了空闲的最小号工作区
C. 选择了一个空闲的工作区 D. 显示出错信息
【答案】B
23. RSGZ 数据表文件按基本工资字段升序索引后,再执GO TOP命令,此时当前记录号是________。
A. 1 B. 基本工资最少的记录号
C. 0 D. 基本工资最多的记录号
【答案】B
24. 数据库文件有30条记录,当前记录号为20,执行命令LIST NEXT 5后,所显示的记录号是________。
A.21~25
【答案】D B.21~26 C.20~25 D.20~24
25. 数据库文件默认的扩展名是________。
A. .dbf B. .dbc C. .dbt
【答案】B
26. 与“DISPLAY NEXT 1”等价的命令是________。
A. LIST ALL B. LIST
【答案】C D. .fpt C. DISPLAY D. DISPLAY ALL
27. 如果某数据表为空表,则打开该表后________。
A. BOF()和EOF()均为.T. B. BOF()和EOF()均为.F.
C. BOF()=.T. EOF()=.F. D. BOF()=.F. EOF()=.T.
【答案】A
28. 使用RECALL ALL 命令________。
A. 将恢复所有被物理删除的记录
C. 将恢复所有被逻辑删除的记录
【答案】C B. 只能恢复被逻辑删除的当前记录 D. 只能恢复被物理删除的当前记录
29. 在V isual FoxPro中进行参照完整性设置时,要想设置成:当更改父表中的主关键字段或候选关键字段时,自动更改所有相关子表记录中的对应值。应选择________。
A. 限制(Restrict) B. 忽略(Ignore)
C. 级联(Cascade) D. 级联(Cascade )或限制(Restrict)
【答案】C
30. 数据库表移出数据库后,仍然有效的是________。
A. 字段的有效性规则 B. 表的有效性规则
C. 字段的默认值
【答案】D D. 结构复合索引
3.1.2 填空题
1. LIST和DISPLA Y 命令的区别在于,前者⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽,后者⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】LIST 连续不分屏显示信息;DISPLA Y 采用分屏显示信息。
2. 在数据表结构设计时,字段宽度的总计数目比⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽之和大1,这是因为系统保留了1个字节的宽度记用于⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】各字段宽度;存放逻辑删除标
3. 所谓当前表是指⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】已经打开并且正在使用的数据表
4. 设当前记录为第3条记录(没有打开任何索引文件),执行SKIP 2后,记录指针指向⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽记录,连续执行GO BOTTOM 和SKIP 两条命令后,记录指针执向⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】第5条记录;最后一条记录后面(此时EOF()函数的值为.T. )
5. ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令原来做逻辑删除,⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令用来做物理删除。
【答案】DELETE ; PACK
6. 索引文件分为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和复合索引文件,复合索引文件又分为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】单入口索引文件;结构化复合索引文件;非结构化(独立)复合索引文件
7. Visual FoxPro将表分为两种,即⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽和⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】自由表,数据表
8. 汇总命令TOTAL 的功能是分别对关键字相同的记录的数值型字段求和,并将结果存储在一个⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽中。
【答案】新数据表
9. 如果某记录的备注型字段标志显示为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽,则表明该字段不再为空。
【答案】Memo
10. 字段“定价”为数值型,如果整数部分最多为3位、小数部分为2位,那么该字段的宽度至少应为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】6位
11. 顺序查询对表的记录没有任何要求,但查找速度较慢;而索引查询要求表的记录是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽的,查找速度较快。
【答案】按索引顺序排列
12. 当前表为图书表,其中字段“分类号”为字符型,要将分类号以字母“I ”开头的记录作删除标记,可使用命令⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】DELETE FOR SUBSTR(分类号,1,1)=”I ”
13. 物理删除当前表第8条到第15条记录的命令序列是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】GO 8
DELETE NEXT 8
PACK
14. 结构复合索引文件的主名与⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽相同,它随表的打开而打开,在增删记录时会自动维护,因而使用最方便。
【答案】数据表名
15. 数据库表有4种索引类型,即⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽、普通索引、惟一索引和候选索引。
【答案】主索引
16. RSDA.DBF表中“婚否”字段为逻辑型,则显示所有已婚记录的命令为⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】LIST FOR 婚否=.T.
17. 永久关系建立后存储在⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽中,只要不作删除或变更就一直保存。
【答案】数据库
18. 利用LOCA TE 命令查找到满足条件的第1条记录后,连续执行⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽命令即可找到满足条件的其他记录。
【答案】CONTINUE
19. 对数据库表添加新记录时,系统自动地为某一字段给定一个初始值,这个值称为该字段的_____。
【答案】默认值
20. 自由表的扩展名是_____。
【答案】DBF
3.2.5 常见错误
1. 不能加入这个表…
出错原因:将属于某个数据库的数据表添加到另一个数据库时,会发生该类错误。解决方法是将该数据表移出原数据库,再进行添加。
2. “表设计器”确定按钮、插入按钮和删除按钮不可用。
出错原因:当前数据表为“只读”方式或当前数据表为“共享”方式。解决方法:在Windows 环境下,修改数据表的属性,取消“只读”方式。以“独享”方式打开数据表的命令是:
SET EXCLUSIVE ON
USE Xsda
或者:USE Xsda EXCLUSIVE
3. 修改表结构后,无法从“表设计器”退出。
出错原因:当设置“字段校验规则”后,单击“确定”按钮保存修改时,系统将按设定的规则校验每个记录,若有不符合规则的记录,将不准退出。解决方法:在系统弹出图3-13时,单击复选框取消设置,不用规则对照现有记录。
图3-13 规则校验对话框
4. 文件‘XXX ’不存在。
出错原因:当前盘无此文件。解决方法:指定当前工作目录。
5. 文件必须以独占方式打开。
出错原因:数据表以“共享”方式打开后,执行“PACK ”永久删除时,将发生该类错误。解决方法:以“独享”方式打开数据表。如:USE Xsda EXCLUSIVE。
6. 逻辑错误:分类汇总结果不正确。
出错原因:TOTAL 语句执行前数据表未按指定关键字排序。
7. 变量找不到。
出错原因:变量名写错;当前数据表中无此字段;使用别区字段时未加别区名。
8. 文件正在使用。
出错原因:当前要打开的数据表在其他工作区已经打开了。常常发生在调试程序时,程序中途出错,由于未执行到关闭所有数据表的语句(如:CLOSE ALL),使许多数据表仍处于打开状态,当再次执行程序时发生该类错误。解决方法:在命令窗口输入命令CLEAR ALL或者CLOSE ALL。
9. 逻辑错误:关联不成功。
出错原因:父库与子库关联字段的类型不同或宽度不同;子库未在关联字段上索引或未指定关联字段为主控索引;数据表名与工作区名冲突,如:数据表名为A.dbf 与第一工作区名冲突。
第4章 查询与视图
4.1 基础知识练习
4.1.1 选择题
1. 查询设计器和视图设计器的主要区别表现在________。
A. 查询设计器有“更新条件”选项卡,没有“查询去向”选项卡
B. 查询设计器没有“更新条件”选项卡,但有“查询去向”选项卡
C. 视图设计器没有“更新条件”选项卡,有“查询去向”选项卡
D. 视图设计器有“更新条件”选项卡,也有“查询去向”选项卡
【答案】B
2. 如果要在屏幕上直接看到查询结果,“查询去向”应该选择________。
A. 屏幕 B. 浏览 C. 临时表和屏幕 D. 浏览或屏幕
【答案】B
3. 使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr 后,在命令窗口生成的命令是________。
A. OPEN QUERY zgjk.qpr B. MODIFY QUERY zgjk.qpr
C. DO QUERY zgjk.qpr D. CREATE QUERY zgjk.qpr
【答案】B
4. 只有满足联接条件的记录才包含在查询结果中,这种联接为________。
A. 左联接 B. 右联接 C. 内部联接 D. 完全联接
【答案】C
5. 修改本地视图使用的命令是________。
A. CREATE SQL VIEW B. MODIFY VIEW
C. RENAME VIEW D. DELETE VIEW
【答案】B
6. 以下关于查询的描述正确的是________。
A. 不能根据自由表建立查询 B. 只能根据自由表建立查询
C. 只能根据数据库表建立查询 D. 可以根据数据库表和自由表建立查询
【答案】D
7. 以下关于视图的描述正确的是________。
A. 不能根据自由表建立视图 B. 只能根据自由表建立视图
C. 只能根据数据库表建立视图 D. 可以根据数据库表和自由表建立视图
【答案】D
8. 查询设计器中包括的选项卡有________。
A. 字段、筛选、排序依据 B. 字段、条件、分组依据
C. 条件、排序依据、分组依据 D. 条件、筛选、杂项
【答案】A
9. 在SQL 查询时,使用WHERE 子句指出的是________。
A. 查询目标 B. 查询结果 C. 查询条件 D. 查询视图
【答案】C
10. DELETE FROM S WHERE 年龄>60语句的功能是________。
A. 从S 表中彻底删除年龄大于60岁的记录
B. S表中年龄大于60岁的记录被加上删除标记
C. 删除S 表
D. 删除S 表的年龄列
【答案】B
11. UPDATE-SQL 语句的功能是________。
A. 属于数据定义功能 B. 属于数据查询功能
C. 可以修改表中某些列的属性 D. 可以修改表中某些列的内容
【答案】D
12. SELECT-SQL语句是________。
A. 选择工作区语句 B. 数据查询语句
C. 选择标准语句 D. 数据修改语句
【答案】B
13. 关于INSERT-SQL 语句描述正确的是________。
A. 可以向表中插入若干条记录 B. 在表中任何位置插入一条记录
C. 在表尾插入一条记录 D. 在表头插入一条记录
【答案】C
14. 建立表结构的SQL 命令是________。
A. CREATE CURSOR B. CREATE TABLE
C. CREATE INDEX D. CREATE VIEW
【答案】B
15. 不属于数据定义功能的SQL 命令是________。
A. CREATE TABLE B. CREATE CURSOR
C. UPDATE D. ALTER TABLE
【答案】C
16. 关于视图和查询,下列说法正确的是________。
A. 对视图和查询的使用与表一样,也可以进行插入、查询、删除、修改操作
B. 视图和查询文件的扩展名都是.QPR
C. 执行查询文件可使用DO 命令
D. 在VFP 中,建立视图不会用到任何网络资源
【答案】C
17. 关于视图,下列说法错误的是________。
A. 对视图的使用与表一样,也可以进行插入、查询、删除、修改操作
B. 视图与查询一样,都以文件的形式独立存在,都可以为数据库所管理
C. 视图与表不一样,它是一种虚表,不存储数据
D. 在VFP 中,可建立本地视图和远程视图
【答案】B
18. 学生成绩表 STUDENT.dbf 的结构如下:姓名(C,8),语文(N,5,2),数学(N,5,2),英语(N,5,2),总分(N,6,2)。其中前4个字段均已有值,要求统计每位学生的总分并存入总分字段中,下列命令中不能实现的是________。
A. replace all 总分 with 语文+数学+英语
B. sum 语文+数学+英语 to 总分
C. update STUDENT set 总分=语文+数学+英语
D. scan
repl 总分 with 语文+数学+英语
endscan
【答案】B
19. 要在浏览窗口中显示表TEACHER.dbf 中所有教授和副教授的记录,下列命令中错误的是________。
A. use TEACHER
browse for 职称="教授" OR 职称="副教授"
B. select * from TEACHER where "教授"$职称
C. select * from TEACHER where 职称 in("教授", "副教授")
D. select * from TEACHER where职称="教授" AND职称="副教授"
【答案】D
20. 使用SELECT-SQL 命令建立查询时,若要将查询结果输出到一临时数据表中,需要选择使用以下________子句。
A. INTO ARRAY
C. INTO TABLE
【答案】B B. INTO CURSOR D. TO FILE
21. 视图是一个________。
A. 虚拟的表
B. 真实的表 D. 不能修改的表 C. 不依赖于数据库的表
【答案】A
22. 不属于数据定义功能的 SQL 语句是________。
A. CREATE TABLE B. CREATE VIEW
C. UPDATE D. ALTER TABLE
【答案】C
23. 在下面有关HA VING 子句描述错误的是________。
A. HAVING 子句必须与GROUP BY子句同时使用,不能单独使用
B. 使用HA VING 子句的同时不能使用WHERE 子句
C. 使用HA VING 子句的同时可以使用WHERE 子句
D. 使用HA VING 子句的作用是限定分组的条件
【答案】B
24. SQL的数据操作语句不包括________。
A. INSERT
【答案】D B. UPDATE C. DELETE D. CHANGE
25. SQL 语句中条件短语的关键字是________。
A. WHERE B. FOR C. WHILE D. CONDITION
【答案】A
26. SQL 语句中修改表结构的命令是________。
A. MODIFY TABLE
C. ALTER TABLE
【答案】C
A. DROP TABLE B. MODIFY STRUCTURE D. ALTER STRUCTURE 27. SQL 语句中删除表的命令是________。 B. DELETE TABLE
C. ERASE TABLE D. DELETE DBF
【答案】A
28. 对视图的更新是否反映在了基本表里,取决于在建立视图时是否在" 更新条件" 选顶卡中选择了________。
A. 关键字段 B. SQL UPDATE
C. 发送SQL 更新 . 同步更新
【答案】C
29. 在查询设计器的查询去向的设置中,不能实现的输出是________。
A. 表 B. 视图 C. 图形 D. 报表
【答案】B
30. 在 V isual Foxpro 6.0 中,建立查询可用________方法
A. 使用查询向导 B. 使用查询设计器
C. 直接使用SELECT-SQL 命令 D. 以上方法均可
【答案】D
31. 有关多表查询结果中,以下说法正确的是________。
A. 只可包含其中一个表的字段
B. 必须包含查询表的所有字段
C. 可包含查询表的所有字段,也可只包含查询表部分字段
D. 以上说法均不正确
【答案】C
32. 视图不能单独存在,它必须依赖于________。
A. 视图 B. 数据库
【答案】B C. 数据表 D. 查询
33. 修改本地视图使用的命令是________。
A. CREATE SQL VIEW B. MODIFY VIEW
C. RENAME VIEW D. DELETE VIEW
【答案】B
34. 下面关于查询描述正确的是________。
A. 可以使用CREA TE VIEW打开查询设计器
B. 使用查询设计器可以生成所有的SQL 查询语句
C. 使用查询设计器生成的SQL 语句存盘后将存放在扩展名为QPR 的文件中
D. 使用DO 语句执行查询时,可以不带扩展名
【答案】C
35. 下列关于查询设计器的说法中错误的是________。
A. 既可对单表查询,也可对多表查询
B. 在分组依据选项卡中,可以设置查询结果按某一字段值的升序排列
C. 可以将查询结果保存到扩展名为.qpr 的查询文件中,并可在命令窗口中直接用do 命令执行
D. 可以设定查询结果的输出形式,如临时表,图形等
【答案】B
36. 在查询设计器中已设定联接条件为STUDENT. 姓名=xscj.姓名,若要在查询结果中显示STUDENT 表中所有记录及xscj 表中满足条件的记录,则联接类型应为________。
A. 内部联接 B. 左联接
【答案】B C. 右联接 D. 完全联接
37. 下列说法中错误的是________。
A. 在数据库中,可以包含表, 视图, 查询以及表间永久关系
B. 可以通过修改视图中数据来更新数据源中数据,但查询不可以
C. 建立查询和视图时,数据表可作为数据源
D. 视图虽然具备了一般数据表的特征,但它本身并不是表
【答案】A
38. SQL语言具有两种使用方式,分别称为交互式SQL 和________。
A. 提示式SQL B. 多用户SQL C. 嵌入式SQL D. 解释式SQL
【答案】C
39. Visual FoxPro 中支持的SQL 功能不包括________。
A. 数据定义 B. 数据修改 C. 数据查询 D. 数据控制
【答案】D
40. 在SQL 语句中用语分组的短语是________。
A. ORDER BY B. AVG C. GROUP BY
【答案】C
41. 下面SQL 语句的执行结果是________。 D.SUM
SELECT SUM(工资) FROM 职工
A. 工资的最大值 B. 工资的最小值
C. 工资的平均值
【答案】D D. 工资的合计
42. SQL查询语句中ORDER BY子句的功能是________。
A. 对查询结果进行排序
C. 限定分组检索结果 B. 分组统计查询结果 D. 限定查询条件
【答案】A
43. 在VFP 系统中,查询文件的扩展名为________。
A. .DBF B. .QPR C.. .SCX
【答案】B
44. 在VFP 中,关于视图说法正确的是________。 D. .TXT
A. 视图与查询没有区别 B. 视图是一个虚表,不形成对应的磁盘文件
C. 通过视图不能修改原表 D. 只能给自由表建立视图
【答案】B
45. 在SQL 的SELECT 查询结果中,消除重复记录的方法是________。
A. 通过指定主关系键 B. 通过指定惟一索引
C. 使用DISTINCT 子句
【答案】C D. 使用HA VING 子句
46. 在查询设计器中已设定联接条件为 STUDENT. 姓名=xscj.姓名, 若要在查询结果中显示 STUDENT 表中所有记录及 xscj 表中所有的记录,则联接类型应为________。
A. 内部联接
【答案】D
47. 查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL 语句是________。
A. SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} AND 性别=”男”
B. SELECT * FROM 学生WHERE 出生日期
C. SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} OR 性别=”男”
D. SELECT * FROM 学生WHERE 出生日期
【答案】A
48. 计算刘明同学选修的所有课程的平均成绩,正确的SQL 语句是________。
A. SELECT A VG(成绩) FROM 选课WHERE 姓名=”刘明”
B. SELECT A VG(成绩) FROM 学生, 选课WHERE 姓名=”刘明”
C. SELECT A VG(成绩) FROM学生, 选课WHERE 学生. 姓名=”刘明”
D. SELECT A VG(成绩) FROM学生, 选课WHERE 学生. 学号=选课. 学号 AND 姓名=”刘明”
【答案】D
49. 假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为”101”课程的平均成绩,正确的SQL 语句是________。
A. SELECT 专业 AS SUBS(学号,3,2), 平均分 AS A VG(成绩) FROM 选课WHERE 课程号=”101” GROUP BY 专业
B. SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” GROUP BY 1
C. SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” ORDER BY 专业
D. SELECT 专业 AS SUBS(学号,3,2), 平均分 AS A VG(成绩) FROM 选课WHERE 课程号=”101” ORDER BY 1
【答案】B
50. 查询选修课程号为”101”课程得分最高的同学,正确的SQL 语句是________。
A. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号 AND 课程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课)
B. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
C. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号AND 成绩>=ANY(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
D. SELECT 学生. 学号, 姓名 FROM 学生, 选课 WHERE 学生. 学号=选课. 学号 AND 课B. 左联接 C. 右联接 D. 完全联接
程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)
【答案】D
51. 插入一条记录到“选课”表中,学号、课程号和成绩分别是“02080111”、“103”和80,正确的SQL 语句是________。
A.INSERT INTO 选课 V ALUES(“02080111”,”103”,80)
B.INSERT VALUES(“02080111”,”103”,80)TO 选课(学号,课程号,成绩)
C.INSERT VALUES(“02080111”,“103”,80)INTO 选课(学号,课程号,成绩)
D.INSERT INTO 选课(学号,课程号,成绩) FORM VALUES(“02080111”, ”103”,80)
【答案】A
52. 将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL 语句是________。
A. UPDATE 选课SET 成绩WITH 92 WHERE学号=”02080110”AND 课程号=”102”
B. UPDATE 选课SET 成绩=92 WHERE学号=”02080110 AND课程号=”102”
C. UPDATE FROM选课SET 成绩WITH 92 WHERE学号=”02080110”AND 课程号=”102”
D. UPDATE FROM选课SET 成绩=92 WHERE学号=”02080110” AND 课程号=”102”
【答案】B
53. 假设同一名称的产品有不同的型号和产地, 则计算每种产品平均单价的SQL 语句是________。
A. SELECT产品名称,A VG(单价)FROM 产品GROUP BY单价
B. SELECT产品名称,A VG(单价)FROM 产品ORDERBY 单价
C. SELECT产品名称,A VG(单价)FROM 产品ORDER BY产品名称
D. SELECT产品名称,A VG(单价)FROM 产品GROUP BY产品名称
【答案】D
54. 设有s(学号, 姓名, 性别) 和sc(学号, 课程号, 成绩) 两个表,如下SQL 语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是________。
A. SELECT 学号, 姓名, 性别 FROM s WHERE EXISTS
(SELECT* FROM SC WHERE SC.学号=s.学号 AND 成绩
B. SELECT 学号, 姓名, 性别 FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE SC.学号=s.学号 AND 成绩
C. SELECT 学号, 姓名, 性别 FROM S WHERE EXISTS
(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩>85)
D. SELECT 学号, 姓名, 性别 FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩
【答案】D
55. 假设”订单”表中有订单号、职员号、客户号和金额字段, 正确的SQL 语句只能是________。
A. SELECT 职员号 FROM 订单
GROUP BY 职员号 HA VING COUNT(*)>3 AND AVG_金额>200
B. SELECT 职员号 FROM 订单
GROUP BY 职员号 HA VING COUNT(*)>3 AND AVG(金额)>200
C. SELECT 职员号 FROM 订单
GROUP ,BY 职员号 HA VING COUNT(*)>3 WHERE AVG(金额)>200
D. SELECT 职员号 FROM 订单
GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200
【答案】B
4.1.2 填空题
1. 查询设计器的“筛选”选项卡用来指定查询的________。
【答案】条件
2. 视图是在数据库表的基础上创建的一种虚拟表。所谓虚拟表是指视图的数据是从已有的数据库表或其他视图中提取的,这些数据在________中并不实际存储,仅在数据词典中存储视图的定义。
【答案】视图
3. 内部联接是指只有________的记录才包含在查询结果中。
【答案】符合条件
4. 在VFP 支持的SQL 语句中,________命令可以向表中输入记录,________命令可以检查和查询表中的内容,________命令可以修改表中的数据,________命令可以修改表的结构。
【答案】INSERT 、SELECT 、UPDA TE 、ALTER TABLE
5. 在ORDER BY排序子句的选择项中,DESC 代表________输出;省略DESC 时,代表________输出。
【答案】降序、升序
6. 在数据表GZB 中,将“职称”字段值为“副教授”的“补贴”字段的值增加800元,可使用SQL 命令为 。
【答案】UPDA TE GZB SET补贴=补贴+800 WHERE 职称=”副教授”
7. 从数据表RSGL 和RSGZ 两个表中, 查询出“编号”字段值相同的记录的全部信息, 则实现此功能的SQL 命令为____ 。
【答案】SELECT * FROM RSGL INNER JOIN RSGZ ON RSGL. 编号=RSGZ. 编号
8. 设有教师工资表SALARY .DBF ,表结构为:工号(C/10)、职称(C/5)、工资(N/7.2),用SQL 语言检索每种职称的 “职称”及平均工资的语句是(关键字必须拼写完整)。
SELECT 职称, FROM SALARY
【答案】A VG(工资) ,GROUP BY职称
9. SQL 支持集合的并运算,运算符是______________。
【答案】UNION
10. 在 SQL 语句中空值用___________表示。
【答案】NULL
11. 在V isual Foxpro中SQL DELETE命令是____________删除记录。
【答案】逻辑
12. 在SQL SELECT 中用于计算检索的函数有COUNT 、______、_______、MAX 和MIN 。
【答案】A VG ,SUM
13. SQL SELECT语句为了将查询结果存放到数组中应该使用____________短语。
【答案】INTO ARRAY
14. 查询设计器的排序依据选项卡的作用相当于SELECT 命令中的___________短语。
【答案】ORDER BY
15. 通过V isual Foxpro的视图,不仅可以查询数据表,还可以__________数据表。
【答案】更新
16. 在数据库中可以建立两种视图,分别是__________和___________。
【答案】本地视图,远程视图
17. 在查询设计器中,选择查询结果中出现字段及表达式应在______选项卡中完成, 设置查询条件应在_______选项卡中完成,该选项卡相当于SQL-SELECT 语句中的where 子句。
【答案】字段,筛选
18. 若有二个数据表stud1.dbf 、stud2.dbf ,结构分别如下:
stud1.dbf 的表结构: stud2.dbf 的表结构: 字段名 字段类型 字段长度 小数位 字段名 字段类型 字段长度 小数位 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 学号 C 6 学号 C 6
姓名 C 8 选课 C 20
性别 C 2
出生年月 D 8
总成绩 N 3
获奖次数 N 2
简历 M 4
两表的内容分别如下:
stud1.dbf 的表中的记录:
学号 姓名 出生年月 性别 总成绩 获奖次数 简历
991201 李红 08/23/71 女 89 5 Memo
991202 张红 05/12/77 女 78 6 Memo
991101
991203
991102
991301 大宝 海飞丝 诗芬 杏花村 06/17/72 男 05/12/72 男 05/18/78 女 05/12/68 男 56 4 Memo 67 7 Memo 76 5 Memo 88 6 Memo
stud2.dbf 的表中的记录:
学号 选课
991201 操作系统
991301 网页设计
991301 操作系统
991202 数据结构
991201 数据结构
991203 操作系统
991101 数据库
991102 数据库
991301 计算机网络
991202 计算机网络
1)使用SQL 命令列出表stud1.dbf 中的“获奖次数”在5次以上的男生详细信息,可使用的命令是⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT *FROM STUD1 WHERE获奖次数>5 AND性别=”男”
2)为表stud1.dbf 中“获奖次数”在五次以上(含5次)的学生的总成绩加上5分,“获奖次数”在五次以下的学生的总成绩加上3分,可使用命令:
update stud1⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽总成绩=IIF(⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽, 总成绩+5, 总成绩+3)。
【答案】SET ,获奖次数>=5
3)使用SQL 命令在表stud2.dbf 中插入一条记录:学号为“991201”,选课为“VFP 程序设计”,命令是:Insert⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】INTO STUD2 VALUES (“991201”,“VFP 程序设计”)
4)使用SQL 命令查询表stud1.dbf 中的总成绩最高的学生的“学号”、“姓名”、“总成绩”信息,应使用的命令是:⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT 学号,姓名,总成绩 FROM stud1 WHERE 总成绩 =(SELECT MAX(总成绩)FROM stud1)
5)使用SQL 命令查询表stud1.dbf 中的选课是操作系统的学生的“学号”、“姓名”、“总成绩”信息,应使用的命令是:⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
SELECT 学号,姓名,总成绩 FROM stud1 WHERE 学号 IN (SELECT 学号FROM stud2 WHERE 选课=”操作系统”)
6)使用SQL 命令查询表stud1.dbf 中的总成绩前三名的学生的信息,可使用命令⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】SELECT * TOP 3 FROM STUD1 ORDER BY 总成绩 DESC
19. 在SQL 查询语句中,显示部分结果的top 短语必须要与⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽短语一起来使用。
【答案】Order By
20. 查询数据表Rsda 中职工的“职称”字段值为空值的记录的命令是:
SELECT * FROM Rsda WHERE ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
【答案】职称 IS NULL
21. 查询表Rsgz 中“实发工资”字段值在800元到1000元范围内的职工信息查询语句是:SELECT 编号, 姓名, 实发工资 FROM Rsgz ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】WHERE 实发工资 BETWEEN 800 AND 1000 或者
WHERE 实发工资>=800 AND 实发工资<=1000
22. 在SQL 命令中,LIKE 是字符串匹配运算符,其中通配符⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽可表示0个或多个字符。
【答案】%
23. 在SQL 的SELECT 查询中,HA VING 字句不可以单独使用,总是跟在⎽⎽⎽⎽⎽⎽⎽⎽子句之后一起使用。
【答案】GROUP BY
24. 在SQL 的SELECT 查询时,使用⎽⎽⎽⎽⎽⎽⎽⎽子句实现消除查询结果中的重复记录。
【答案】DISTINCT
25. SQL SELECT语句的功能是⎽⎽⎽⎽⎽⎽⎽⎽。
【答案】数据查询
第5章 程序设计基础
5.1 基础知识练习
5.1.1 选择题
1. 连续执行以下命令之后,最后一条命令的输出结果是________。
SET EXACT OFF
X="A "
? IIF("A"=X,X-"BCD",X+"BCD")
A. A B. BCD C. A BCD
【答案】C
2. 结构化程序设计的三种基本逻辑结构是________。 D. ABCD
A. 选择结构、循环结构和嵌套结构 B. 顺序结构、选择结构和循环结构
C. 选择结构、循环结构和模块结构 D. 顺序结构、递归结构和循环结构
【答案】B
3. 在V isual FoxPro中,用于建立或修改过程文件的命令是________。
A. MODIFY COMMAND B. MODIFY
C. MODIFY PROCEDURE D. 上面A 和C 都对
【答案】A
4. 清除主窗口屏幕的命令是________。
A. CLEAR B. CLEAR ALL
C. CLEAR SCREEN
【答案】A D. CLEAR WINDOWS
5. 如果主程序、子程序1、子程序2、子程序3依次调用,在子程序3中有RETURN TO MASTER 语句,则由子程序3返回
A. 主程序 B. 子程序1 C. 子程序2 D. 子程序3
【答案】A
6. 在指定范围内扫描数据表文件,查找满足条件的记录并执行循环体中其他的语句,最合适的循环语句是
A.DO WHILE-ENDDO B.DO CASE-ENDCASE
C.SCAN-ENDSCAN D.FOR-ENDFOR
【答案】C
7. 在V isual FoxPro中,不能清除所有内存变量的命令是______。
A. RELEASE ALL B. CLEAR ALL C. CLOSE ALL
【答案】C
8. 文件的扩展名为.PRG 的文件是______。
A. 数据库文件 B. 格式文件 C. 备注文件 D. CLEAR MEMORY D. 程序文件
【答案】D
9. 若要中止部分语句执行而重新开始下一轮循环的命令是______。
A. LOOP B. EXIT
【答案】A C. SKIP D. GOTO
10. 在INPUT 、ACCEPT 和W AIT 三个命令中,必须要以回车键表示输入结束的命令是______。
A. INPUT、ACCEPT B. INPUT、WAIT
C. ACCEPT、WAIT
【答案】A D. INPUT、ACCEPT 和W AIT
11. 在DO WHILE-ENDDO 的循环结构中,下列叙述正确的是______。
A. 循环体中的LOOP 和EXIT 语句的位置是固定的
B. 在程序中应加入控制循环结束的语句
C. 执行到ENDDO 时,首先判断表达式的值,然后再返回DO WHILE语句
D. 循环体中的LOOP 语句为跳出循环体
【答案】B
12. 下列关于过程文件的说法中,错误的是______。
A. 过程文件的建立需使用MODIFY COMMAND命令
B. 过程文件的默认扩展名为.PRG
C. 在调用过程文件中的过程之前不必打开过程文件
D. 过程文件只包含过程,可以被其他程序所调用
【答案】C
13. 软件是指______。
A. 程序 B. 程序和文档
C. 算法加数据结构 D. 程序、数据与相关文档的完整集合
【答案】D
14. 下面程序计算一个整数的各位数字之和。在下划线处应填写的语句是______。 SET TALK OFF
INPUT”x=”TO x
s=0
DO WHILE x!=0
s=s+MOD(x,10)
______
ENDDO
?s
SET TALK ON
A. x=int(x/10) B. x=int(x%10) C. x=x-int(x/10) D. x=x-int(x%10)
【答案】A
15. 如果在命令窗口执行命令:LIST 名称, 主窗口中显示:
记录号 名称
L 电视机
2 计算机
3 电话线
4 电冰箱
5 电线
假定名称字段为字符型、宽度为6, 那么下面程序段的输出结果是
GO 2
SCAN NEXT 4 FOR LEFT(名称,2)=“电”
IF RIGHT(名称,2)=“线”
EXIT
ENDIF
ENDSCAN
? 名称
A. 电话线 B. 电线
C. 电冰箱 D. 电视机
【答案】A
16. 下面关于类的描述,错误的是________。
A. 一个类包含了相似的有关对象的特征和行为方法
B. 类是实例对象的抽象
C. 类并不实行任何行为操作,它仅仅表明该怎样做
D. 类可以按所定义的属性、事件和方法进行实际的行为操作
【答案】D
17. 下面关于属性、方法和事件的叙述中,错误的是________。
A. 属性用于描述对象的状态,方法用于表示对象的行为
B. 基于同一个类产生的两个对象可以分别设置自己的属性值
C. 事件代码也可以像方法一样被显式调用
D. 在新建一个表单时,可以添加新的属性、方法和事件
【答案】D
18. 现实世界中的每一个事物都是一个对象,任何对象都有自己的属性和方法。在下面关于属性的描述中,正确的是________。
A. 属性只是对象所具有的内部特征
B. 属性就是对象所具有的固有特征,一般用各种类型的数据来表示
C. 属性只是对象所具有的外部特征
D. 属性就是对象所具有的固有方法
【答案】B
19. 每个对象都可以对一个被称为事件的动作进行识别和响应。下面关于事件的描述中,错误的是________。
A. 事件是一种预先定义好的特定的动作,由用户或系统激活
B. VFP基类的事件集合是由系统预先定义好的,是惟一的
C. VFP基类的事件也可以由用户创建
D. 可以激活事件的用户动作有按键、单击鼠标、移动鼠标等
【答案】C
20. 下面关于OOP (面向对象的程序设计)的描述中,错误的是________。
A. OOP以对象及其数据结构为中心
B. OOP用“对象”表现事物,用“类”表示对象的抽象
C. OOP用“方法”表现处理事物的过程
D. OOP工作的中心是程序代码的编写
【答案】D
5.1.2 填空题
1. 下列程序的运行结果是__________。
X="计算机等级考试"
Y=""
I=LEN(X)
DO WHILE I>=1
Y=Y+SUBSTR(X,I-1,2)
I=I-2
ENDDO
?Y
【答案】试考级等机算计
2. 在DO CASE-ENDCASE 语句中,可使用__________短语直接跳出该分支语句。
【答案】EXIT
3. 结构化程序设计包含3种基本控制结构,其中SCAN -ENDSCAN 语句属于
__________结构。
【答案】循环
4. 使用__________命令可以定义一个过程的开始。
【答案】PROCEDURE 或FUNCTION
5. 下列程序的功能是计算S=1!+2!+…+10!的值,完成程序填空。
S=0
FOR N=1 TO 10
P=1
FOR I=1 TO N
__________
ENDFOR
__________
ENDFOR
?"SUM=", S
【答案】P=P*I, S=S+P
6. 学生表中有字段:姓名、计算机和班级号,下列程序是查询并显示所有班级号为"1002" 的学生记录,完成程序填空。
USE 学生表
DO WHILE__________
IF 班级号="1002"
DISPLAY
ENDIF
__________
ENDDO
USE
【答案】NOT EOF()、 SKIP
7. 输入n 的值,求1+1/2!+1/3!+1/4!+„.+1/n! ( 阶乘 n!=1*2*3*4....*(n-1)*n ) CLEAR
SUM=______
MUL=______
INPUT "请输入n 的值: " TO N
FOR i=1 TO N
FOR j=1 TO i
MUL=MUL*______
ENDFOR
SUM= SUM+___________
ENDFOR
?' 求得的总和为: ',SUM
【答案】0, 1, j, 1/mul
8. 主程序MCX2.PRG
clea
public i,j
store 1 to i,j,k
do scx2.prg
?" 主程序的输出结果:"
?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2)
cancel
子程序scx2.prg
clea
private j,k
i=i*2
j=j+1
k=j+1
?" 子程序中输出的结果:"
?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2)
return
执行结果是:___________。
【答案】
子程序中输出的结果:
i= 2 j= 2 k= 4
主程序的输出结果:
i= 2 j= 1 k= 1
9. 类是对象的集合,它包含了相似的有关对象的特征和行为方法,而________是类的实例。
【答案】对象
10. 类具有________、________和________的特征,这就大大加强了代码的可重用性。
【答案】封装、继承、多态
5.2.5 常见错误
1. 找不到变量!
2. 操作符/操作数类型不匹配!
3. 不能识别的命令谓词(命令字拼错) 。
4. 不明确的日期/日期时间常量。
5. 函数参数的值、类型或数目无效。
6. 参数太多(太少)。
7. 命令中含有不能识别的短语或关键字。
出错原因:命令中的保留字拼错,如:ACCEPT "A=" TO A写成ACCEPT "A=" TQ A;数据项之间使用了中文逗号,如:? "行李费:" ,G 。
8. 语法错误。
出错原因:命令格式错,如:ACCEPT "A=" TO A写成 ACCEPT "A=" A,或者语句中的TO 写成T 和零。
9. 嵌套错误。
出错原因:循环语句不配套。如:多ENDDO 或少ENDDO 语句;IF 语句与FOR 、DO WHILE 语句发生交叉。
10. 缺少IF|ELSE|ENDIF语句。
出错原因:分支语句不配套。如:多ENDIF 或少ENDIF 语句;IF 语句与FOR 、DO WHILE语句发生交叉。
11. 非数据表达式。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中对应变量的数据类型不匹配。如:子程序中变量的类型为N 型,而调用语句中对应变量的类型为C 型,将发生该类错误。
12. 操作符/操作数类型不匹配。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中对应变量的数据类型不匹配。
13. 必须指定额外参数。
出错原因:带参调用语句 DO WITH 与子程序中的PARAMETERS 语句,两中变量的个数不匹配。如:调用语句中变量的个数多于子程序中的PARAMETERS 中变量的个数时,将发生该类错误。
注:1—6常见错误的出错原因见第二章实验。