vfp习题及参考答案

更新时间:2023-09-24 09:43:02 阅读量: IT计算机 文档下载

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

习 题 一

一、 用适当的内容填空

1. 典型安装VFP至少需要【 85 】MB的剩余磁盘空间,完全安装VFP至少需要【 90 】MB的剩余磁盘空间。

2. 在运行VFP过程中,要想查看帮助信息,必须安装【 MSDN Library 】。并在VFP中配置名为【 Foxhelp.chm 】的帮助文件。

3.对VFP 系统环境所做的配置,可以分为【 临时 】配置和【 永久 】配置两种。 4. 通过VFP【 工具 】菜单→“选项”→【 显示 】选项卡可以控制是否显示时钟。 5. 在启动VFP 时,系统自动在当前工作目录、安装VFP 的目录和文件搜索路径中按顺序查找名为【 Config.fpw 】的配置文件。

6.VFP是微型计算机上普遍使用的一种关系数据库管理系统,简称为【 VFP 】。 7.VFP将【 可视化 】、结构化和【 面向对象 】程序设计方法结为一体。 8.VFP要处理的各种信息以【 数据库 】形式存储于计算机中。

9.一个应用程序通常由【 主界面 】和【 功能界面 】两种界面组成,主界面由【 主窗口(表单) 】和【 程序系统菜单 】组成。

10.安装VFP系统,首先应该鼠标双击安装盘中的【 Setup.exe 】文件,在安装过程中,每步都要用鼠标单击【 下一步 】按钮,为了使用VFP的帮助功能,还要安装【 MSDN 】软件;启动VFP系统的程序文件名为【 Vfp6.exe 】。

11.在Windows操作系统下启动VFP的方法之一是:单击“开始”→【 程序 】→“Microsoft Visual FoxPro 6.0”→【 Microsoft Visual FoxPro 6.0 】。

12.VFP有4种工作方式,其中【 编写程序 】方式属于自动化工作方式。

13.系统提供【 11 】个工具栏,某菜单项是否显示和是否可用与系统【 当前状态 】有关。通过设置【 Windows桌面 】属性,可调整系统菜单和工具栏上文字的字体或字号。

14.调整命令窗口中字体和字号的方法是:单击【 格式 】→【 字体 】,选择“字体”和“大小”。

15.设置Foxhelp.chm文件,应在“选项”对话框的【 文件位置 】选项卡设置。 16.设置日期和时间的显示格式,应在“选项”对话框的【 区域 】选项卡设置。 17.设置E:\\VFP是默认目录的命令是,Set 【 Default 】 To E:\\VFP

18.使VFP系统启动后自动执行一条命令或调用一个程序,应该在【 Config.fpw 】文件中设置【 Command 】项参数,要改变可使用的内存变量个数,应该设置【 Mvcount 】项参数。

19.退出VFP系统,应该在程序或命令窗口中执行【 Quit 】命令。 20.在VFP中项目文件的扩展名是【 PJX 】。

21.通过Set【 Talk 】On设置显示命令的执行状态。

- 1 -

二、 从参考答案中选择一个最佳答案

1. 使用【 A 】命令可将VFP主窗口的背景设置为红色。

A. _Screen.BackColor=RGB(255,0,0) B. _Screen.Back=RGB(255,0,0) C. _Back.Color=RGB(255,0,0) D. Screen.BackColor=RGB(255,0,0) 2. 使用【 D 】命令可将VFP主窗口的标题设为“登录界面”。

A. VFP.Title=”登录界面” B. Window.Caption=”登录界面” C. MainWindow.Title=”登录界面” D. _Screen.Caption=”登录界面” 3. 使用【 B 】命令可将VFP主窗口前景(即字符)的颜色设置为蓝色。

A. _Character.Color=RGB(0,0,255) B. _Screen.ForeColor=RGB(0,0,255) C. Window.ForeColor=RGB(0,0,255) D. Fore.Color=RGB(0,0,255) 4.下列关于工具栏的叙述错误的是【 D 】。

A. 可以创建用户自己的工具栏 B. 可以删除用户创建的工具栏 C. 可以修改系统提供的工具栏 D. 可以删除系统提供的工具栏 5.执行命令Set Clock On,在【 C 】中打开时钟。

A. 任务栏 B. 状态栏 C. 主窗口 D. 命令窗口 6.单击“工具”菜单→“选项”,在选项对话框的“文件位置”选项卡可以设置【 D 】。 A. 日期和时间的显示格式 B. 表单的默认大小 C. 程序代码的颜色 D. 默认目录

7.VFP系统默认允许使用【 B 】个内存变量,最多允许使用【 E 】个内存变量。 A. 512 B. 1024 C. 2048 D. 6500 E. 65000 8.表示对象之间隶属关系所用的符号是【 C 】。

A. 分号 B. 空格 C. 圆点 D. 逗号 9.退出VFP系统在命令窗口执行【 D 】命令。

A. Exit B. Ctrl+W C. Ctrl+Q D. Quit 10.向项目中添加表单,使用项目管理器的【 D 】选项卡。

A. “代码” B. “类” C. “数据” D. “文档” 11.通过项目管理器窗口的命令按钮,不能完成的操作是【 C 】。

A. 运行文件 B. 添加文件 C. 重命名文件 D. 连编文件 12. 通过_Screen的【 A 】属性可以设置VFP主窗口的背景颜色。 A. BackColor B. Back C. BackStyle D. SetBackColor 13. 将VFP主窗口中的字体改成“黑体”,用【 C 】命令;将字号改成11,用【 F 】命令。

A. _Screen.Caption=\黑体\C. _Screen.FontName=\黑体\E. _Screen.FontSize=\黑体\

- 2 -

三、 从参考答案中选择全部正确答案

1. VFP可以在【 ABCDE 】操作系统环境下运行。

A. Windows 95 B. Windows 98 C. Windows 2000 D. Windows XP E. Windows NT

2.输出系统配置信息,应该用【 DE 】命令。

A. Set Status Bar On B. Set Status Bar Off

C. Set Status On D. Display Status E. List Status 3. 在使用VFP过程中,必须遵守的规则是【 ABCE 】。

A. 对象名之间用圆点“.” B. 对象名与属性名之间用圆点“.” C. 对象名与方法名之间用圆点“.” D. VFP中的所有命令名都可缩写 E. 命令、方法名和系统函数名中的英文字母以半角方式输入 4.关于命令窗口的正确说法是【 BCF 】。

A. 拖动标题改变大小 B. 拖动标题改变位置 C. 拖动边框改变大小 D. 拖动边框改变位置

E. 该窗口不可关闭 F. 历史命令(即执行过的命令)可以重新执行和修改 5. 在使用VFP过程中,通过【 ABD 】可以查找帮助信息。

A. VFP系统的“帮助”菜单 B. 在命令窗口中选定关键字后,再按F1键

C.在命令窗口中输入Help命令 D. 在编辑代码窗口中选定关键字后,再按F1键 E.在编辑代码窗口中输入Help命令

6. 可以通过【 AE 】创建和编辑Config.fpw文件。 A. Windows的记事本程序 B. Windows的计算器程序

C. Windows的画图程序 D. Windows的磁盘整理程序 E. VFP的程序编辑器 7. 通过【 BCF 】可以查看系统永久配置信息。

A. System status命令 B. Display Status命令 C. List Status 命令 D. Scan Status命令 E. System Config命令 F. 单击“工具”菜单→“选项” 8.VFP应用程序可以由【 ABCDE 】组成。

A. 表单 B. 菜单 C. 控件 D. 数据对象 E. 程序代码 9.VFP是一种【 BE 】。

A. 操作系统 B. 关系数据库管理系统 C. 应用程序系统 D. 数据分析软件 E.应用程序开发工具 10.退出VFP系统的方法是【 ABCDE 】。

A. 单击主窗口的“关闭”按钮 B. 单击“文件”菜单→“退出” C. 单击控制菜单→“关闭” D. 按Alt+F4键 E. 在程序或命令窗口中执行Quit命令

11.系统启动后,VFP系统的主界面由【 ABCDE 】组成。

A. 菜单栏 B. 工具栏 C. 主窗口 D. 命令窗口 E. 状态栏 12.关于主窗口的正确说法是【 BEF 】。

- 3 -

A. 用于输入命令 B. 用于显示命令输出结果 C. 字体和字号不可改变 D. 与其他窗口并列 E. 其他窗口置于其中 F. 标题名称可以改变 13.显示命令窗口的操作是【 ABC 】。

A. 单击“常用”工具“命令窗口”按钮 B. 单击“窗口”菜单→“命令窗口” C. 按Ctrl+F2键 D. 按Ctrl+F4键 E. 以上方法都可以 14.VFP工作方式有【 ABCD 】,其中属于交互式工作方式的有【 ABC 】。 A. 利用系统菜单 B. 利用工具栏按钮 C. 在命令窗口中输入命令 D. 编写程序 E. 利用表单

15.执行命令Set Clock Off能关闭【 BE 】上的时钟。

A. 任务栏 B. 状态栏 C. 常用工具栏 D. 命令窗口 E. 主窗口

16.使系统输出日期型数据的格式是YYYY.MM.DD,应该执行【 BD 】组命令。 A. Set Century Off B. Set Century On C. Set Date Ansi Set Date Ansi Set Date Ansi Set Century Off D. Set Date Ansi E. Set Date YMD Set Century On Set Century On 17.配置VFP 系统环境时,【 BCD 】配置为临时配置,【 AE 】为永久配置。

A. 用“工具”→“选项”??,执行“设置为默认值” B. 用Config.fpw文件 C. 用“工具”→“选项”??,没执行“设置为默认值”

D. 执行SET开头命令 E. 用Windows 的注册表编辑器

18.在当前工作目录的Config.fpw文件中插入:Command = _Screen.Caption = \实验\,存盘后主窗口标题没有立即变成“实验”两个字,其原因可能是【 BE 】。

A. 文件位置错误 B. 该行位置错误 C. 该行书写错误 D. 不是永久配置 E. 没有重新启动VFP 19. 在VFP的项目管理器中不包括的选项卡是【 DE 】。

A. 文档 B. 数据 C. 类 D. 表单 E. 数据库 F.代码

- 4 -

习 题 二

一、 用适当内容填空

1.VFP中的数值数据在内存中占【 8 】个字节,能表示最大【 20 】位数据。 2.若date()值为09/20/2008,则执行命令?date()+5 的显示结果为【 09/25/2008 】 3.VFP中的内存变量分为:数组变量和【 简单变量 】。

4.执行命令 ? round(pi()*100,0) 的显示结果为【 314 】

5.在VFP中,内存变量名由字母、汉字、数字和【 下划线 】组成,且不能以【 数字 】开头。

6.内存变量保存在【 内存 】中,变量的数据类型由赋值时表达式的【数据类型】决定。退出VFP时,内存变量将被【 清除 】。

7. 执行命令?type(time())的显示结果为【 U 】,执行命令?vartype(time()) 的显示结果为 【 C 】

8.执行命令?empty(””)的显示结果为【 .T. 】

9. 若当前分别有一个字段变量和一个内存变量同名都是“XM”,则直接引用“XM”是指【 字段 】变量。

24

10. 对应数学式10÷(2X+6X-3)+e的VFP表达式为【 10/(2*X**2+6*X-3)+EXP(4) 】。

12. 函数Len(‘学习”VFP6.0”’)的值是【 12 】。

13.Left(“123456”,Len(“程序”))的计算结果是【 1234 】。 14. Str(1234.5678,7,3)的结果是【 1234.57 】。 15. 表达式\的值是【 .F. 】。

16.VFP规定只有【 相同 】数据类型的数据(除日期和数值型外)才能进行运算。 17. 与数学式“X≤Y

21. 表达式1-8>7.Or.\的运算结果为【 .T. 】。 22.命令 ? Vartype(Time( )) 的输出结果是【 C 】。

23. 设X=’2008/10/01’。函数Vartype(&X)的值是【 N 】;函数Vartype(“&X”)的值是【 C 】;Type(“&X”)的值是【 N 】。

24. 若a=5,b=\,则:?Type(b)的输出结果是【 L 】,?Vartype(b)的输出结果为【 C 】,?Vartype(&b)的输出结果为【 L 】。

25. 执行命令 Dime array(3,3) 后,array(3,3)的值为【 .F. 】。

- 5 -

A. Time()+2 B. date()+2 C. year(date())+\D. {^2007-08-08}+day(date()) E. {^2007-08-08}+date()

习 题 三

一、 用适当的内容填空

1.设计数据库通常包括需求分析、概念设计、【 逻辑设计 】和【 物理设计 】4个环节。数据库表优化属于【 逻辑设计 】;建立数据库表间关联属于【 物理设计 】;收集、归纳和分析资料属于【 需求分析 】。如果从人工表开始整理数据库表,则两个重要环节是【 逻辑设计 】和【 物理设计 】。

2.人工表的主要特点是【 无格式要求,纸介质或电子表 】;数据库表是存储于计算机【 外或辅助 】存储器中的电子表,是有格式要求的【 二维 】表,其主要特点有:每个属性是【 不可 】分割的基本数据项;任何列在一个记录中最多有【 一 】个值;主属性在任何元组中不能为【 空 】值等。

3.数据库逻辑设计的结果与设计者的目的、出发点及数据语义有关,这里的数据语义是指人们对数据含义的【 规定 】和【 解释 】。

4.在数据库逻辑设计阶段往往要将一个表分解成多个表,这样做主要目的是降低数据【 冗余 】,减少数据操作【 异常 】,而可能带来的副作用是查询数据时增加表的连接【 次数 】,增大了系统开销。这里的系统开销主要是指【 时间 】开销。

5.在数据库物理设计阶段,通过建立【 主索引 】确定表的主键;为了数据查询时减少表的连接时间,对表的外键要建立【 普通索引 】。

6.在关系模式XY(学院码,学院名,学院地址)中,假设所有学院都不重名,【 学院码和学院名 】可以作为关键字,通常将【 学院码 】作为主关键字,【 学院码和学院名 】是主属性。

7.有关系模式XS(学号,姓名,民族码)和MZ(民族码,民族名),通常学号是【 XS 】的主关键字,民族码是【 MZ 】的主关键字,民族码是【 XS 】的外码。

8.在关系模式XS(学号,姓名,民族码,民族名)中,学号是主关键字。【 民族名 】与主关键字存在传递函数依赖,相关函数依赖是:学号→【 民族码 】和【 民族码 】→【 民族名 】。

9.在关系模式GZ(月份,职工号,姓名,基本工资,奖金,个人所得税)中,对基本工资和奖金进行计算可以得到个人所得税。主关键字是【 月份和职工号 】;函数依赖是【 (月份,职工号)→姓名、(月份,职工号)→基本工资、(月份,职工号)→奖金、(月份,职工号)→个人所得税、职工号→姓名、(基本工资,奖金)→个人所得税、(月份,职工号)→职工号和(月份,职工号)→月份 】;部分函数依赖是【 (月份,职工

p p p

号)→姓名 、(月份,职工号)→职工号和(月份,职工号)→月份 】;完全函数依赖是

F F F 【 (月份,职工号)→基本工资、(月份,职工号)→奖金、(月份,职工号)→个人所

F

F

- 11 -

得税、职工号→姓名和(基本工资,奖金)→个人所得税 】;传递函数依赖是【 (月份,职工号)→姓名和(月份,职工号)→个人所得税 】。

10.范式是满足某种特定要求的【 关系模式 】的集合,范式的级别体现【 关系模式 】的【 规范化或优化 】程度。

11.要将第一范式的关系模式规范成第二范式,应该消除【 非主属性 】对关键字的【 部分函数依赖 】;要将一个第二范式的关系模式规范成第三范式,应该消除【 非主属性 】对关键字的【 传递函数依赖 】。

12. 第一范式规范到第二范式的有效方法是:对关系模式进行【 投影 】分解,将其分解成多个关系模式,消除【 非主属性 】对【 关键字 】的【 部分函数依赖 】。

13.设计关系模式的总体原则是概念单一化,一个关系模型对应一个实体型或实体型之间的联系。根据这一原则,关系模式XS(学号,姓名,出生日期,民族名,专业名)应该分解成【 3 】个关系模式,分别是【 XSA(学号,姓名,出生日期,民族码,专业码)、MZ(民族码,民族名)和MZ(专业码,专业名) 】。

14.在设计关系数据库时,常常要分析关系模式中各个属性的函数依赖关系,其主要目的是对关系模式进行【 规范化或优化 】;如果一个关系模式是第二范式而不是第三范式,则在该关系模式中一定存在某【 非主属性 】对【 关键字 】的【 传递 】函数依赖。

15.关系模式的范式级别越高,关系数据库中的数据冗余度越【 低或少 】,更新数据时错误率越【 低或少 】,随之产生的关系也越【 多 】,这也会增加关系的【 连接 】操作次数。

16.在设计关系数据库时,用数据的单体编码可以【 节省存储空间 】;用数据的复合编码可以进一步规范关系模式,能减少数据【 冗余 】,但将破坏属性的【 原子性 】特性。

二、 从参考答案中选择一个最佳答案

1.设计数据库通常包括需求分析、概念设计、逻辑设计和物理设计4个环节。用E-R图描述事物属于【 B 】环节。

A. 需求分析 B. 概念设计 C. 逻辑设计 D. 物理设计

2.在数据库逻辑设计阶段一个重要方面是解决数据冗余问题,数据冗余是指【 B 】。 A. 数据存储量庞大 B. 数据重复存储

C. 数据表个数太多 D. 数据项个数超出表的限制 3.当数据库足够大时,【 C 】说法不正确。

A. 降低数据冗余可节省存储空间 B. 对数据进行编码可节省存储空间 C. 降低数据冗余是节省存储空间的惟一途径

D. 对一个表规范化分解成多个表可节省存储空间 4.在数据库设计方面,【 D 】说法正确。

A. 数据单体编码是降低数据冗余的一种方法

B. 降低数据冗余是数据编码的一种方法 C. 数据复合编码不能减少数据冗余

- 12 -

D. 降低数据冗余和数据编码均可节省存储空间 5.数据库逻辑设计主要解决的问题是【 D 】。 A. 消除数据冗余,避免发生数据异常操作 B. 增加表的数量,减少表的连接次数 C. 缩小每个表的体积,充分利用磁盘碎片 D. 减少数据冗余,避免发生数据操作异常

6.在关系模式CJ(学号,课程号,成绩)中,一个学生可能选多门课程,【 C 】是主关键字。

A. 学号 B. 课程号 C. 学号和课程号 D. 课程号和成绩 7.如果对数据库表规范程度不够,可能发生数据操作异常,这种操作异常不含【 C 】操作。

A. 插入 B. 删除 C. 查询 D. 修改 8.在第二范式的关系模式中,一定不存在【 B 】。

A. 主属性对关键字的部分函数依赖 B. 非主属性对关键字的部分函数依赖 C. 主属性对关键字的传递函数依赖 D. 非主属性对关键字的传递函数依赖 9.在关系模式规范化过程中,要求对关系模式必须是无损分解,所谓无损分解是指【 C 】。

A. 分解前后所需存储空间一致 B. 分解前后属性名称及个数一致 C. 通过自然连接可以还原 D. 通过等值连接可以还原

10.在关系模式GZ(职工号,姓名,性别,基本工资,奖金,应发工资)中,应发工资等于基本工资与奖金之和。对GZ进行【 D 】,将保留原功能而降低数据冗余度。

A. 性别属性编码 B. 基本工资与奖金合并成一个属性 C. 去掉职工号属性 D. 去掉应发工资属性

11.在某些关系模式中存在数据更新异常问题,这里的更新异常是指【 D 】。 A. 修改数据后无法存盘 B. 对数据进行了保护,用户无法修改 C. 修改一个属性值时可能要修改多个属性的值 D. 修改一个属性值时可能要修改多个元组的值

12.在某些关系模式中存在数据插入异常问题,这里的插入异常是指【 B 】。 A. 缺某非主属性的值,不能添入数据 B. 缺某主属性的值,不能添入数据 C. 数据库太小,无法执行插入操作 D. 磁盘已满,无法执行插入操作 13.在某些关系模式中存在数据删除异常问题,这里的删除异常是指【 A 】。 A. 删除元组将导致某类实体信息丢失 B. 删除元组将导致某个关系丢失 C. 删除元组后无法存盘 D. 删除元组将删除其他关系

14.将关系模式XS(学号,姓名,民族名)规范成XSA(学号,姓名,民族码)和MZ(民族码,民族名)后,用【 A 】语句还原XS。

A. Select 学号,姓名,民族名 From XSA,MZ Where XSA.民族码=MZ.民族码 B. Select 学号,姓名,MZ.* From XSA,MZ Where XSA.民族码=MZ.民族码

- 13 -

C. Select XSA.*,民族名 From XSA,MZ Where XSA.民族码=MZ.民族码 D. Select XSA.*,MZ.* From XSA,MZ Where XSA.民族码=MZ.民族码

15.将关系模式XS(学号,姓名,民族名)规范成XSA(学号,姓名,民族码)和MZ(民族码,民族名),主要目的是【 B 】。

A. 降低数据冗余度 B. 节省存储空间 C. 消除插入异常 D. 消除更新异常 16.在设计关系数据库时,经常要对数据进行单体编码或复合编码,两种编码的共同点是【 C 】。

A. 减少数据冗余 B. 减少表连接次数 C. 节省存储空间 D. 加大数据冗余

三、 从参考答案中选择全部正确的答案

1.当数据库中的数据足够多时,在保证数据库功能的情况下,【 AD 】能节省存储空间。

A. 降低数据冗余 B. 减少表的个数 C. 增加表的索引个数 D. 对数据进行编码 E. 建立表间的关联 2.关于数据库表和二维表,【 BC 】正确。

A. 二维表都可以作为数据库表 B. 数据库表都是二维表

C. 一个二维表可以分解成多个数据库表 D. 数据库表是无冗余的二维表 E. 数据库表可以没有关键字 F. 数据库表的某列中可以包含不同类型的数据 3.【 DF 】不是数据库表的特性。

A. 属性的原子性 B. 数据记录的唯一性 C. 表的二维性 D. 主属性值的惟一性 E. 主属性值的非空性 F. 外码的惟一性 4.对一个数据库表而言,正确的叙述是【 AF 】。

A. 只能有一个主键 B. 只能有一个主属性 C. 只能有一个外码 D. 外码是所在表的主键 E. 可以有多个主键 F. 可有多个外码 5.在关系模式MZ(民族码,民族名,人数)中,所有民族都不重名,【 AD 】可以作为关键字。

A. 民族码 B. 人数 C. 民族码和民族名 D. 民族名 E. 民族码和人数 F. 民族名和人数 6.下列叙述中【 CE 】正确。

A. 一个关系只能有一个主属性 B. 一个关系只能有一个关键字 C. 一个关系只能有一个主关键字 D. 关键字与主属性一一对应

E. 一个关键字可能含多个主属性 F. 只有主关键字中的属性是主属性

7.在关系模式GP(股东代码,姓名,股票代码,持有数量,均价)中,一个股东可能持有多种股票,【 AC 】是主属性。

A. 股东代码 B. 姓名 C. 股票代码 D. 持有数量 E. 均价

8.在关系模式GP(身份证号,姓名,股票代码,持有数量)中,一个人可能持有多种股票,【 ADF 】成立。

- 14 -

A. 身份证号→姓名 B. (姓名,股票代码)→持有数量

C. 股票代码→持有数量 D. (身份证号,股票代码)→持有数量 E. 身份证号→股票代码 F. (姓名,股票代码)→姓名

9.在关系模式GP(身份证号,姓名,股票代码,持有数量)中,一个人可能持有多种股票,【 BC 】成立。

p f

A. (身份证号,股票代码)→姓名 B. (身份证号,股票代码)→姓名

f C. (身份证号,股票代码)→持有数量 D. 身份证号→姓名 p

E. (身份证号,股票代码)→持有数量 F. (姓名,股票代码)→身份证号 10.在某个关系模式中,如果每个非主属性都完全函数依赖于关键字,则该关系模式一定属于【 AB 】。

A. 第一范式 B. 第二范式 C. 第三范式 D. BCNF E. 第四范式 11.在第三范式的关系模式中,一定不存在【 BD 】。

A. 主属性对关键字的部分函数依赖 B. 非主属性对关键字的部分函数依赖 C. 主属性对关键字的传递函数依赖 D. 非主属性对关键字的传递函数依赖 E. 任何属性对关键字的部分函数依赖 F. 任何属性对关键字的传递函数依赖 12.第三范式与第二范式的关系模式比较,第三范式的优点是【 BD 】。

A. 数据查询时关系连接次数少 B. 节省存储空间 C. 节省数据操作时间 D. 数据操作异常率低 E. 无数据冗余 F. 无数据操作异常

13.在设计关系数据库时,常常要分析关系模式中各个属性的函数依赖关系,属性函数依赖引发的主要问题是【 AE 】。

A. 数据更新异常 B. 数据查询异常 C. 数据访问死锁 D. 数据备份异常 E. 数据冗余 F. 表连接异常

14.在设计关系数据库时,为了保证数据库功能且节省数据存储空间,经常要采取的措施有【 BF 】。

A. 数据加密 B. 关系模式规范化 C. 减少关系模式个数 D. 数据库独占 E. 数据加共享锁 F. 数据编码 15.在设计关系数据库时,经常要对数据进行编码,【 AE 】属于单体编码。 A. 民族码 B. 学生号 C. 身份证号 D. 汽车牌照号 E. 性别码 16.在设计关系数据库时,经常要对数据进行编码,【 CD 】属于复合编码。 A. 民族码 B. 省市编码 C. 身份证号 D. 汽车牌照号 E. 性别码 17.在设计数据库时,【 BF 】属于需求分析范畴。

A. 建立数据库表索引 B. 定义数据语义 C. 设置数据完整性规则

D. 用E-R图形描述实体 E. 建立表间关联 F. 收集、归纳和分析业务资料 18.在设计数据库时,【 BE 】属于逻辑设计范畴。

A. 创建数据库表 B. 优化关系模式 C. 用E-R图形描述实体

D. 建立数据库表索引 E. 数据编码 F. 收集、归纳和分析业务资料 19.在设计数据库时,【 AE 】属于物理设计范畴。

- 15 -

A. 设置数据完整性规则 B. 定义数据语义 C. 了解用户业务范围和流程 D. 用E-R图形描述实体 E. 建立表间关联 F. 收集、归纳和分析业务资料

习 题 四

一、 用适当的内容填空

1. 数据库文件扩展名是【 DBC 】,通常用【 数据库设计器 】创建和修改数据库。 2. 在VFP中,打开数据库设计器的命令是【 Modify 】Database。

3. 在VFP中,用字母、汉字、数字或下划线(_)命名字段,但不能用【 数字 】或【 下划线或_ 】开头。

4. 在学生表(XSB)的学号字段(XH)中,如果设定掩码为“999999”,则只允许输入【 6 】位【 数字 】符号。

5. 不带条件和范围的VFP命令Delete将删除指定表中的【 当前 】记录。

6. 在VFP中,可以为数据库表设置字段有效性规则,该“规则”是一个【 逻辑 】表达式, “信息”是一个【 字符 】表达式。

7. 在VFP中,使数据库表变为自由表的命令是【 Remove 】Table。 8. 每一个打开的表文件都有一个用来记载记录当前位置的指针,该指针指向的记录称为【 当前记录 】。

9. 在Visual FoxPro中,建立普通索引的作用之一是提高【 查询 】速度。 10. 在Visual FoxPro数据库的每个表中只能有一个【 主 】索引。 11. 在VFP中指定字段或表达式中不允许出现重复值的索引是【 主索引和候选索引 】 12. 在VFP中,同一个表的多个索引可以创建在一个索引文件中,索引文件名与相关的表同名,索引文件的扩展名是【 CDX 】,这种索引称为【 结构化复合索引文件 】。

13. 在VFP中,表设计器的“字段”选项卡中创建的是【 普通 】索引。

14. 在VFP中,为数据表建立性别(C,2)和年龄(N,2)的复合索引,正确的索引表达式为【 性别+Str(年龄,2)或性别+Str(年龄) 】。

15. 用命令“Index On 姓名 Tag name Unique”建立索引,其索引类型是【 惟一 】索引,索引文件类型是【 结构化复合索引】文件。

16. 在VFP中,Index命令无法建立的索引是【 主 】索引。

17. 在VFP系统中,用户可以使用Open Database命令打开多个数据库,但在某一时刻只有一个【 当前 】数据库。

18. 在VFP中所谓自由表就是那些不属于任何【 数据库 】的表。 19. 在VFP中参照完整性规则包括【 更新 】、【 删除 】和【 插入 】。

20. 在VFP中选择一个没有使用的、编号最小的工作区的命令是【 Select 0 】。

21. 在VFP中,使用数据库设计器为两个表建立联系,首先应在父表中建立【 主 】索引,在子表中建立【 任何或其他 】索引。

22. 数据库是一个容器,用于管理存放在其中的对象,这些对象包括【 数据库表 】、

- 16 -

【 视图 】、【 关系 】、【 存储关系 】和【 连接 】等。

23. 存储于数据库中的表称为【 数据库表 】,其在磁盘上以独立的文件保存,扩展名为【 DBF 】,将其从数据库中移出,其可以变为【 自由表 】。

24. 在VFP数据类型的描述中,用字母【 C 】表示字符类型,用字符【 N 】表示数值类型,用字母【 D 】表示日期类型,用字母【 L 】表示逻辑类型。

25. 表中备注型字段的字母表示为 【 M 】 ,备注型字段用来保存【 记录指针 】信息,建立具有备注类型字段的表将同时建立一个和表文件主名相同,扩展名为【 FPT 】的备注文件。

26.在VFP系统中,表具有的字段数最多为【 255 】个,数据库表的字段名长度最多为【 128 】个字符,自由表的字段名长度最多为【 10 】个字符。

27. 利用表设计器来设计表时,自由表和数据库表的设计界面是不同的,数据库表能够设置的【 字段级规则和约束 】信息是自由表所不具有的。

28.对数据库表使用“移去”功能,其将转换为【 自由表 】,为其设置的【 属性 】信息将丢失。

29. 利用工作区可以在VFP中同时打开多个表,VFP中共有【 32767 】个工作区,在每个工作区中能够打开【 1 】个表文件。

30.选择工作区用【 Select 】命令,其参数可以是【 工作区号 】或【 表别名 】。 31.在打开表时为其指定别名使用的关键字是【 Alias 】,没有为其指定别名,则表的默认别名为【 表文件的主名 】。

32. 对表中的记录用VFP的Delete命令进行删除,这种删除方式称为【 逻辑删除 】,在执行了Set Delete On命令后,使用Browse命令浏览表中记录则被删除的记录【 不可见或隐藏 】。

33.在表中增加一个空记录,使用的命令动词是【 Append Blank 】;将同结构其他表中记录追加到当前表中,使用的命令动词是【 Append From 】。

34.在命令中按给定条件操作记录时,表示条件通常可以使用For或While两种子句形式,对条件字段进行了索引应该使用【 While 】子句,而【 For 】子句与索引无关,其操作范围内的全部满足条件记录。

35.在VFP系统中,可以修改记录的命令有【 Brows 】、【 Edit 】、【 Change 】和【 Replace 】等;如果允许操作部分字段,可以用【 Fields 】关键字实现。

36.表中记录的输出除使用“?”命令外,还可以使用【 Display 】和【 List 】命令,在这两个命令中,将输出结果送打印机中,需要使用【 To Printer 】参数。

37. 索引是对表中的记录进行逻辑上的重新排列,VFP中的索引文件可以分为【 独立索引文件 】 、【 结构化复合索引文件 】 和【 非结构化复合索引文件 】三种,其对应的文件扩展名分别是【 IDX 】、【 CDX 】和 【 CDX 】。

38. 【 结构化复合 】索引文件可以在表打开的同时自动打开,在系统中控制索引顺序的索引称为【 控制索引 】。

39.查找表中记录可以使用的命令通常有【 Locate 】和【 Seek 】,其中【 Seek 】命令要求表具有相关项的索引。

40.统计表中满足条件的记录数可以使用【 Count 】命令;对表中数值类型求和可

- 17 -

以使用【 Sum 】命令;对表中数据进行分类汇总可以使用【 Total 】命令。

41. 表与表之间可以存在一对一关系、一对多关系和多对多关系,在VFP数据库中可以建立的关系有【 永久关系 】 和【 临时关系 】。建立关系的两个表需要建立相应的【 索引 】文件。

42.在数据库中建立的表与表之间的关系称为【 永久 】关系,其通常应用在【 数据环境 】、【 查询查询设计器 】和【 视图设计器 】中;使用Set Relation to命令建立表间的关系称为【 临时关系 】,其可以控制不同工作区中表间记录指针的联动。

二、 从参考答案中选择一个最佳答案

1. 在VFP中,创建一个名为MAIN.DBC的文件,使用的命令是【 D 】。 A. Create B. Create MAIN C. Create Table MAIN D. Create Database MAIN

2. 在VFP中,打开数据库MAIN的正确命令是【 D 】。 A. Use Database MAIN B. Use MAIN

C. Open MAIN D. Open Database MAIN 3. VFP中字段的数据类型不可以指定为【 B 】。

A. 日期型 B. 时间型 C. 通用型 D. 备注型 4.在Visual FoxPro中,存储图象的字段类型应该是【 B 】。

A. 备注型 B. 通用型 C. 字符型 D. 双精度型

5. 在一个VFP数据库表文件中有2个通用字段和3个备注字段,该表的备注文件数目是【 A 】个。

A. 1 B. 2 C. 3 D. 5 6. 当前打开的图书表中有字符型字段“图书号”,将图书号以字母A开头的图书记录全部打上删除标记的命令是【 C 】。

A. Delete For 图书号=”A” B. Delete While 图书号=”A” C. Delete For图书号=”A*” D. Delete For图书号 Like “A%”

7. 在VFP中,为当前表所有性别为\女\的职工增加100元工资,命令是【 B 】。

A. Change All 工资 With 工资+100 For 性别=\女\B. Replace 工资 With 工资+100 For 性别=\女\

C. Change All 工资 With 工资+100 D. Replace All 工资 With 工资+100 8. 在VFP中,表文件和索引文件都已打开,确保将记录指针定位在记录号为一的记录上,使用命令【 D 】。

A. Go Top B. Go Bof( ) C. Skip 1 D. Goto 1

9. 以下关于主索引和候选索引的叙述正确的是【 A 】。

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

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

10. 下列关于索引文件叙述正确的是【 A 】。

- 18 -

A. 索引文件必须配合原数据表使用

B. 一个数据表文件只能建立一个对应的索引文件

C. 复合索引文件的扩展名为IDX D. 单独索引文件的扩展名为CDX 11. 在VFP中,打开表并设置当前有效索引(相关索引已建立),下列命令正确的是【 C 】。

A. Order Student In 2 Index学号 B. Index 学号 Order Student C. Use Student In 2 Order 学号 D. Use Student In 2

12. 有一学生表,通过表设计器为该表建立索引。其中一个索引的索引表达式为姓名,索引名为XM。若该表在当前工作区中已打开,将上述索引设置为当前索引的命令是【 D 】。

A. Set Inde To 姓名 B. Set Inde To XM C. Set Orde To姓名 D. Set Orde To XM 13. 不能放入数据库容器中的对象是【 D 】。

A. 连接 B. 视图 C. 数据库表 D. 表单 14. 在VFP系统中,利用【 A 】命令可以创建表。 A. Create B. Create Database C. New D. New Table 15.在VFP中,具有扩展名.DBF的文件是【 D 】。

A. 数据库文件 B. 索引文件 C. 查询文件 D. 表文件

16. 在VFP中,表结构中的逻辑型、通用型、日期型字段的宽度由系统自动给出,它们分别为【 A 】。

A. 1、4、8 B. 4、4、10 C. 1、10、8 D. 2、8、8 17.表的记录长度比其各字段长度之和多一个字符,这个字符用来【 C 】。 A. 存放记录号 B. 存放索引标识 C. 存放删除标志 D. 存放数据库序列号

18. 在VFP中,学生表(XSB)已打开,调用表设计器对表结构进行修改,使用的命令是【 C 】。 A. Modify Structure XSB B. Modify Command XSB

C. Modify Structure D. Modify Table 19. 向表中添加记录可以使用的命令有【 B 】。

A. Append Record B. Append Blank C. New D. Create

20. 某个表中使用逻辑型字段“婚否”存储职工的婚姻状况,并规定其值为真(.T.)时代表已婚,其值为假(.F.)时代表未婚。打开该表后,要显示全部未婚职工的记录,可以使用的命令是【 C 】。

A. List All B. Display For 职工=”未婚” C. Display All For .NOT.婚否 D. List All For “未婚”

21. 用【 B 】命令可以将表中做了逻辑删除的记录真正从表中删除。

A. Delete B. Pack C. Zap D. Drop 22.删除表中全部记录的命令是Zap,与之等价的命令是【 A 】。 A. Delete All B. Delete C. Pack All D. ReCall All

- 19 -

Pack Pack Delete All Delete All

23.对打开的一个空表,分别使用函数Bof和Eof进行测试,得到的结果是【 A 】。

A. .T.和.T. B. .T.和.F. C. .F.和.T. D. .F.和.F. 24. 在当前打开的表中执行Go Bottom / Skip / ?Eof(),则屏幕显示为 【 A 】。

A. .T. B. .F. C. 没有任何信息 D. 提示出错 25. 在VFP命令中省略范围时使用For子句,则其操作范围是【 B 】。

A. 当前记录 B. 全部记录 C. Rest D. 不执行操作

26. 使用命令Use XSB In 3 Alias XSJBZL 打开表后,则表的别名为【 D 】。 A. XSXXB B. 3 C. Alias D. XSJBZL 27.执行语句Select 0选择工作区,下列说法正确的是【 D 】。 A. 选择了0号工作区 B. 选择了当前工作区

C. 选择了最小工作区 D. 选择了没有使用的最小号工作区

28.用命令“Index On 学号 Tag 学号”为学生表建立索引,其索引类型是【 A 】。

A. 普通索引 B. 主索引 C. 候选索引 D. 惟一索引 29. 统计表中满足条件的记录数,可以使用命令【 B 】。 A. RecCount B. Count C. RecNum D. Total

30.在命令窗口中使用Locate命令成功查找到所需一个记录,如要继续查找满足条件的其他记录,则应多次使用命令【 B 】。 A. Skip B. Continue C. Loop D. Next

31.为两个相关表建立永久关系,对这两个表的基本要求是【 A 】。 A. 存储于同一数据库中 B. 两个自由表

C. 存储于不同的数据库中 D. 一个是数据库表,另一个是自由表

32.建立表间参照完整性时,在父表中删除记录,要求同步删除子表中的相关记录,则父表与子表的删除规则应选择为【 A 】。

A. 级联 B. 限制 C. 忽略 D. 响应

三、 从参考答案中选择全部正确答案

1. 在VFP中,数据库用于存储【 ABC 】。

A. 数据库表的属性、有效性规则 B. 视图 C. 数据库表 D. 自由表 E. 表格 2. 下列关于数据库和数据库表之间关系叙述正确的是【 CE 】。

A. 数据库表中可以包含数据库 B. 数据库中只包含数据库表

C. 一个数据库中可含多个表 D. 数据库和其中的表没有任何关系 E. 数据库可以包含数据库表、表间的关系和视图等 3. 在Visual FoxPro中以下叙述错误的是【 ACE 】。

A. 关系也被称作表单 B. 关系也被称作表 C. 一个数据库中只能包含一个数据库表

D. 表文件的扩展名是DBF E. 多个数据库表存储在一个文件中

- 20 -

单项是【 C 】。

A.文件 B.文件和格式 C.文件和表 D.文件、格式和帮助

2.在打开表单设计器情况下,在命令窗口中执行Set Sysmenu To _Mfile后,当命令窗口为当前窗口时,显示的系统菜单项是【 B 】;当表单设计器为当前窗口时,显示的系统菜单项是【 D 】。

A.文件 B.文件和格式 C.文件和表单 D.文件、格式和表单

3.执行Set Sysmenu To _Mfile/Set Sysmenu On命令后,在命令窗口中执行EDIT且数据编辑窗口为当前窗口,系统菜单项为【 C 】。

A.没有菜单项 B.文件 C.文件和表 D.系统默认配置 4.执行Set Sysmenu To _Mfile/Set Sysmenu Off命令后,在命令窗口中执行Create Form且表单设计器为当前窗口,系统菜单项为【 D 】。

A.文件 B.系统默认配置 C.没有菜单项 D.文件、格式和表单

5.执行Set Sysmenu To _Mfile/Set Sysmenu On命令后,在程序中执行EDIT且数据编辑窗口为当前窗口,系统菜单项为【 C 】。

A.文件 B.系统默认配置 C.文件和表 D.没有菜单项

6.执行Set Sysmenu To _Mfile/Set Sysmenu Off命令后,在程序中执行Create Form且表单设计器为当前窗口,系统菜单项为【 D 】。

A.文件 B.系统默认配置 C.文件、格式和表单 D.没有菜单项

7.执行Set Sysmenu To _Mfile/Set Sysmenu Save/Set Sysmenu To _Medit/Set Sysmenu To Default命令后,当命令窗口为当前窗口时,显示的系统菜单项为【 B 】。

A.文件和编辑 B.文件和格式 C.编辑和格式 D.系统初始菜单项 8.执行Set Sysmenu To _Mfile/Set Sysmenu NoSave/Set Sysmenu To _Medit/Set Sysmenu To Default命令后,当命令窗口为当前窗口时,显示的系统菜单项为【 D 】。

A.文件和编辑 B.文件和格式 C.编辑和格式 D.系统初始菜单项 9.执行Set Sysmenu To _Mfile/Set Sysmenu To _Medit/Set Sysmenu Save命令后,系统菜单的默认配置为【 B 】。

A.文件 B.编辑和格式 C.文件和编辑 D.系统初始菜单项 10.在项目管理器的【 D 】选项卡中进行相应的操作可打开菜单设计器。 A.数据 B.文档 C.类 D.其他 11.扩展名为mnx的文件是【 D 】。

A. 索引文件 B. 表文件 C. 表单文件 D. 菜单文件

12. 保存菜单定义后,运行菜单程序前必须要完成的一步操作是【 D 】。

A.创建各级菜单 B.指定各菜单的任务 C.预览菜单 D.生成菜单程序文件 13.如果菜单项的名称为“计算”,热键是J,在菜单名称中应输入【 C 】。 A. 计算(J) B. 计算(Alt+J) C. 计算(\\

A.只有弹出式菜单 B.可能有条形菜单

- 46 -

C.既有弹出式菜单也有条形菜单 D. 没有弹出式菜单,只有条形菜单 15. 有一个菜单文件MY.MNX,要运行该菜单,正确的操作是【 C 】。 A.执行DO MY命令 B.执行DO MENU MY.MNX命令 C.先生成MY.MPR文件,再执行DO MY.MPR命令

D.先生成MY.MPR文件,再执行DO MENU MY.MPR命令

16.在定义弹出式菜单时,单击“菜单设计器”窗口中的【 B 】按钮,就会弹出一个列有VFP系统菜单项的对话框,用户可从中选择自己想要的菜单项。

A.插入 B.插入栏 C.预览 D.菜单项 17.系统默认目录中有XSB.DBF文件。在Mymenu的菜单文件中有菜单项名称为“复制表”,其过程中有Use XSB和Copy To TEMP;有另一菜单项名称为“打开”,其命令为Use TEMP。执行Do Mymenu.MPR后,鼠标单击“打开”程序出错。其原因是【 C 】。

A. “复制表”菜单项“过程”中代码有错 B. Use TEMP中没有指定文件路径 C. 应该先执行“复制表”,再执行“打开” D. 应该将Use TEMP改成Open DatBase TEMP 18.在VFP中,对菜单的正确叙述是【 D 】。

A. 程序菜单可以作为快捷菜单使用 B. 每个快捷菜项不能再有下级菜单 C. 一个程序菜单既可放在系统菜单中,也可放在表单中 D. 一个程序菜单只能放在系统菜单或表单之一中 19.在VFP中,将表单中的程序菜单MN.MNX作为系统中的菜单运行(DO MN.MPR),【 C 】。

A. 系统正常运行程序菜单 B. 系统出现死机现象

C. 系统弹出程序出错对话框 D. 系统自动忽略DO MN.MPR语句

20.在VFP中,将系统中的程序菜单MN.MNX在表单的Init事件中运行(DO MN.MPR),【 A 】。

A. 在系统菜单中显示菜单 B. 系统出现死机现象 C. 系统弹出程序出错对话框 D. 在表单中显示菜单 21.要在VFP中能运行菜单MN,在磁盘中必须有【 B 】文件。 A. MN.MNX B. MN.MPR C. MN.MNT D. MN.SCX 22.要在表单中显示菜单MN,应该在其Init事件中写【 C 】。 A. Do Menu MN.mpr With This B. Do Menu MN With This C. Do MN.mpr With This D. Do Menu MN.mpr

23.要在关闭表单时清除表单中的菜单,应该在其Destroy事件中写【 B 】。 A. Release <菜单内部名表> B. Release Menu <菜单内部名表> C. Set Sysmenu To Default D. Release Popups <菜单内部名表> 24.要在关闭表单时关闭系统菜单中的程序菜单,应该在其Destroy事件中写【 C 】。 A. ThisForm.Release B. Release Menu <菜单内部名表> C. Set Sysmenu To Default D. Set Sysmenu To

- 47 -

三、 从参考答案中选择全部正确答案

1.通过【 BCE 】可以创建菜单。

A.表单设计器 B.菜单设计器 C.快捷菜单设计器 D.菜单向导 E.命令 2.在菜单设计器“结果”列的下拉列表框中始终会出现的选项是【 ADE 】。 A.命令 B.填充名称 C.菜单项# D.子菜单 E.过程 3.设计完菜单后,应该将菜单定义保存在扩展名为【 AB 】的文件中。 A.MNX B.MNT C.MPR D.QPR E.PRG 4.以下是与设置系统菜单有关的命令,其中错误的是【 AE 】。 A. Set Sysmenu Default B. Set Sysmenu To Default

C. Set Sysmenu Nosave D. Set Sysmenu Save E. Set Sysmenu To Save 5.【 ACH 】命令用于操作菜单文件或菜单程序MYMENU。

A. Create Menu Mymenu B. Create Mymenu.mnx C. Modify Menu Mymenu D. Modify Mymenu.mnx E. Do Menu Mymenu F. Do Mymenu.mnx G. Do Menu Mymenu.mpr H. Do Mymenu.MPR

6.在Mymenu的菜单设计器中,有一个菜单项名称为“关闭”,其结果列为“命令”,命令文本框中为Set Sysmenu To Default。执行Do Mymenu.MPR后,鼠标单击“关闭”菜单项,完成的功能是【 BF 】。

A. 关闭VFP系统 B. 退出Mymenu菜单程序 C. 关闭当前数据库 D. 关闭当前数据库表 E. 关闭当前表单 F. 恢复系统菜单的默认设置 7.在VFP中,程序菜单【 CE 】。

A. 只能显示在系统菜单之后 B. 只能显示在系统菜单之前 C. 可显示在系统菜单中任意位置 D. 必须与系统菜单同时显示 E. 可以替换系统菜单

8.要在VFP中通过菜单设计器修改菜单MN,在磁盘中必须有【 AC 】文件。 A. MN.MNX B. MN.MPR C. MN.MNT D. MN.MPX E. MN.SCX

9.表单MAIN是程序菜单MAIN的顶层表单,要在VFP中能正常运行菜单MAIN,在磁盘中必须有【 BE 】文件。

A. MAIN.MNX B. MAIN.MPR C. MAIN.MNT D. MAIN.MPX E. MAIN.SCX

10.某一个菜单项的编码由一个循环构成,设计此菜单项时结果列选【 AE 】。 A. “命令”,其后填组成循环的子程序调用语句 B. “命令”,其后填写循环 C. “子菜单”,每个子菜单项含一条循环中的语句 D. “填充名称”,其后填组成循环的子程序调用语句 E. “过程”,在过程编辑器中填写循环

11.使程序菜单运行时放在系统菜单的末尾,设计此菜单时在“常规选项”对话框中可以选择【 CE 】。

- 48 -

A. 覆盖 B. 替换 C. 追加 D. 在?之前 E. 在?之后

12.使程序菜单运行时放在系统菜单的中间位置,设计此菜单时在“常规选项”对话框中可以选择【 DE 】。

A. 覆盖 B. 替换 C. 追加 D. 在?之前 E. 在?之后

- 49 -

习 题 十

一、 用适当的内容填空

1.设计报表时,可以采用【 列报表 】、【 行报表 】、【 一对多报表 】和【 多栏报表 】4种类型报表的布局格式。

2.启动报表向导后,弹出“向导选取”对话框。如果设计报表的数据源是一个表,则选取【 报表向导 】,如果设计报表的数据源包括父表和子表,则应该选取【 一对多报表向导 】。

3.用报表向导创建报表时,最多可以选定【 3 】个字段作为报表数据的排序关键字。 4.打开报表设计器修改已有报表文件的命令是【 Modify 】Report? 5.一个报表有若干区域,每一区域被称为报表的一个【 带区 】。 6.默认情况下,报表设计器显示有【 页标头 】带区、【 细节 】带区和【 页注脚 】带区。

7.报表文件的扩展名为【 FRX 】,标签文件的扩展名为【 LBX 】。 8.报表由【 数据源 】和【 数据布局 】两个基本部分组成。

9.在VFP中要快速建立一个简单格式的报表,可以使用的工具有【 报表向导 】和【 快速报表 】。

10.在报表中若插入一个文字说明,应该插入【 标签 】控件;若打印当前时间,应该插入【 域控件 】控件。

11.VFP中使用【 Report 】Form <报表文件名> To 【 Printer 】命令打印报表。如果要将报表文件的结果存放在一个文本文件中,应该使用的参数是【 To File 】。

12.在数据分组时,数据源应根据分组的表达式创建索引,且在报表的数据环境中设置表的【 Order 】属性。

13.对报表进行数据分组,报表会自动添加【 组标头 】和【 组注脚 】带区。 14.要在报表中每行打印多条记录,可以采用【 多栏 】报表。

15.利用报表【 预览 】功能,可以不打印报表就可以看到报表的外观。

二、 从参考答案中选择一个最佳答案

1.Visual FoxPro的报表文件(.FRX)中保存的是【 C 】。

A. 打印报表的预览格式 B. 已经生成的完整报表 C. 报表的格式和数据源 D. 报表设计格式的定义 2.调用报表格式文件PP,预览报表的命令是【 C 】。

A. Report From PP Preview B. Do From PP Preview C. Report Form PP Preview D. Do Form PP Preview

- 50 -

4. 在VFP中,下列文件扩展名相同的是【 CD 】。

A. 项目 B. 数据库 C. 数据库表 D. 自由表 E. 表格 5. 在VFP中,新建学生表STUDENT,且表中包含通用型字段,则生成【 CE 】文件。 A. Student.DOC B. Student.DBC C. Student.DBF

D. Student.DCT E. Student.FPT

6. 在VFP中,以下关于空值(NULL)叙述正确的是【 BE 】。

A. NULL值等同于空字符串 B. NULL值表示字段或变量还没有确定值 C. VFP不支持NULL值 D. NULL值等同于数值0 E. 主索引关键字的值不允许为NULL

7. 有关ZAP命令的描述,错误的是【 ABDE】。

A. ZAP命令只能删除当前表的当前记录

B. ZAP命令只能删除当前表的带有删除标记的记录 C. ZAP命令能删除当前表的全部记录 D. ZAP命令能删除表的结构和全部记录 E. ZAP命令和PACK命令功能完全相同

8. VFP中可以用来修改数据表记录的命令是【 BCE 】。 A. Use B. Change C. Browse D. Modify Structure E. Edit 9. 在VFP中,下列【 ABDE 】命令等效。

A. List 姓名,出生日期 B. List All Fields 姓名,出生日期 C. Display Fields 姓名,出生日期 D. Display All 姓名,出生日期 E. List Fields 姓名,出生日期

10. 下面有关索引的描述正确的是【 CE 】。

A. 建立索引以后,原来的数据库表文件中记录的物理顺序将被改变 B. 索引与数据库表的数据存储在一个文件中

C. 创建索引是创建一个指向数据库表文件记录的指针构成的文件 D. 使用索引并不能加快对表的查询操作

E. 建立索引以后,原来的数据库表文件中记录的物理顺序不会被改变 11. 在VFP中,允许出现重复字段值的索引是【 BC 】。

A. 候选索引 B. 普通索引 C. 惟一索引 D. 主索引 E. 结构化索引 12. 在VFP系统中,关于自由表叙述正确的是【 BC 】。

A. 自由表和数据库表是完全相同的 B. 自由表不能建立主索引 C. 自由表不能设置字段的属性规则和约束条件

D. 自由表不能建立候选索引 E. 自由表不可以加入到数据库中 13. 下列命令中能够以交互方式输入记录信息的命令有 【 AC 】。 A. Append B. Append Blank C. Edit D. List E. Display 14. 下列 【 B 】命令可以将表中的全部记录在打印机上打印出来。

A. Display To Printer B. List To Printer C. Dir > PRN D. Copy To Printer E. Copy Structure To Printer

- 21 -

15. 查找学生表(XSB)中1985年1月1日前出生的男同学,命令中正确的条件是【 DF 】。

A. 出生日期>{01/01/1985} AND 性别=’男’ B. 出生日期<{01/01/1985} OR性别=”男” C. 出生日期>{^1985-01-01} AND性别=’2’ D. 出生日期<{^1985-01-01} AND性别=’1’ E. 出生日期>CTOD(“01/01/85”) AND性别=’2’ F. 出生日期

16. 在Visual FoxPro中,相当于主关键字的索引是【 AE 】。

A. 主索引 B. 普通索引 C. 惟一索引 D. 排序索引 E. 候选索引 17. 打开相应的表文件,执行命令\ 姓名 Tag Index_name \建立索引后,下列叙述错误的是【 BD 】。

A. 此命令建立的索引是当前有效索引

B. 此命令所建立的索引将保存在.idx文件中

C. 表中记录按索引表达式升序排序 D. 此命令建立的索引是非结构复合索引 E. 此命令的索引表达式是\姓名\,索引标识是\

18. 表的相关索引已建立,则打开表并设置控制索引的正确命令是【 BE 】。

A. Order XSB In 2 Index 学号 B. Use XSB In 2 Order 学号

C. Index 学号 Order XSB D. Use XSB In 2 E. Use XSB In 2 Order 1

19.记录指针定位于表的开始记录,使用查找命令后,检测查找是否成功,可以使用的函数有【 BC 】。 A. Bof() B. Eof() C. Found() D. Seek() E. Succeed()

20.指定控制索引打开了一个表文件,要使记录指针定位在表中记录号为1的记录上,则可以使用的命令是【 AE 】。

A. Go 1 B. Go Top C. Skip 1 D. Next 1 E. Goto 1

21.表与表间的临时关系通常可以使用在【 E 】中。

A. 数据环境 B. 查询设计器 C. 数据库设计器 D. 视图设计器 E. 程序 22.在数据库中建立父表与子表的一对多关系,要求父表使用的索引类型有【 AC 】。

A. 主索引 B. 普通索引 C. 候选索引 D. 惟一索引 E. 交叉索引 23.设置数据库表间的参照完整性时,可以使用的连接规则有【 ACF 】。

A. 级联 B. 扩展 C. 限制 D. 共享 E. 同步 F. 忽略

- 22 -

习 题 五

一、 用适当的内容填空

1. 在SQL语句中空值用【 NULL 】表示。

2. 在SQL Select 语句中将查询结果存储到一个临时表中,应使用【 Into Cursor 】短语。

3. 在SQL Select 语句中将查询结果存储到数组中,应使用【 Into Array 】短语。 4. 在SQL Select 语句中,消除查询结果中的重复记录应使用【 Distinct 】短语 5.SQL语言是【 结构化查询 】语言,也是【 关系数据库 】的通用语言。 6.SQL语言由【 数据定义语言 】、【 数据操纵语言 】、【 数据查询语言 】和【 数据控制语言 】4部分组成,VFP不支持【 数据控制语言 】部分,Create Table语句属于【 数据定义语言 】,Update语句属于【 数据操纵语言 】,Select ? From语句属于【 数据查询语言 】。

7.在VFP中,可以在【 命令窗口 】、【 程序 】、【 查询 】和【 视图 】中运行SQL语句。在执行SQL语句(删除表Drop语句除外)操作表之前,如果没有打开表,则系统将在【 目前空闲的、编号最小的工作区中 】打开所涉及的表。在执行完SQL语句后,系统【 仍打开 】这些文件。

8.执行Create Table TEST (F_BH C(10))时,如果没有打开数据库,则TEST为【 自由 】表;如果有当前数据库,则TEST为【 数据库 】表。

9.执行Create Table TEST (F_BH C(10),F_MC C(20) Unique, Primary Key F_BH+F_MC Tag BHMC)后,建立的索引标识名有【 F_MC、BHMC 】;建立的文件名是【 TEST 】。

10.执行Select avg(外语成绩) As 外语平均分,Max(外语成绩) As 最高分 From TEST语句,将输出【 一 】行数据。

11.查询文件由【 一 】条【 Select 】语句组成,该类文件的扩展名为【 QPR 】,可以用Modify Command命令建立或修改查询文件中的Select语句,但文件名中必须加【 扩展名 】。

12.对两个Select语句的查询结果进行纵向合并(Union)时,系统默认按查询结果的【 第一列 】升序排列。要求两个查询结果中【 具有相同 】列数,并且对应列具有相同的【 数据类型 】和【 宽度 】。

13.在SQL语言中,允许在一条语句中使用另一条SQL语句,即允许SQL的语句【 嵌套 】。在VFP的SQL语句中,允许在【 Delete、Update和Select 】语句的【 Where 】短语中使用嵌套。在编写嵌套的SQL语句时,要用【 小括号 】将子查询语句括起来。在子查询的【 Where 】短语中,可以引用主SQL语句中的字段。

14.在使用SQL语句建立数据库表时,若使用短语Unique,则为该表建立一个【 候选 】索引;若不使用SQL语句,使用VFP的Index ? Unique命令,则建立的为【 唯

- 23 -

一 】索引。

15.执行Create Table 语句时,建立的索引存放在【 结构化复合索引 】文件中。 16.执行Drop Table语句时,系统除删除表文件外,还删除表的【 结构化复合索引 】文件和备注文件;想将删除的表及复合索引文件送入Windows的回收站,则应在语句中使用【 Recycle 】短语。

17.执行Insert Into语句时,若给出字段名表,则Values后的表达式表中的表达式,必须与字段名表中的字段,前后顺序一一【 对应 】,并且,表达式的数据类型与对应字段的数据类型必须【 一致 】。

18.执行Insert Into语句时,增加的记录的数据来源,除可来源于表达式表外,还可来源于【 数组 】。

19.执行Update语句时,若使用模糊运算Like,则可以使用百分号“%”和下划线“_”这两个匹配符号,其中“【 % 】”表示其出现位置的任意多个字符,“【 _ 】” 表示其出现位置的一个字符或一个汉字。

20.对于已经带删除标记的记录,用VFP命令【 Pack 】,可以将其彻底删除,用【 Recall 】命令可以去掉其删除标记。

21.执行Select语句时,使用Where短语实现的联接可以通过使用【 Inner 】Join短语等价实现。

22.在SQL Select常用统计函数中,【 SUM 】函数表示求和,【 Count 】函数表示计数,【 AVG 】函数表示求平均值。

23.执行Select语句时,设置表之间的联接类型并且使用On,和使用Where短语均可实现联接,其中使用Where短语实现联接速度较【 慢 】。

24.用Order By <排序列>短语时,排序列是查询结果中的【 列名 】或【 列序号 】。 25.在没有Group By的Select语句中使用Having短语时,其功能与【 Where 】相似,并且二者可以并列使用。

26.执行一条Select语句后,系统除了打开Select语句中涉及的文件外,还将查询结果存放在【 当前 】工作区中,其别名是“【 查询 】”,用户可以使用VFP的表操作命令对其操作。

27.使用Top短语时,由于在排序列上可能同值,因此,输出结果的数据行数可能比Top短语中定义的数据行数【 多 】。

28.执行Select语句时,若使用Into Array短语,则查询结果的记录总数(列名称行除外)决定着数组的【 行数 】,查询结果的列数决定着数组的【 列数 】。

29.执行Select语句时,若使用To File短语,则查询结果数据将保存到【 文本 】类型文件中。

30.与子查询进行运算的表达式应该是【 字段 】或包含【 字段 】的表达式,否则系统会出错。

31.VFP系统支持子查询专用的谓词有【 All 】、Any(Some)和【 Exists 】运算。 32.查询可用于自由表和数据库表,而视图只能用于【 数据库 】表。

- 24 -

二、 从参考答案中选择一个最佳答案

1. 在SQL SELECT语句中用于实现关系的选择运算的短语是【 C 】。 A. For B. While C. Where D. Condition 2. 在SQL中,与表达式“工资 Between 1200 And 1300”功能相同的表达式是【 A 】。 A. 工资>=1200 And 工资<=1300 B. 工资>1200 And 工资<1300 C. 工资<=1200 Or 工资>=1300 D. 工资>=1200 Or 工资<=1300 3. 在VFP中,以下关于删除记录的描述,正确的是【 A 】。

A. 在执行SQL的Delete命令之前,不需要执行Use命令打开表 B. 在执行VFP的Delete命令之前,不需要执行USE命令打开表 C. SQL的Delete命令物理删除数据库表中的记录 D. VFP的Delete命令物理删除数据库表中的记录

4. 在VFP中,使用SQL命令将学生表STUDENT中的全部学生年龄增加1岁,年龄字段为AGE,应使用的命令是【 D 】。

A. Replace AGE With AGE+1 B. Update STUDENT AGE With AGE+1 C. Update Set AGE With AGE+1 D. Update STUDENT Set AGE=AGE+1 5. 在表XSB中,查询CJ字段为空值的记录,应使用的SQL语句是【 B 】。

A. Select * From xsb Where cj = Null B. Select * From xsb Where cj is Null C. Select * From xsb Where cj =“” D. Select * From xsb Where cj is “” 6. 【 C 】不属于SQL语言的数据定义语言。

A. Create Table B. Alter Table C. Update Table D. Drop Table 7. 选择与SQL语句具有相近功能的VFP命令:Select ? From与【 E 】功能最相似,Insert Into?与【 C 】功能最相似。

A. Select 1 B. Insert C. Append D. Create E. List F. Delete All 8. 执行Select * From TEST前,1和3号工作区已被占用,如果没有打开TEST,则执行完这条语句后,TEST在【 C 】工作区中;如果TEST已在1号工作区中打开,则执行完这条语句后,TEST在【 B 】工作区中。

A. 0 B. 1 C. 2 D. 3 E. 4 F. 32767 G. 被关闭 9.在Create Table语句建立数据库表时,用【 G 】选项设置字段的默认值,用【 B 】选项设置字段的有效性规则。在Create Table语句中,【 E 】选项最多只能出现一次。

A. Null B. Check C. Not Null D. 字段名 E. Primary Key F. Unique G. Default H. 类型描述

10.在Create Table语句中,用短语Primary Key或Unique建立的索引存于【 D 】文件中。

A.数据库 B.独立文件索引 C.结构化索引 D.结构化复合索引 11.执行Drop Table TEST,【 C 】。

A. 从数据库中移出TEST,变为自由表 B. 删除TEST.DBF并送Windows的回收站 C. 永久性删除TEST.DBF D. 删除表中的数据记录,但保留表结构

- 25 -

12.执行Delete From TEST,【 D 】。

A. 从数据库中移出TEST,将其变为自由表 B. 永久性删除TEST.DBF

C. 物理删除表中的数据记录,但保留表结构 D. 逻辑删除TEST中的数据记录 13.Select * From XSB,CJB,KCB ??,“*”表示【 D 】。 A.XSB表中所有字段 B.CJB表中所有字段 C.KCB表中所有字段 D.3个表中所有字段

14.在Select * From XSB中,加【 B 】选项仅输出姓“宁”的记录,加【 E 】选项仅输出姓名中最后一个字为“宁”的记录,加【 A 】选项能输出姓名中含“宁”字的所有记录。

A. Where '宁'$姓名 B. Where 姓名Like '宁%' C. Where '宁%' Like姓名 D. Where 姓名$ '宁' E. Where 姓名Like '%宁' F. Where '%宁' Like姓名 15.【 D 】能删除表文件,【 E 】能更新数据记录,【 C 】能删除表中记录,【 B 】能删除表中字段,【 B 】能建立索引。

A. Select ? From B. Alter Table C. Delete From D. Drop Table E. Update F. Insert Into 16.输出学号、姓名和考试成绩,【 C 】语句能正确执行。

A.Select 学号,姓名,考试成绩 From XSB,CJB Where XSB.学号=CJB.学号 B.Select K.学号,姓名,考试成绩 From XSB K,CJB Where XSB.学号=CJB.学号 C.Select K.学号,姓名,考试成绩 From XSB As K,CJB Where K.学号=CJB.学号 D.Select XSB.学号,姓名,考试成绩 From XSB,CJB Where 学号=CJB.学号 17.Select * From XSB As L ??,【 B 】正确。

A.在Where短语中可以包含XSB.姓名 B.在Where短语中可以包含L.姓名

C.在子查询中可以包含XSB.姓名 D.结束Select语句后可以使用Select L 18.在【 D 】中不能使用Avg函数。

A.Select <表达式> B.Where <表达式> C.Having <表达式> D.子查询

19.Select * From XSB Where【 B 】用于查询出生日期为空值( / / )的记录。 A.Is Null(出生日期) B.出生日期 Is Null C.Empty(出生日期) D.出生日期 Is Empty 20.用Select语句进行两个表联接时,【 A 】联接类型仅操作符合联接条件的记录。 A.Inner Join B.Right Join C.Left Join D.Full Join 21.在VFP中,【 B 】SQL语句中不能使用嵌套语句。

A.Delete From B.Insert Into C.Select * From D.Update 22.执行“Select Count(*) from TEST”,将输出【 B 】行记录。 A.0 B.1 C.2 D.不确定

三、 从参考答案中选择全部正确的答案

1. SQL的数据操作语句不包括【 DE 】

- 26 -

A. Insert B. Update C. Delete D. Change E. Edit 2.【 BDE 】是SQL语句。

A. Select 0 B. Select * From TEST C. Delete All D. Delete From E. Drop Table F. Insert Blank 3.用Create Table语句建立表,【 CDE 】选项不能用于建立自由表,【 AFG 】选项能用于建立自由表和数据库表。

A. Null B. Free C. Check D. Default E. Primary Key F. 字段名 G. 类型描述 4.用Alter Table语句能完成【 CDFG 】任务。

A. 增加数据记录 B. 修改数据记录 C. 增加字段名 D. 修改字段名 E. 删除数据记录 F. 删除字段名 G. 修改主关键字 5.在打开数据库情况下,Drop Table TEST语句能【 ADF 】。

A. 删除TEST.DBF B. 删除TEST.IDX C. 保留TEST表结构,删除记录

D. 删除TEST.CDX E. 删除TEST.PRG F. 删除与表TEST相关的所有索引文件 6.用Create Table TEST (F_BH C(10),F_DJ N(8,2))建立表TEST后,下列【 BF 】语句能够正确执行。

A. Insert Into TEST Values('030201') B. Insert Into TEST Values('030201',3.14) C. Insert Into TEST Values('030201','3.14')

D. Insert Into TEST (f_bh) Values('030201', 3.14) E. Insert Into TEST (f_bh,f_dj) Values('030201') F. Insert Into TEST (f_bh) Values('030201') 7.在谓词Like操作中,可以使用匹配符号【 DF 】。 A. @ B.# C.$ D.% E.& F._ 8.【 BC 】语句能为表中记录加删除标记。

A. Delete From ? While <条件表达式> B. Delete While <条件表达式> C. Delete From ? Where <条件表达式> D. Delete Where <条件表达式> E. Delete From ? FOR <条件表达式> 9.在Select语句中,【 BF 】短语能将表中记录按排序列值升序输出。 A. Group By <关键字> B. Order By <排序列>

C. Group By <关键字> DESC D. Order By <排序列> DESC E. Group By <关键字> ASC F. Order By <排序列> ASC 10.使用Select语句时,【 BE 】短语能将输出结果保存到文件中。

A.Into File <文件名> B.Into Table <文件名> C.By File <文件名> D.By Table <文件名> E.To File <文件名> F.To Table <文件名> 11.对Select中On <条件表达式>和Where <条件表达式>的正确说法是【 BCF 】。 A.一条语句中只能使用其中一项 B.只有多个表联接时才用On <条件表达式>

- 27 -

C.On <条件表达式>中必须包含两个(或更多)表中的字段。 D.从一个表中提取数据时也可以使用On <条件表达式> E.Where <条件表达式>不能用于多个表联接 F.Where <条件表达式>也能用于多个表联接 12.【 BE 】语句能对关键字段进行分组统计。

A. Total By <关键字段>?? B. Total On <关键字段>?? C. Sort By <关键字段>?? D. Sort On <关键字段>?? E. Select ? Group By <关键字段> ?? F. Select ? Group On <关键字段> ?? 13.在命令窗口中用【 CE 】,能进入查询设计器;用【 AD 】能进入视图设计器。 A. Create View B. Modify Command C. Create Query D. Modify View E. Modify Query F. Use <视图名>

14.执行【 ABD 】操作后,在当前工作区中执行Browse命令不能修改数据。 A. Do TEST.QPR B. Select * From TEST C. Use TEST D. 在查询设计器中“运行” E. 在视图设计器中“运行” F. Use 视图 15.在VFP中,有关SQL语句的嵌套,正确的是【 BD 】。

A.一条语句中只能用一个嵌套语句 B.一条语句中可用多个同级嵌套语句 C.嵌套可以在任何表达式中使用 D.嵌套只能在Where短语中使用 E. 子查询中可以套用子查询

16.在使用查询设计器时,查询结果除可以在“查询”窗口中浏览外,还可以被指定输出到【 ABDE 】。

A.表文件 B.临时文件 C.数组 D.打印机 E.文本文件

- 28 -

习 题 六

一、 用适当内容填空

1.在VFP中,源程序文件的扩展名是【 PRG 】。 2.在Accept、Wait和 Input语句中,【 Input 】是能接收表达式值的语句。 3. 设X=2,Y=1,Z=3。函数Iif(X>Iif(Y>Z,Y,Z),X,Iif(Y>Z,Y,Z))的值为【 3 】。 4.在Do While .T.循环中,可以使用【 Exit 】命令终止整个循环而不退出程序。 5. VFP中的DO While作为循环结构的开始语句,其循环结束语句为【 Enddo 】。 6. VFP中的Scan作为循环结构的开始语句,其循环结束语句为【 Endscan 】。 7.执行DO WHILE语句时,最少可能执行【 0 】次循环体。

二、 从参考答案中选择一个最佳答案

1. 在VFP中,建立程序文件A.PRG的命令是:【 C 】。

A. Create Program A B. Create A C. Modify Command A D. Edit A 2. 连编后可以脱离开Visual FoxPro环境而独立运行的程序是【 B 】。 A. APP程序 B. EXE程序 C. FXP程序 D. PRG程序 3. 执行【 C 】语句时,若要输入字符串,应使用定界符。 A.Accept B. Wait C. Input D. @?Say?Get 4. VFP中的If?Else?Endif语句属于【 B 】结构。 A. 否定 B. 分支 C. 假设 D. 排除

5. VFP中的Do Case?Endcase语句属于【 B 】结构。 A. 顺序 B. 分支 C. 循环 D. 重复

6. 依次执行下列命令后,最后的输出结果是【 C 】。

Set Exact On X= \

? Iif(\

A. 1 B. 23 C. 123 a D. 1 23a

7. 在Do While ? Enddo循环结构中使用Loop语句的作用是【 C 】。 A. 退出循环结构,返回到整个程序的开始处 B. 终止整个程序的运行 C. 提前结束本次循环,转移到Do While语句行,判断循环条件是否成立 D. 终止整个循环,转到本循环结构Enddo后面的第一条语句继续执行 8. 将内存变量定义为全局变量的VFP语句是【 C 】。 A. Local B. Private C. Public D. Total 9. 在VFP中, 用于建立过程文件的命令是【 B 】。

- 29 -

A. Modify Stru <文件名> B. Modify Command <文件名> C. Create Procedure <文件名> D. Build Procedure <文件名>

三、 从参考答案中选择全部正确答案

1. 在程序运行时,可以通过键盘给字符型变量X赋值的语句是【 ABCF 】。 A. Accept To X B. Wait To X C. Input To X D. ?? X E. ? X F. @5,5 Get X Default “abc”和Read

2. 作为循环结构开始的“For M=1 To 10”语句,不能与【 DEF 】语句配对使用。 A. Endfor B. Next M C. Next D. EndDo E. Endcase F. Endif

3. 程序文件执行过程中,若通过键盘给变量X赋数值123,可选用【 CD 】语句。 A. Accept To X B. Wait To X C. Input To X D. @10,15 Get X Default 100 和Read

E. 先执行X=”100”,再执行 @10,15 Get X ,然后执行Read 4. 关于带参调用子程序的说法,正确的是【 BC 】。

A. 实参必须都是内存变量 B. 形参必须都是内存变量

C. 实参可以是常量、变量或表达式 D. 形参可以是常量、变量或表达式 E. 任何情况下形参的值都不会回送给实参

四、 阅读程序,用运行结果填空

1. 下面程序的输出结果是【 30 】【 15 】【 3 】。

Store 0 To X,Y,Z

Do While X<=15 Y=Y+5 X=X+Y Z=Z+1 Enddo ? X,Y,Z Return

2. 下面程序的输出结果是【 404 】【 505 】【 606 】。

Y=404

? Space(2)

Do While Y<=700 Y3=Int(Y/100)

Y2=Int((Y-Y3*100)/10) Y1= Y If Y1=Y3

?? Str(Y,5) Y=(Y3+1)*100 Loop Endif Y=Y+1

- 30 -

Enddo

3.下列程序的输出结果是【 11 】【 18 】【 26 】。

Store 5 To N,S

Do While .T. N=N+1 S=S+N If N>8 Exit Else

? Str(S,2) Endif Enddo Return

4.下列程序的输出结果是【 46 】。

Store 1 To S,M,N

Do While M<=5 S=S+M+N N=3

Do While N>1 S=S+M+N N=N-1 Enddo M=M+2 Enddo ? S

5. 执行下列程序,写出相应语句的输出结果。

* 主程序:EX4_5.prg

Clear Memory

Dimension X(2,3),Y(8) X(1,3)=2 Y(7)=\

Do P1 With X,Y

? X(1,3),Y(7) && 输出【 5 】【 学习VFP 】

* 子程序P1.PRG:

Parameters M(2),N(2,3)

? M(1,3),N(7) && 输出【 2 】【 VFP 】 M(1,3)=2* M(1,3)+1 N(7)= \学习\Return

6. 执行下列程序,写出相应语句的输出结果。

* 主程序EX4_6.PRG:

Clear Memory

Dimension X(3,3),Y(10) X(3,2)= \学习\Y(8)=4

Do P2 With X,Y

? X(3,2),Y(8) && 输出【 学习VFP 】【 5 】

- 31 -

* 子程序P2.PRG:

Parameters M, N

? M(3,2),N(8) && 输出【 学习 】【 4 】 M(3,2)=M(3,2)+ \N(8)=N(8)+1 Return

7. 执行下列程序,写出相应语句的输出结果。

* 主程序EX4_7.PRG:

Clear Memory Dimension M(5) Store 3 To M,N,K

Do P3 With 2,M(3),Sign(N),2*N,K

? 2, M(3), Sign(N) && 输出【 2 】【 3 】【 1 】 ? 2*N, K && 输出【 6 】【 4 】

* 子程序P3.PRG:

Parameters X1,X2,X3,X4,X5

? X1,X2,X3 && 输出【 2 】【 3 】【 1 】 ? X4,X5 && 输出【 6 】【 3 】 X1=X1+1 X2=X2+1 X3=X3+1 X4=X4+1 X5=X5+1

8. 执行下列程序,写出相应语句的输出结果。

* 主程序EX4_8.PRG:

Set Udfparms To Reference Dimension M(5) Store 3 To M,N,K

? P4(2,M(3),Sign(N),2*N,K) && 输出【 8 】 ? M(3), Sign(N) && 输出【 3 】【 1 】 ? 2*N,K && 输出【 6 】【 4 】

* 子程序P4.PRG:

Parameters X1,X2,X3,X4,X5

? X1,X2,X3 && 输出【 2 】【 3 】【 1 】 ? X4,X5 && 输出【 6 】【 3 】 X2=X2+1 X3=X3+1 X4=X4+1 X5=X5+1 Return X1+6

9. 执行下列程序,写出相应语句的输出结果。

* 主程序EX4_9.PRG:

Set Talk Off X=10 Y=20 Do Sub1

? X,Y,Z && 输出【 10 】【 20 】【 3 】

- 32 -

* 子程序Sub1

Procedure Sub1 Private X Local Y Public Z X=1 Y=2 Z=3

? X,Y,Z && 输出【 1 】【 2 】【 3 】 Return

五、 用适当内容填空,使程序完整

1. 设计下面的程序,使它成为对任意数据表都可以追加、删除记录的通用程序。

Set Talk Off

Accept \请输入数据表名: \Use 【 &Name 】 ? \追加记录\? \删除记录\

Wait \请选择(1或2) \If 【 M=\】 Append Else

Input \输入要删除的记录号: \【 Goto N 或 Go N 】 Delete Pack Endif Use

Set Talk On

2. 运行下面程序,可以显示CJB.DBF表(表中有数值型字段“考试成绩”)中的考试成绩的最高分。

Use 【 CJB 】 MX=0

【 SCAN 】

MX=Max(考试成绩,MX) Endscan

? \最高分:\【 MX 】

3. 以下是评分统计程序,共有7位评委打分。统计时去掉1个最高分和1个最低分,其余5个分数的平均值即为最后得分。

Set Talk Off

Dimension CJ(7)

【 For N=1 To 7 】 && 依次输入7个评委的打分

Input \输入第\个评委的打分(0-100):\Endfor

Store CJ(1) To MX,MN,SM For M=2 To 7

- 33 -

If MX

MX=CJ(M) Else

If MN>CJ(M)

MN=CJ(M) Endif

【 Endif 】

【 SM=SM+CJ(M) 】 Endfor

AG=(SM-MX-MN)/5

? \最后得分为:\

? \去掉的最高分为:\? \去掉的最低分为:\

4.下面程序的功能是按学号查找学生的基本情况,请将程序填写完整。

Set Talk Off Use XSB

Index On 学号 Tag xuehao CX=\

Do While 【 Upper(CX)=\】

Accept \请输入要查找的学号:\Seek 【 XH 】

If 【 FOUND() 或 !EOF() 】 Display Else

? \查无此人!\Endif

Wait \继续查询吗(Y/N)?\Enddo Use

5. 利用二维数组编写程序:首先建立3×3矩阵,然后输出该矩阵对角线上的元素。

Dimension A(3,3) For M=1 To 3 For N=1 To 3

Input \输入第\行第\列元素:\【 A(M,N)】 Endfor Endfor

For M=1 To 3 ? ' '

【 For N=1 To M 】 IF 【 M=N 】

?? Str(A(M,N),5) Else

?? Space(4) Endif Endfor Endfor Return

6. 求1~20之间能被3整除的奇数的阶乘和。

- 34 -

* 主程序:

Set Talk Off S=0

For K=1 To 20 Step 2

If 【 Mod(K,3)=0 或 K/3=Int(K/3) 】 【 Do P1 With K 】 S=S+N Endif Endfor

? \~20之间内被3整除的奇数的阶乘和是: \Set Talk On

* 程序P1.PRG:

Para M

【 Public N 】 N=1

For J=1 To M N=N*J Endfor Return

六、 用程序中执行到的语句编号填空,多次执行到的语句重复填写其编号

* 主程序MAIN.PRG:

Input '请输入:' To X 1) M=SUB(X)+5 2) ? M

* 子程序SUB.PRG:

Parameter N Private M If N>100 3) Return 0

Endif M=0

For K=1 To N 4) M=M+K^2

Next Return M

执行程序时,若输入:2,则执行【 1, 4, 4, 2 】语句,输出10。

若输入:-1,则执行【 1, 2 】语句,输出5。

若输入:101,则执行【 1, 3, 2 】 语句,输出5。

七、 修改程序中的错误

A数组有6个元素,前5个数组元素的值已按从小到大的顺序排列。下面程序段的功能是:通过键盘给第6个数组元素A(6)赋值,并使得A数组的6个元素按从小到大顺序输出。请根据题意,改正程序段中的错误。

- 35 -

Input \请输入A(6)的值:\For K=1 To 6 If A(K)>N A(K)=N N=A(K) Endif Next N

For K=1 To 6 ?? Str(A(K),6) Endfor

*改正程序如下:

Dimension A(6) A(1)=1 A(2)=2 A(3)=3 A(4)=4

A(5)=7 && 为调试程序,增加了以上6行语句, 为A数组赋值。 Input \请输入要插入的数: \For K=1 To 6 && 改为:5 If A(K)>N

A(K)=N && 改为:T=A(K) && 增加:A(K)=N N=A(K) && 改为:N=T Endif

Next N && 改为:Next K && 增加:A(6)=N For K=1 To 6 ?? Str(A(K),2) Endfor

- 36 -

习 题 七

一、 用适当内容填空

1. 在VFP中,将Windows操作系统中的窗口称为【 表单 】(即Form)。 2. VFP提供了【 表单向导 】和【 表单设计器 】两种表单设计工具。 3. 在面向对象的程序设计中,【 对象 】是构成程序的基本单位和实体。 4. 在建立对象时触发的是【 Init 】事件。

5. 当表单变为活动表单时,将触发此表单的【 Activate 】事件。

6. 在运行对象的方法或事件代码过程中,发生错误时触发【 Error 】事件。 7. 当对象失去焦点时触发【 LostFocus 】事件。

8. 按鼠标键时触发【 MouseDown 】事件;释放鼠标键时触发【 MouseUp 】事件。 9. 要打开表单设计器窗口,可用VFP的命令是【 Create Form 】或【 Modify Form 】。 10. 当把表单存盘时,将产生扩展名为【 SCX 】的【 表单 】文件和扩展名为【 SCT 】的【 表单备注 】文件。

11. 现实世界中的每一个事物可被抽象的看作是一个【 对象 】,如:一本书,一名学生等。它所具有的特征被称为【 属性 】,如:颜色,大小等。

12. 在“【 属性 】”窗口的“【 全部 】”选项卡中,列出了当前被选定对象的所有属性、事件和方法。

13. 若想更改表单的标题,则应该设置其【 Caption 】属性。 14. 在面向对象的程序设计中,使对象可见的方法名是【 Show 】。 15. ThisForm.Release表示【 释放表单 】;而ThisForm.Refresh表示【 刷新表单 】。 16. 若表单文件名为Form1,当前选定对象是Label1,则:Form1.Label1.Caption引用对象的方式是【 绝对引用 】;This.Caption引用对象的方式是【 相对引用 】。

17. 若向表单中添加控件对象,则应首先选定【 表单控件 】工具栏中的某个控件按钮,然后将鼠标移至表单上适当位置【 单击 】,就可以添加该控件对象。

18. 在面向对象的程序设计中,触发事件的方式有【 用户触发 】、【 系统触发 】和【 代码触发 】。

19. 在应用程序中,可能包含多个对象,在某一时刻允许有【一】个对象得到焦点。 20. 使对象获得焦点的方法名是【 Setfocus 】。 21. 通过【 Enabled 】属性设置对象是否可用。 22. 通过【 Visible 】属性设置对象是否可见。

二、 从参考答案中选择一个最佳答案

1. 在表单设计中,【 A 】是属性名。

- 37 -

A.Caption B.Click C.This D.ThisForm

2.设置表单的【 B 】属性值为.T.,可以使表单不被遮挡而总是位于其他窗口之上。 A. AlwaysBefore B. AlwaysOnTop C. AlwaysNoHide D. NoHide 3. 设置表单的【 C 】属性值为.T.,可以使表单首次显示时自动在VFP主窗口内居中。 A. InMidst B. WindowCenter C. AutoCenter D. InCenter 4. 设置表单背景颜色的表单属性是【 B 】。 A. FormColor B. BackColor C. FormEnvironmentColor D. FormBackColor 5. 在VFP中,表单(Form)是指【 D 】。

A. 数据库中各表的清单 B. 一个表中各个记录的清单 C. 数据库查询的列表清单 D. 窗口界面 6. 表单控件工具栏用于在表单上创建【 C 】。

A. 文本 B. 命令 C. 控件 D. 复选框 7. 表单文件保存在以【 A 】为扩展名的文件中。

A. SCX B. MNX C. PJX D. FRX 8. 下列控件中,不属于容器类控件的是【 B 】。

A. 页面 B. 标签 C. 表格 D. 命令按钮组

9. 若要同时选定表单中的多个对象,可按住【 B 】键的同时再单击其他对象。 A. Ctrl B. Shift C. Alt D. 空格键 10. 可以刷新表单及其控件上的相关数据的方法是【 A 】。 A. Refresh B. Release C. Renew D. ReShow 11. 若要从内存中释放表单,可以使用表单的【 B 】方法。 A. Refresh B. Release C. Revolution D. Hide 12. 以下关于表单数据环境叙述错误的是【 D 】。 A. 可以向表单数据环境设计器中添加表 B. 可以从表单数据环境设计器中移出表

C. 可以在表单数据环境设计器中设置表之间的关系

D. 从表单数据环境中移出表后,不会解除它与其他表在数据环境中的关系。 13. 设计表单时,可以利用【 D 】向表单中添加控件。

A. 表单设计器工具栏 B. 布局工具栏 C. 调色板工具栏 D. 表单控件工具栏 14. 下列属性中,【 D 】属性用于描述表单的窗口类型。

A. Caption B. Name C. TabStop D. WindowType 15. 表单有自己的属性、事件和【 B 】。

A. 容器 B. 方法 C. 图形 D. 命令按钮 16.【 A 】触发DblClick事件。

A. 当用户双击该对象 B. 当创建对象

C. 当从内存中释放对象 D. 当表单或表单集装入内存 17. 在表单MyForm中有一个标签Label1和一个命令按钮Command1,当前对象为命

- 38 -

令按钮,若引用标签的Caption属性,则正确的引用为【 A 】。

A. This.Parent.Label1.Caption B. Command1.Label1.Caption C. MyForm.Command1.Label1.Caption D. This.Caption

18. 现有一表单,表单上有一个命令按钮Command1,若想单击命令后,表单的栏题变为“欢迎使用本系统”,则在命令按钮的的Click事件中,应使用【 B 】命令。

A.Myform.Caption=”欢迎使用本系统” B.ThisForm.Caption=”欢迎使用本系统” C.ThisForm.Command1.Caption=”欢迎使用本系统” D.This.Caption=”欢迎使用本系统”

19. 在表单打开的情况下,同时按【 C 】组合键可以运行表单。

A. Alt+E B. Alt+R C. Ctrl+E D. Ctrl+R 20. 在VFP中,【 A 】是事件名。 A. Click B. Caption C. Visible D. Show 21. 在VFP中,【 D 】是方法名。 A. Click B. Caption C. Visible D. Show 22. 调用SetFocus方法可以触发【 B 】事件。 A. Focus B. GotFocus C. Timer D. RightClick 23. 关闭表单时,一定触发【 D 】事件。

A. Init B. Focus C. Click D. Destroy

三、 从参考答案中选择全部正确答案

1.利用VFP提供的向导功能,可以生成【 AB 】的表单。 A. 只包含单个表 B. 基于一对多关系的两个表

C. 基于三个表 D. 基于四个表 E. 基于五个表

2. 对象是应用程序的重要组成部分,通过对象的【 AEF 】来控制和管理对象。 A. 属性 B. 时间特性 C. 值域 D. 参数 E. 事件 F. 方法 3. 在应用程序所包含的多个对象中,某一时刻仅有一个对象可得到焦点。当【 ABD 】时,将触发获得焦点对象的GotFocus事件。

A. 单击鼠标 B. 按Tab键 C. 按空格键 D. 程序中调用SetFocus方法 E. 程序中调用GotFocus方法 4. 调用对象的Show方法可以【 BE 】。

A. 使对象消失 B. 将对象的Visible属性设置为.T.

C. 使对象隐藏 D. 使对象不可用 E. 使对象可见 5. 在VFP中按【 AB 】组合键可保存表单。

A. Ctrl +S B. Ctrl+W C. Alt+S D. Alt+W E. Ctrl+M 6. 以下关于OOP的叙述,正确的是【 ACE 】。 A.OOP是Object-Oriented Programming的缩写 B.OOP是Oriented-Object Programming的缩写

- 39 -

C.在OOP中,对象是构成程序的基本单位 D.在OOP中,对象不是程序的运行实体 E.OOP可以利用对象简化程序设计的过程

7. 在“属性”窗口的“全部”选项卡中有【 BCDE 】。

A.对象选择框 B.属性选择框 C.√(确认)按钮 D.×(取消)按钮 E.fx(函数)按钮 8. 下列对象中,【 ADE 】是容器对象。

A.表单 B.命令按钮 C.标签 D.命令按钮组 E.表格 9. 下列选项中,【 BD 】是对象事件。

A.Caption B.Click C.SetFocus D.Init E.Refresh 10. 下列关于表单的叙述中,正确的是【 ACE 】。

A.表单可被设计成类似于对话框的窗口 B.表单就是数据表的清单 C.在表单上可以设置各种控件对象 D.表单就是表格数据清单 E.表单实质是一个容器类对象

11. 现有一个表单,表单上有一个标签Label1,当前对象为Label1,使用【 AD 】可以引用表单的Caption属性。

A.This.Parent.Caption B.This.Caption C.Parent.Caption D.ThisForm.Caption E.Label1.Parent.Caption 12. 在VFP中,【 AB 】是属性名。

A. Name B. Caption C. Init D. Error E. MouseDown F. KeyPress 13. 在VFP中,【 BE 】是方法名。

A. GotFocus B. Hide C. Enabled D. LostFocus E. SetFocus 14. 运行表单CJ.SCX的命令是【 CE 】。

A. Do CJ B. Do CJ.SCX C. Do Form CJ D. Do From CJ E. Do Form CJ.SCX F. Do From CJ.SCX 15. 一定属于相对引用的关键字是【 AF 】。

A. This B . RelativeUsed C. ThisRelative D. ThisCommand E. ThisCommandGroup F. ThisForm 16. 关于表单数据环境的叙述,其中正确的是【 BE 】。 A. 数据环境是包含表单的容器

B. 表单运行时自动打开其数据环境中的表

C. 当表单运行时,数据环境中的表处于只读状态,只能显示不能修改 D. 当表单运行时,与数据环境中的表无关 E. 当表单关闭时,能自动关闭数据环境中的表

- 40 -

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

Top