第一篇:2009年3月全国计算机等级考试二级VFP笔试卷
2009年3月全国计算机等级考试二级VFP笔试卷+答案
(考试时间90分钟,满分100分)
选择题
(1)下列叙述中正确的是
A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表
C)循环队列是非线性结构D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构
(2)支持子程序调用的数据结构是
A)栈B)树C)队列D)二叉树
(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是
A)10B)8C)6D)4
(4)下列排序方法中,最坏情况下比较次数最少的是
A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序
(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
A)编译软件B)操作系统C)教务管理系统D)汇编程序
(6)下面叙述中错误的是
A)软件测试的目的是发现错误并改正错误
B)对被调试的程序进行“错误定位”是程序调试的必要步骤
C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性
(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是
A)提高耦合性降低内聚性有利于提高模块的独立性
B)降低耦合性提高内聚性有利于提高模块的独立性
C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D)内聚性是指模块间互相连接的紧密程度
(8)数据库应用系统中的核心问题是
A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训
(9)有两个关系R,S如下:
RS
A B CA B
a 3 2a 3
b 0 1b 0
c 2 1c 2
由关系R通过运算得到关系S,则所使用的运算为
A)选择B)投影C)插入D)连接
(10)将E-R图转换为关系模式时,实体和联系都可以表示为
A)属性B)键C)关系D)域
(11)数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是
A)DBS包括DB和DBMSB)DBMS包括DB和DBS
C)DB包括DBS和DBMSD)DBS就是DB,也就是DBMS
(12)SQL语言的查询语句是
A)INSERTB)UPDATEC)DELETED)SELECT
(13)下列与修改表结构相关的命令是
A)INSERTB)ALTERC)UPDATED)CREATE
(14)对表SC(学号 C(8),课程号 C(2),成绩 N(3),备注 C(20)),可以插入的记录是
A)('20080101', 'c1', '90',NULL)B)('20080101', 'c1', 90, '成绩优秀')
C)('20080101', 'c1', '90', '成绩优秀')D)('20080101', 'c1', '79', '成绩优秀')
(15)在表单中为表格控件指定数据源的属性是
A)DataSourceB)DateFromC)RecordSourceD)RecordFrom
(16)在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是
A)可以定义一个新的基本表结构B)可以定义表中的主关键字
C)可以定义表的域完整性、有效性规则等信息的设置
D)对自由表,同样可以实现其完整性、有效性规则等信息的设置
(17)在Visual FoxPro中,若所建立索引的字段值不允许重复,并且一个表中只能创建一个,这种索引应该是
A)主索引B)唯一索引C)候选索引D)普通索引
(18)在Visual FoxPro中,用于建立或修改程序文件的命令是
A)MODIFY<文件名>B)MODIFY COMMAND <文件名>
C)MODIFY PROCEDURE <文件名>D)上面B和C都对
(19)在Visual FoxPro中,程序中不需要用PUBLIC等命令明确申明和建立,可直接使用的内存变量是
A)局部变量B)私有变量C)公告变量D)全局变量
(20)以下关于空值(NULL值)叙述正确的是
A)空值等于空字符串B)空值等同于数值0
C)空值表示字段或变量还没有确定的值D)Visual FoxPro不支持空值
(21)执行USE sc IN 0命令的结果是
A)选择0号工作区打开sc表 B)选择空闲的最小号的工作区打开sc表
C)选择第1号工作区打开scD)显示出错信息
(22)在Visual FoxPro中,关系数据库管理系统所管理的关系是
A)一个DBF文件B)若干个二维表C)一个DBC文件D)若干个DBC文件
(23)在Visual FoxPro中,下面描述正确的是
A)数据库表允许对字段设置默认值B)自由表允许对字段设置默认值
C)自由表或数据库表都允许对字段设置默认值
D)自由表或数据库表都不允许对字段设置默认值
(24)SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的A)列B)行C)关系D)分组
(25)在Visual FoxPro中,假设表单上有一个选项组:O男 O女,初始时该选项组的value属性值为1。若选项按钮“女”被选中,该选项组的value属性值是
A)1B)2C)“女”D)“男”
(26)在Visual FoxPro中,假设教师表T(教师号,姓名,性别,职称,研究生导师)中,性别是C型字段,研究生导师是L型字段。若要查询“是研究生导师的女老师”信息,那么SQL语句“SELECT * FROM T WHERE <逻辑表达式>”中的<逻辑表达式>应是
A)研究生导师 AND 性别= “女”B)研究生导师 OR 性别= “女”
C)性别= “女” AND 研究生导师=.F.D)研究生导师=.T.OR 性别=女
(27)在Visual FoxPro中,有如下程序,函数IIF()返回值是
PRIVATE X,Y
STORE “男” TO X
Y=LEN(X)+2
?IIF(Y<4, “男”, “女”)
RETURN
A)“女”B)“男”C).T.D).F.(28)在Visual FoxPro 中,每一个工作区中最多能打开数据库表的数量是
A)1个B)2个C)任意个,根据内存资源而确定D)35535个
(29)在Visual FoxPro 中,有关参照完整性的删除规则正确的描述是
A)如果删除规则选择的是“限制”,则当用户删除父表中的记录时,系统将自动删除子表中的所有相关记录
B)如果删除规则选择的是“级联”,则当用户删除父表中的记录时,系统将禁止删除与子表相关的父表中的记录
C)如果删除规则选择的是“忽略”,则当用户删除父表中的记录时,系统不负责检查子表中是否有相关记录D)上面三种说法都不对
(30)在Visual FoxPro中,报表的数据源不包括
A)视图B)自由表C)查询D)文本文件
第(31)到第(35)题基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别,年龄)其中学号、姓名和性别为 C型字段,年龄为N型字段。
SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段(初始为空值)。
(31)查询学生选修课程成绩小于60分的学号,正确的SQL语句是
A)SELECT DISTINCT 学号 FROM SC WHERE “成绩” <60
B)SELECT DISTINCT 学号 FROM SC WHERE 成绩 < “60”
C)SELECT DISTINCT 学号 FROM SC WHERE 成绩 <60
D)SELECT DISTINCT “学号” FROM SC WHERE “成绩” <60
(32)查询学生表S的全部记录并存储于临时表文件one中的SQL命令是
A)SELECT * FROM 学生表 INTO CURSOR one
B)SELECT * FROM 学生表TO CURSOR one
C)SELECT * FROM 学生表 INTO CURSORDBF one
D)SELECT * FROM 学生表TO CURSOR DBF one
(33)查询成绩在70分至85分之间学生的学号、课程号和成绩,正确的SQL语句是
A)SELECT 学号,课程号,成绩 FROM sc WHERE 成绩 BETWEEN 70 AND 85
B)SELECT 学号,课程号,成绩 FROM scWHERE 成绩 >=70 OR 成绩 <=85
C)SELECT 学号,课程号,成绩 FROM scWHERE 成绩 >=70 OR <=85
D)SELECT 学号,课程号,成绩 FROM scWHERE 成绩 >=70 AND <=85
(34)查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是
A)SELECT 学号,课程号 FROM sc WHERE 成绩 = “"
B)SELECT 学号,课程号 FROM sc WHERE 成绩 = NULL
C)SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL
D)SELECT 学号,课程号 FROM sc WHERE 成绩
(35)查询选修C2课程号的学生姓名,下列SQL语句中错误的是
A)SELECT 姓名 FROM S WHERE EXISTS;
(SELECT * FROM SC WHERE 学号=S.学号 AND 课程号= 'C2')
B)SELECT 姓名 FROM S WHERE 学号 IN;
(SELECT * FROM SC WHERE课程号= 'C2')
C)SELECT 姓名 FROM S JOIN ON S.学号=SC.学号 WHERE 课程号= 'C2'
D)SELECT 姓名 FROM S WHERE 学号=;
(SELECT * FROM SC WHERE课程号= 'C2')
二、填空题(每空2分,共30分)
将每一个空的正确答案写在答题纸上【1】-【15】序号的横线上,答在试卷上,在试卷上不得分,(1)假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有 【1】 个元素。20
(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】 测试。白盒
(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。顺序结构
(4)数据库系统的核心是【4】数据库管理系统
(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5 】框。菱形
(6)所谓自由表就是那些不属于若任何【6】的表。数据库
(7)常量{^2009-10-01,15:30:00}的数据类型是【7】日期时间型。
(8)利用SQL语句的定义功能建立一个课程表,并且为课程号建立主索引,语句格式为:CREATE TABLE 课程表(课程号 C(5)【8】,课程名 C(30))primary key
(9)在Visual FoxPro中,程序文件的扩展名是【9】。.prg
(10)在Visual FoxPro中,SEELCT 语句能够实现投影、选择和【10】三种专门的关系运算。联接
(11)在Visual FoxPro中,LOCATE ALL命令按条件对某个表中的记录进行查找,若查找不到满足条件的记录,函数EOF()的返回值应是【11】。.T.(12)在Visual FoxPro中,设有一个学生表STUDENT,有学号、姓名、年龄、性别等字段,用户可以用命令”【12】 年龄 WITH 年龄+1”将表中所有学生的年龄增加一岁。Replace all
(13)在Visual FoxPro中,有如下程序:
*程序名:TEST.PRG
SET TALK OFF
PRIVATE X,Y
X= ”数据库“
Y= ”管理系统“
DO sub1
?X+Y
RETURN
*子程序:sub1
LOCAL X
X= ”应用“
Y= ”系统"
X= X+Y
RETURN
执行命令DO TEST后,屏幕显示的结果应是【13】。数据库系统
(14)使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当在GROUP BY 中使用【14】子句。Having
(15)设有SC(学号,课程号,成绩)表,下面 SQL的SELECT语句检索成绩高于或等于平均成绩的学生的学号。
SELECT 学号 FROM sc;
WHERE 成绩>=(SELECT 【15】 FROM sc)avg(成绩)
第二篇:全国计算机等级考试二级vfp考点
010二级公共基础知识复习纲要
第 1 章
数据结构与算法
考点1:算法具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。确定性:是指算法中每一个步骤都必须是有明确定义的,不允许模棱两可的定义 有穷性:是指算法必须能在有限的时间内做完
一个算法由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构 考点2:算法复杂度包括时间复杂度和空间复杂度 时间复杂度
执行算法所需要的计算工作量 空间复杂度
执行这个算法所需要的内存空间 考点3:数据结构
一:讨论的问题:1.数据元素之间的逻辑关系,即数据的逻辑结构 2.数据元素在计算机中的存储关系,即数据的存储结构 3.对各种数据结构进行的运算
考点4:数据结构分为两大类型:线性结构与非线性结构。(1)如果一个非空的数据结构满足下列两个条件: ① 有且只有一个根结点;
② 每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。
如果一个数据结构不是线性结构,则称之为非线性结构。考点5:线性表
特点:(1)线性表中所有元素所占的存储空间是连续的
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的 考点5: 栈的基本概念
栈(stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。栈是按照“先进后出”或“后进先出”的原则组织数据的。考点6:队列的基本概念
队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。当表中没有元素时称为空队列。即先进先出表。循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用
考点7: 链表
在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。考点8:二叉树性质
(1)
在树结构中,每一个结点只有一个前件,称为父结点,没有父结点的只有一个,成为根结点
(2)
没有后件的结点成为叶子结点
(3)
一个结点所拥有的后件个数称为该结点的度,在树中,所有结点中最大的度称为树的度
(4)
树的最大层次称为树的深度
(5)
在二叉树的第k层上,最多有2^(k-1)个结点(6)
深度为m的二叉树最多有2^m-1个结点(7)
任意一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个(8)
满二叉树:除最后一层外,每一层上的所有结点都有两个子节点
(9)
完全二叉树:除最后一层外,每一层上的结点数都达到最大值,在最后一层上只缺少右边的若干结点
考点9: 二叉树的遍历
根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。(1)前序遍历
先访问根结点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树 时,仍需先访问根结点,然后遍历左子树,最后遍历右子树。(2)中序遍历
先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子 树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。例如,对图 1-1 中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)(3)后序遍历
先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子 树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。考点10:各种排序的复杂度(1)顺序查找需要比较n 次
(2)冒泡排序在最坏的情况下需要比较次数为n(n-1)/2。(3)简单插入排序法,最坏情况需要n(n-1)/2 次比较;(4)希尔排序法,最坏情况需要O(n1.5)次比较。
(5)简单选择排序法,最坏情况需要n(n-1)/2 次比较;(6)堆排序法,最坏情况需要O(nlog2n)次比较。
第二章:程序设计基础
考点1:结构化程序设计的原则
(1)自顶向上:先考虑整体,再考虑细节;先考虑全局目标,再考虑局部目标;(2)逐步求精:对复杂问题应设计一些子目标作为过渡,逐步细化;
(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。
(4)限制使用goto 语句:在程序开发过程中要限制使用goto 语句。考点2:结构化程序的基本结构
结构化程序的基本结构有三种类型:顺序结构、选择结构和循环结构。
考点3: 面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。对象是面向对象方法中最基本的概念,主要特点:(1)标识惟一型
(2)分类性(3)多态性
(4)封装性
(5)模块独立性好 考点4:消息:对象间的相互合作需要一个机制来协助进行,这个机制就是消息 考点5:继承是面向对象的方法的一个主要特征,分为单继承和多重继承
第三章:软件工程基础
考点1: 计算机软件是包括程序、数据以及相关文档的完整集合,软件工程包括3 个要素:方法、工具和过程
考点2: 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期还可以分为软件定义、软件开发、软件运行维护阶段 软件定义阶段包括:可行性研究、需求分析
软件开发阶段包括:概要设计、详细设计、实现、测试 软件维护阶段包括:使用、维护、退役
考点3:软件工程的理论和技术性研究主要包括:软件开发技术和软件工程管理 考点4:数据流图图符的含义
圆形表示加工,箭头表示数据流,等于号表示存储文件,矩形表示源、潭
考点5:数据字典:是结构化分析方法的核心,数据字典是对所有与系统相关的数据元素的一个有组织的列表
考点6:软件需求规格说明书是需求分析阶段的最后成果 考点7:模块独立性
衡量模块独立性的定性标准:内聚性与耦合性
内聚性:是一个模块内部各个元素间彼此结合的紧密程度的度量 耦合性:模块间互相连接的紧密程度的度量 一个优秀的设计应尽量做到高内聚、低耦合
考点8:典型的数据流类型有两种:变换型和事务型 考点9:程序流程图图符的含义
考点10:软件测试是为了发现错误而执行程序的过程 静态测试是由人工进行的测试 动态测试是基于计算机的测试
考点11:白盒测试主要方法:逻辑覆盖、基本路径测试
黑盒测试主要方法:等价类划分法、边界值分析法、错误推测法、因果图等
软件测试过程一般按4个步骤来进行:单元测试、集成测试、验收测试、系统测试
考点12:程序调试的任务是诊断和改正程序中的错误,与测试不同,软件测试是尽可能多的发现错误
第四章:数据库设计基础
考点1:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织,数据操纵,数据维护,控制及保护和数据服务等 考点2:数据库系统提供的数据语言:(1)
数据定义语言:该语言负责数据的模式定义与数据的物理存取构建(2)
数据操纵语言负责数据的操纵,包括查询及增、删、改等
(3)
数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等 考点3:数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、硬件平台与软件平台
考点4:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序,数据独立性分为物理独立性和逻辑独立性 考点5:数据库的三级模式
(1)
概念模式:是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图(2)
外模式:是用户的数据视图,也就是用户所见到的数据模式(3)
内模式:它给出了数据库物理存储结构与物理存取方法 考点6:数据模型所描述的内容有三个方面:(1)
数据结构:主要描述数据的类型、内容、性质以及数据间的联系(2)
数据操作:主要描述在相应数据结构上的操作类型与操作方式(3)
数据约束:主要描述数据结构内数据间的语法、语义联系 考点7:E-R模型
(1)E-R模型由三个基本概念组成:实体、联系和属性
(2)在E-R图示法中:矩形表示实体集,椭圆形表示属性,菱形表示联系
考点8:关系模型的约束包括实体完整性约束、参照完整性约束、用户自定义完整性约束 考点9:关系代数
并运算:关系R与S经并运算后所得到的关系是由那些在R内或在S内的有序组 交运算:关系R与S经交运算后所得到的关系是由那些即在R内又在S内的有序组 差运算:关系R与S经差运算后所得到的关系是由那些在R内但不在S内的有序组 自然连接: 考点10:E-R图与关系的转换
E-R图中实体与联系都可以转换成关系,属性也可以转换成关系的属性 1.1 数据库基础知识
考点1 计算机数据管理的发展 1数据与数据处理
数据是指存储在某一种媒体上能够识别的物理符号。数据处理的中心问题是数据管理。2计算机数据管理(l)人工管理。(2)文件系统。(3)数据库系统。
(4)分布式数据库系统。(5)面向对象数据库系统。3数据库管理系统
为数据库的建立、使用和维护而配置的软件称为数据库管理系统DBMS(DataBase Management System)。
图1-1 数据库系统中数据与程序的关系 考点2 数据库系统 1有关数据库的概念
(1)数据库(DataBase):存储在计算机存储设备上、结构化的相关数据的集合。
(2)数据库应用系统(DBAS):是由系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。
(3)数据库管理系统(DBMS):对数据实行专门管理,提供安全性和完整性等统一机制,可以对数据库的建立、使用和维护进行管理。
(4)数据库系统(DBS):是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统由硬件系统、数据库、数据库管理系统及相关软件、数据库管理员和用户等部分组成。2数据库系统的特点
(l)实现数据共享,减少数据冗余。(2)采用特定的数据模型。(3)具有较高的数据独立性。(4)具有统一的数据控制功能。考点3 数据模型 1实体的描述(1)实体。
(2)实体的属性。(3)实体集和实体型。
2实体间联系及联系的种类(1)一对一联系。(2)一对多联系。(3)多对多联系。3数据模型简介
为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,通常有以下3种。(1)层次数据模型。(2)网状数据模型。(3)关系数据模型。小提示:
数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是DBS包括DB和DBMS。1.2 关系模型
关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。1关系术语
(l)关系:一个关系就是一张二维表,每个关系有一个关系名。在Visual FoxPro中一个关系存储为一个文件,扩展名为DBF,称为“表”。
对关系的描述称为关系模式,一个关系模式对应一个关系的结构,格式为: 关系名(属性名1,属性名2,„,属性名n)(2)元组:在一个二维表中,水平方向的行称为元组,每一行为一个元组。(3)属性:将二维表中垂直方向的列称为属性,每一列都有一个属性名。(4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。
(5)关键字:属性或属性的组合,其值能够唯一地标识一个元组。在Visual FoxPro中,主关键字和候选关键字就起唯一标志一个元组的作用。
(6)外部关键字:如果表中一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,那么这个字段(属性)就称为外部关键字。2关系的特点
(1)关系必须规范化。
(2)在同一个关系中不能出现同名属性,Visual FoxPro中表示为字段名的不同。(3)关系中不允许有完全相同的元组,即冗余。(4)在一个关系中元组的次序无关紧要。(5)在一个关系中列的次序无关紧要。考点5 关系运算
对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算,关系的基本运算有两类:传统的集合运算和专门的关系运算。1传统的集合运算
(1)并:两个相同结构关系的并是由属于这两个关系的全部元组组成的集合。
(2)差:两个相同结构关系的差是由属于前一个关系的元组而不属于后一个关系的元组组成的集合。例如,关系R和S的差结果是由属于R但不属于S的元组组成的集合。(3)交:两个相同结构关系的交是由属于这两个关系所共有的元组组成的集合。2专门的关系运算
(1)选择:从关系中找出满足给定条件的元组的操作。(2)投影:从关系模式中指定若干个属性组成新的关系:
(3)连接:关系的横向结合,将两个关系模式拼接成一个更宽的关系模式。
(4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连接。自然连接是去掉重复属性的等值连接。小提示:
选择和投影运算的操作对象只是一个表,相当于对一个二维表进行切割。连接运算则需要把两个表作为操作对象。如果两个表以上进行连接,应当两两进行连接。1.3 数据库设计基础 考点6 数据库设计步骤 1设计原则
(l)关系数据库的设计应遵从概念单一化“一事一地”的原则。(2)避免在表之间出现重复字段。
(3)表中的字段必须是原始数据和基本数据元素。(4)用外部关键字保证有关联的表之间的联系。2设计步骤
利用Visual FoxPro来开发数据库应用系统,可以按照以下步骤来设计。(1)需求分析。(2)确定需求表C(3)确定需求字段。(4)确定联系。(5)设计精确
1.4 Visual FoxPro系统概述 考点7 Visual FoxPro的特点(l)增强项目与数据库管理。
(2)提高应用程序开发的生产率。(3)互操作性与支持Internet。(4)充分利用已有数据。2.1程序与程序文件 程序与程序文件
考点1 程序的概念、建立与执行 1程序的概念
程序是能够完成一定任务的命令集合。这组命令被存放在称为程序文件或命令文件的文本文件中。当运行程序时,系统会按照一定的次序自动执行包含在程序文件中的命令。2程序文件的建立与修改
程序文件的建立与修改一般是通过调用系统内置的文本编辑器来进行的。其建立步骤如下。(l)打开文本编辑窗口。
(2)在文本编辑窗口中输入程序内容,此处所输入的程序命令不会马上被执行。
(3)编辑完成后,从“文件”菜单中选择“保存”命令或按快捷键Ctrl+W保存程序文件。3打开或修改程序文件的方法
(1)从“文件”菜单中选择“打开”命令,弹出“打开”对话框。(2)在“文件类型”列表框中选择“程序”。(3)在文件列表框中选定要修改的文件,并单击“确定”按钮。
(4)编辑修改后,从“文件”菜单中选择“保存”命令或按快捷键Ctrl+W保存程序文件,若要放弃修改,可直接按Esc键,或从“文件”菜单中选择“还原”命令。4程序文件的执行
程序文件建立后,可使用多种方式、多次执行它,常用的以下有两种方式。(l)菜单方式。(2)命令方式。
考点2 简单的输入输出命令
程序一般都包含数据输入、数据处理和数据输出3个部分。1 INPUT命令
格式:INPUT[<字符表达式>]TO<内存变量> 功能:该命令等待用户从键盘输入数据,当用户回车后,系统将表达式的值存入指定的内存变量。
注释:输入的数据可以是常量、变量,也可以是更为一般的表达式。但不能不输入任何内容直接按回车键输入字符串时必须加定界符,输入逻辑型常量时要用圆点定界(如.T.,.F.),则输入日期时间型常量时要用大括号(如{^2001-03-01})。2 ACCEPT命令
格式:ACCEPT[<字符表达式>]TO<内存变量> 功能:该命令等待用户从键盘输入字符串,当用户回车后,系统将表达式的值存入指定的内存变量。
注释:该命令只能接收字符串。用户在输入字符串时不需要加定界符;否则,系统会把定界符作为字符串本身的一部分。如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。3 WAIT命令
格式:WAIT[<字符表达式>][TO<内存变量>][WINDOW[AT<行>,<列>]] [NOWAIT][CLEARINOCLEAR][TIMEOUT<数值表达式>] 功能:该命令显示字符表达式的值作为提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续程序运行。
注释:<内存变量>用来保存用户输入的字符,其类型为字符型。若用户按的是Enter键或单击了鼠标,那么<内存变量>中保存的将是空串若不选TO <内存变量>短语,则输入的单字符不保留。小提示:
如果用DO命令执行查询文件、菜单文件,在文件名中必须要包括扩展名(QPR、MPR)。7.2 程序的基本结构
程序结构是指程序中命令或语句执行的流程结构,包括3种基本结构:顺序结构、选择结构和循环结构。考点3 顺序结构
顺序结构是最简单的程序结构,它是按命令在程序中出现的先后次序依次执行。考点4 选择结构
支持选择结构的语句包括条件语句和分支语句。1条件语句 格式: IF<条件> <语句序列1> [ELSE> <语句序列2>] ENDIF 功能:该语句根据<条件>是否成立从两组代码中选择一组执行。语句的执行流程图如图7-1和图7-2所示。
图7-1有ELSE的选择语句
图7-2无ELSE的选择语句 2分支语句
格式:DO CASE CASE<条件1> <语句序列1> CASE<条件2> <语句序列2> ……
CASE<条件n> <语句序列n> [OTHERWISE <语句序列>] ENDCASE
功能:语句执行时,依次判断CASE后面的条件是否成立。分支语句实现的是一种扩展的选择结构,可以根据条件从多组代码中选择一组执行。分支语句的流程如图7-3所示。
图7-3 多分支语句 考点5 循环结构
循环结构也称为重复结构,是指程序在执行的过程中,其中的某段代码被重复执行若一干珠。被重复执行的代码段,通常称为循环体。Visual FoxPro支持循环结构的语句包括:DO WHILE-ENDDO、FOR-ENDFOR和SCAN-ENDSCAN。1 DO WHILEENDFOR语句 格式:
FOR<循环变量>=<初值>TO<终值>[STEP<步长>] <循环体> ENDFOR 功能:首先将初值赋给循环变量,然后判断循环条件是否成立(若步长为正值,则循环条件为<循环变量><=<终值>;若步长为负值,则循环条件为<循环变量>>=<终值>)。如果成立,则执行循环体,然后循环变量增加一个步长值,并再次判断循环条件,一直到条件为假时,退出循环体。该语句通常用于实现循环次数已知情况下的循环结构〕 3 SCAN-ENDSCAN语句 格式:
SCAN[<范围>][FOR<条件1>][WHERE<条件2>] <循环体> ENDSCAN
功能:该循环语句一般用于处理表中记录,语句可指明需要处理的记录范围及应满足的条件。执行该语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令。7.3 多模块程序
模块是一个相对独立的程序段,它可以被其他模块调用,也可以调用其他模块。通常,把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。应用程序一般都是多模块程序,包含多个程序模块。考点6 模块的定义和调用 1模块的定义
在Visual FoxPro中,模块可以是命令文件,也可以是过程。过程定义的语句格式为: PROCEDURE|FUNCTION<过程名> <命令序列> [RETURN[<表达式>]] [ENDPROCIENDFUNC] 功能说明如下。
(1)PROCEDURE|FUNCTION命令表示一个过程的开始,并命名过程。过程名必须以字母或下划线开头,可以包含数字、字母和下划线。
(2)当程序执行到RETURN命令时,控制将转回到调用处(或命令窗口),并返回表达式的值。若默认RETURN命令,系统将在过程结束处自动调用一条隐含的RETURN命令。(3)ENDPROC|ENDFUNC命令表示一个过程的结束。如果默认此语句,那么过程结束于下一条PROCEDURE|FUNCTION命令或文件尾。2模块的调用
模块调用的格式有两种。
(1)使用DO命令,格式如下。DO<文件名>|<过程名>(2)在名字后加一对小括号,格式如下。<文件名>|<过程名>()3打开过程文件 命令格式如下。
SET PROCEDURE TO[<过程文件1>[,<过程文件2>,„][ADDITIVE] 4关闭过程文件 命令格式如下。
RELEASE PROCEDURE<过程文件1>[,<过程文件2>,„] 考点7 参数传递
模块程序可以接收调用程序传递过来的参数。
(1)PARAMETERS<形参变量1>[,<形参变量2>,„]。(2)LPARAMETERS<形参变量1>[,<形参变量2>,„]。
说明PARAMETERS声明的形参被看做是模块程序中建立的私有变量,LPARAMETERS声明的形参被看做是模块程序中建立的局部变量。除此之外,两条命令无其他区别。不管是PARAMETERS或LPARAMETERS,都应该是模块程序的第一条可执行命令。(1)调用参数调用模块程序参数的格式如下。
DO<文件名>|<过程名>WITH<实参1>[,<实参2>,„] <文件名>|<过程名>(<实参1>[,<实参2>,„])说明:实参可以是常量、变量或一般表达式,调用模块程序时,形参的数目不能少于实参的数目,当形参数目多于实参数目时,多余的形参取初值逻辑假.F.。
(2)参数的传递。模块中参数的传递分为两种:按值传递(实参一般为常量和表达式)和引用传递(实参一般为变量)。参数的传递方式可以重新设置,格式如下。SET UDFPARMS TO VALUE|REFERENCE 考点8 变量的作用域
变量的一个重要属性是作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在Visual FoxPro中,可分为公共变量、私有变量和局部变量3类。1.公共变量
在任何模块中都可使用的变量称为公共变量,公共变量必须先定义后使用,格式如下。PUBLIC<内存变量表> 说明:该命令是建立公共的内存变量,并赋以初值逻辑假.F.。建立好的公共变量一直有效,即使程序结束返回命令窗口也不会消失,只有执行CLEAR MEMORY,RELEASE或QUIT等命令后,才能被释放。2私有变量
在程序中直接使用(没有预先声明),而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。3局部变量
局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。程序结束时,自动释放局部变量。格式如下 LOCAL<内存变量表> 说明:该变量同样给建立的内存变量赋以初值逻辑假.F.,也必须先定义后使用。当子程序中定义的变量名与主程序中同名时,为避免子程序中的变量值改变主程序中的变量值,可在子程序中使用PRIVATE命令隐藏主程序中可能存在的变量,使这些变量在子程序中暂时无效。格式如下。
(1)PRIVATE<内存变量表>。
(2)PRIVATE ALL[LIKE<通配符>|EXCEPT<通配符>]。说明:该命令并不建立内存变量,它只是隐藏指定的在上层模块中可能已经存在的内存变量,但是当模块程序返回到上层模块时,被隐藏的变量就自动恢复有效性,保持原值。7.4 程序调试
考点9 调试器环境
程序调试是指在发现程序有错误的情况下,确定出错位置并纠正错误。计算机一般能够发现程序的出错位置,但对于计算机不能发现的错误,只能由用户自己来查错。Visual FoxPro提供的功能强大的调试工具—调试器,可帮助我们进行这项工作。调用调试器的方法一般有两种。
(l)选择“工具”菜单中的“调试器”命令。(2)在命令窗口中输入DEBUG命令。考点10 设置断点
可以设置以下4种类型的断点。
(1)在定位处中断:可指定一行代码,当程序调试执行到该行时,中断程序运行。
(2)如果表达式值为真,则在定位处中断:指定一行代码及一个表达式,当程序调试执行到该行代码时,如果表达式值为真,就中断程序运行。
(3)当表达式值为真时中断:可以指定一个表达式,在程序调试执行过程中,当该表达式值为逻辑真.T.时,中断程序运行。
(4)当表达式值改变时中断:可以指定一个表达式,在程序调试执行过程中,当该表达式值改变时,中断程序运行。考点11 “调试”菜单
“调试”菜单包含执行程序、选择执行方式、终止程序执行、修改程序,以及调整程序执行速度等命令。各命令具体功能如下。
(1)运行:执行在跟踪窗口中打开的程序:
(2)继续执行:当程序被中断时,该命令可使程序在中断处继续往下执行。(3)取消:终止程序的调试执行,并关闭程序。
(4)定位修改:终止程序的调试执行,然后在文本编辑窗口中打开调试程序。
(5)跳出:以连续方式而非单步方式继续执行被调用模块程序中的代码,然后在调用程序的调用语句的下一行处中断。
(6)单步:单步执行下一行代码。如果下一行代码调用了过程或者方法程序,那么该过程或者方法程序在后台执行。
(7)单步跟踪:单步执行下一行代码。
(8)运行到光标处:从当前位置执行代码直至光标处中断。
(9)调速:打开“调整运行速度”对话框,设置两代码行执行之间的延迟秒数。
(10)设置下一条语句:程序中断时选择该命令,可使光标所在行成为恢复执行后要执行的语句。
3.1 Visual FoxPro数据库及其建立 考点1 建立和使用数据库 1数据库的建立
(1)在项目管理器中建立数据库。(2)通过“新建”对话框建立数据库。(3)使用命令建立数据库,格式为:
CREATE DATABASE[DatabaseName |?] 2数据库的打开
(1)在项目管理器中打开。(2)通过“打开”对话框打开数据库。(3)使用命令打开数据库,格式为:
OPEN DATABASE[FileName |?][EXCLUSIVE I SHARED] [NOUPDATE] [VALIDATE] 考点2 修改和删除数据库
Visual FoxPro在建立数据库时建立了扩展名分别为dbc、dct和dcx的3个文件,用户不能直接修改这些文件。
Visual FoxPro中修改数据库实际是打开数据库设计器,完成数据库中各种对象的建立、修改和删除等操作。
可以有3种方法打开数据库设计器。(1)从项目管理器中打开数据库设计器。(2)从“打开”对话框中打开数据库设计器。(3)使用命令打开数据库设计器,格式为: MODIFY DATABASE[DatabaseName|?] 在项目管理器中不管删除还是移去数据库文件,都不会删除其所包含的各个对象做口数据表)。如果要在删除数据库的同时删除其所包含的数据表,就必须使用命令,格式为: DELETE DATABASE DatabaseName|?[DELETETABLES][RECYCLE] 小提示:
在Visual FoxPro中,Open DataBase和Modify DataBase命令的区别在于:Open DataBase打开的只是数据库的工作环境,并不会进入数据库设计器;Modify DataBase是打开数据库设计器。4.2 建立数据库表
考点3 在数据库中建立表 在数据库中建立数据表,最直接的方法就是在数据库设计器中利用鼠标右键单击空白处,选择“新建表”命令,在弹出的表设计器中设置数据表结构。另外可以在命令窗口利用OPEN DATA命令先打开数据库,然后利用CREATE命令打开表设计器进行数据表设计,如图4-l所示。
图4-1 表设计器 1字段名
(l)自由表字段名最长为10个字符。(2)数据库表字段名最长为128个字符。(3)字段名必须以字母或汉字开头。
(4)字段名可以由字母、汉字、数字和下划线组成。(5)字段名中不能包含空格。2字段类型和宽度
(1)字符型:可以是字母、数字等各种字符型文本,如用户名称。(2)货币型:货币单位,如货物价格。(3)数值型:整数或小数,如订货数量。(3)浮点型:功能类似于“数值型”,其长度在表中最长可达20位。(4)日期型:由年、月、日构成的数据类型,如订货日期。
(5)日期时间型:由年、月、日、时、分、秒构成的数据类型,如员工上班的时间。(6)双精度型:双精度数慎类型,一般用于要求精度很高的数据。(7)整型:不带小数点的数值类型,如订单的行数。
(8)逻辑型:值为“真”(.T.)或假(.F.),如表示订单是否已执行完。
(9)备注型:不定长的字符型文本。在表中占4个字节,表备注型文件的扩展名为FPT。(10)通用型:用于标记电子表格、文档、图片等OLE对象,在表中占4个字节。(11)字符型(二进制)。(12)备注型(二进制)。3空值
一个字段是否允许为空值与实际应用有关,比如作为关键字的字段是不允许为空值的,而那些在插入记录时允许暂缺的字段值往往允许为空值。4字段有效性组框
在字段有效性组框中可以定义字段的有效性规则、违反规则时的提示信息和字段的默认值。5显示组框
在显示组框下可以定义字段显示的格式、输入的掩码和字段的标题。输入掩码是字段的一种属性,用限制或控制用户输入的格式。标题用于字段显示时的标题,如果不指定标题则显示字段名。当字段名是英文或缩写时,则通过指定标题可以使界面更友好。6字段注释
可以为每个字段添加注释,便于日后或其他人对数据库进行维护。考点4 修改表结构 在Visual FoxPro中可以对表结构任意修改,修改表结构和建立表结构时,表设计器界面完全一样。修改数据表结构时,首先应该用USE命令打开要修改的数据表,然后利用MODIFY STRUCTURE打开表设计器进行修改,具体操作有以下几种。(1)修改已有字段。(2)添加新字段。(3)删除不用的字段。4.3 表的基本操作
考点5 使用浏览器操作表
在交互式工作方式下,最简单、方便的方法就是使用BROWSE浏览器浏览表,打开浏览器的方法有多种。在项目管理器中将数据库展开至表,然后单击“浏览”按钮,或直接在窗口中输入BROWSE命令(首先应该打开表文件)。1浏览器操作
(1)下一记录(下箭头键)。(2)前一记录(上箭头键)。(3)下一页(PageDown键)。(4)上一页(PageUp键)。(5)下一字段(Tab键)。
(6)前一字段(Shift+Tab键)。2修改记录
只需将光标定位到要修改的记录和字段上,就可以进行修改了。3删除记录 Visual FoxPro中删除记录有逻辑删除和物理删除两种,逻辑删除只在记录旁做删除标记(如图4-2所示),必要时可以进行恢复物理删除是在逻辑删除的基础上真正地将记录从表中删除。要在浏览器中删除有删除标记的记录,可选择“表/彻底删除”菜单命令。
图4-2 增加和删除记录
考点6 增加、删除、修改和显示记录的命令 1增加记录
APPEND命令是在表的尾部增加记录,格式有如下两种。格式1:APPEND 格式2:APPEND BLANK 2插入记录
格式:INSERT [BEFORE][BLANK] 3删除记录
删除记录有物理删除和逻辑删除两种,Visual FoxPro用来删除记录的命令如下。(1)设置删除标记的命令
格式:DELETE [FOR lExpressionl] 说明:如果不使用FOR短语指定逻辑条件,则只删除当前记录,否则逻辑删除满足条件的所有记录。
(2)恢复记录的命令。
格式:RECALL [FOR lExpressionl] 说明:使用该命令恢复表中逻辑删除的记录,短语FOR的功能同上。(3)物理删除有删除标记的记录 格式:PACK 说明:此命令用来物理删除当前表中所有带删除标记的记录。(4)物理删除表中的全部记录 格式:ZAP 说明:不管表中记录是否带有删除标记,此命令可以一次性将当前表中的记录全部物理删除,但表结构仍保留使用此命令相当于DELETE ALL与 PACK的连用。4修改记录
在Visual FoxPro中可以交互修改记录,也可以用指定值直接修改记录。(1)用EDIT或CHANGE命令交互式修改。(2)用REPLACE命令直接修改。5显示记录
格式:LIST/DISPLAY [[FIELDS]FieldList][FOR LExpressionl][OFF] [TO PRINTER[PROMPT]|TO FILE FileName] 考点7 查询定位的命令(1)用GOTO命令直接定位(2)SKIP命令
(3)用LOCATE命令定位。
LOCATE命令是按条件定位记录位置,格式为: LOCATE FOR IExpressionl LOCATE命令常用结构如下。LOCATE FOR IExpression1 DO WHILE FOUND()****处理数据*** CONTINUE ENDDO 小提示:
连续使用DELETE ALL和PACK命令,其操作结果与ZAP命令一样,都可以将表中的所有记录一次性物理删除。4.4 索引与排序
考点8 索引的基本概念
索引是对表中的记录按照某种逻辑顺序重新排列。
(l)主索引:在指定的字段或表达式中不允许出现重复值的索引,且一个表只能创建一个主索引。
(2)候选索引:具有与主索引相同的性质和功能,但一个表中可以创建多个候选索引,其指定的字段或表达式中也不允许出现重复值。
(3)唯一索引:它的“唯一性”是指索引项的唯一,而不是字段值的唯一。但在使用该索引时,重复的索引段值只有唯一一个值出现在索引项中。
(4)普通索引:不仅允许字段中出现重复值,并且索引项中也允许出现重复值。考点9 索引的建立 1单项索引
在表设计器界面中有“字段”、“索引”和“表“3个选项卡,在“字段”选项卡中定义字段时就可以直接指定某些字段是否为索引项,用鼠标单击定义索引的下拉列表框可以看到3个选项:无、升序和降序(默认是无)。如果选定升序或降序,则在对应的字段上建立一个普通索引,索引名与字段名同名,索引表达式就是对应的字段。2复合字段索引
(1)在“索引”选项卡中的索引名栏目中输入索引名。(2)在索引类型的下拉框中选择索引类型。
(3)单击表达式栏右侧的按钮,打开表达式生成器。
(4)在“表达式”文本框中输入索引表达式(如图4-3所示),最后单击“确定”按钮。
图4-3 表达式生成器界面
3使用命令建立索引
格式:INDEX ON eExpression TO IDXFileName | TAG TagName[OF CDXFileName] [FOR lExpression][COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] 从索引的组织方式来讲,索引共有3种类型。(1)单独的IDX索引,是一种非结构索引。
(2)采用非默认名的CDX索引,也是一种非结构复合索引。(3)与表同名的CDX索引,是结构复合索引。结构复合索引文件可随表的打开而打开,在同一个索引文件中能包含多个索引方案或索引关键字,在添加、更改或删除记录时自动维护索引。考点10 索引的使用
(l)打开索引文件,格式为: SET INDEX TO Indexfilelist(2)设置当前索引,格式为:
SET ORDER TO[nIndexNumber |[TAG]TagName][ASCENDING|DESCENDING](3)使用索引快速定位,格式为:
SEEK eExpression[ORDER nIndexNumber|[TAG]TagName][ASCENDING| DESCENDING](4)删除索引,格式为:
DELETE TAG TagNamel
&&TagName1为索引名 要删除全部索引,可使用命令:DELETE TAG ALL 考点11 排序
索引可以使用户按照某种顺序浏览或查找表中的记录,这种顺序是逻辑的,如要对表中的记录按物理顺序重新排列,可使用SORT命令,格式为: SORT TO TableName ON FieldNainel[/A}/D][/C][,FieldName2[/A|/D][/C]„][ASCEND ING | DESCENDING][FOR lExpressionl][FIELDS FieldNameList] 小提示:
在数据库表中只能有一个主索引,且只能在表设计器中建立。其他3种索引可以建立多个,既能在表设计器中建立,也能以命令方式建立,但在自由表中不能为其创建主索引,只能创建后3种索引,同样也可以建立多个。4.5 数据完整性
考点12 实体完整性与主关键字
(1)实体完整性是保证表中记录唯一的特性,即在同一个表中不允许有重复的记录出现。在Visual Pro中通过主索引和候选索引来保证数据的实体完整性。
(2)如果一个字段的值或几个字段的值能够唯一标志表中的一条记录,则称这个字段为候选关键字。在Visual FoxPro中将主关键字称做主索引,将候选关键字称为候选索引。考点13 参照完整性与表之间的关联 1建立表之间的联系
参照完整性与表之间的联系有关,其含义大致是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,检查对表的数据操作是否正确。
在数据库设计器中设计表之间的联系时,要在父表中建立主索引,在子表中建立普通索引,然后通过父表主索引和子表的普通索引建立起两个表之间的联系。2设置参照完整性约束
建立参照完整性之前,首先必须清理数据库,即物理删除表中被逻辑删除的记录,然后选择两个关联表之间的连线并选择“数据库”、“编辑参照完整性”菜单命令,打开如图4-4所示的“参照完整性生成器”对话框。
图4-4 “参照完整性生成器”对话框 小提示:
欲建立两表之间的联系,首先用鼠标选中一个表的主索引,按住鼠标左键不放,并拖动鼠标到另一个表的索引上,这时鼠标箭头变成小矩形状,最后释放鼠标。4.6 自由表
考点14 数据库表与自由表
自由表是不属于任何数据库的表。在没有打开数据库时,所建立的表就是自由表。数据库表与自由表之间可以相互转化。1建立自由表的方法
(1)在项目的“数据”选项卡中选择“自由表”,单击“新建”按钮。
(2)在没有打开数据库的情况下,通过“新建”对话框,选择“表”并单击“新建文件”按钮。
(3)在没有打开数据库的情况下,在命令窗口输入CREATE命令,新建自由表。2数据库表相对于自由表的特点
(l)数据库表可以使用长表名,在表中可以使用长字段名。(2)可以为数据库表中的字段指定标题和添加注释。(3)可以为数据库表中的字段指定默认值和输入掩码。(4)数据库表的字段有默认的控件类。
(5)可以为数据库表规定字段级规则和记录级规则。
(6)数据库表支持主关键字、参照完整性和表之间的联系。(7)支持INSERT,UPDATE和DELETE事件的触发器。考点15 将自由表添加到数据库中
(1)在数据库设计器中可利用“数据库”→“添加表”菜单命令,在“打开”对话框中选择自由表文件,将其添加到数据库中。
(2)直接用命令方式将自由表添加到当前数据库中,格式为: ADD TABLE TableName|?[NAME LongTableName] 考点16 从数据库中移出表
(1)直接利用命令移出数据库表,格式为:
REMOVE TABLE TableName |?[DELETE][RECYCLE](2)从项目管理器中移出数据库。(3)从数据库设计器中移出数据库。4.7 多个表的同时使用
在Visual FoxPro中,一次可以打开多个数据库,每个数据库都可以打开多个数据表。考点17 多工作区的概念
指定工作区的命令格式为SELECT nWorkArea | cTableAlias,每个表打开后都有两个默认别名,一个是表的自身名,另一个是工作区所对应的别名。在前10个工作区中指定的默认别名是工作区字母A~J,其后面的工作区所对应的别名为W11~W32767。
另外还可以在USE命令中通过ALIAS短语指定表别名。
例如:USE学生表IN 1 ALIAS student,为学生表指定了别名student。考点18 使用不同工作区的表
除了使用SELECT命令切换不同的工作区之外,也可以在一个工作区使用其他工作区的数据表。即通过短语:IN nWorkArea|cTableAlias。在表别名后加上“.”或“->”操作符,可在一个工作区中直接调用其他工作区中数据表的记录。例如当前工作区号为2,要调用1区上学生表中的班级号的相关字段,可使用命令:
学生表.班级号 或学生表->班级号或A.班级号或A->班级号 考点19 表之间的关联
使用SET RELATION命令建立表间记录指针的临时联系(关联)。
格式:SET RELATION TO eExpressionl INTO nWorkAreal I cTableAliasl。
说明:eExpressionl是指建立临时联系的索引关键字,一般是父表的主索引,子表的普通索引。用工作区号 nWorkAreal或表的别名cTableAlias I说明临时联系是由当前工作区的表到哪个表。利用SET RELATION TO命令将取消当前表到所有表的临时联系。4.1 SQL概述 5.1 SQL概述 考点1 概述 1概念
SQL是结构化查询语言Structured Query Language的缩写。它包括数据查询、数据定义、数据操纵和数据控制4部分。Visual FoxPro在SQL方面支持数据定义、数据查询和数据操纵功能。另外,由于Visual FoxPro自身在安全控制方面的缺陷,所以它没有提供数据控制功能。2 SQL语言的特点
(1)一种一体化的语言。
(2)一种高度非过程化的语言。(3)语言非常简洁。
(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2 查询功能
SQL的核心是查询,基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可嵌套执行,如表5-1所示。
表5-1 SQL命令动词
考点2 简单查询 1简单查询
简单查询是由SELECT和FROM短语构成的无条件查询,或由SELECT,FROM和WHERE短语构成的条件查询。2简单的连接查询
连接是关系的基本操作之一,连接查询是一种基于多个关系的查询。3嵌套查询
嵌套查询所要求的结果出自一个关系,但关系的条件却涉及多个关系。其内层基本上也是一个SELECT-FROM-WHERE查询语句。这种简单嵌套查询,可使用谓词IN或NOT IN来判断在外层的查询条件中是否包含内层查询的结果。考点3 特殊运算符号 1 BETWEEN„AND„
含义:该查询的条件是在„„范围之内,相当于用AND连接的一个逻辑表达式。2 LIKE 含义:它是一个字符串匹配运算符,与之搭配使用的通配符包括“*”和“?”。考点4 排序
使用SQL SELECT可以将查询结果进行排序,排序的短语是ORDER BY。格式:ORDER BY Order_Item[ASCIDESC][,Order_Item[ASC|DESC]„] 说明:可以按升序(ASC)或降序(DESC)排序,允许按一列或多列排序。考点5 计算查询 1简单的计算查询
SQL不仅具有一般的检索能力,而且还有计算方式的检索,用于计算检索的函数有:COUNT(计数)、SUM(求和)、AVG(计算平均值)、MAX(求最大值)及MIN(求最小值)。2分组与计算查询
在SQL SELECT中可以利用GROUP BY子句进行分组计算查询。
格式:GROUP BY GroupColumn[,GroupColumn„][HAVING FilterCondition] 说明:可以按一列或多列分组,还可以用HAVING子句进一步限定分组的条件。它必须跟在GROUP BY子句之后,不可单独使用,与WHERE子句并不矛盾。考点6 别名和自连接查询
(1)SQL语句允许在二OM短语中为关系定义别名,格式为:一 <关系名><别名>(2)SQL不仅可以对多个关系进行连接操作,也可以将同一关系与其自身进行连接,这种连接就称为自连接。在关系的自连接操作中,别名是必不可少的。考点7 使用量词和谓词的查询
与嵌套查询或子查询有关的运算符,除了IN和NOT IN运算符外,还有两类与子查询有关的运算符,它们有以下两种格式。
(1)<表达式><比较运算符>[ANY I ALL | SOME](子查询)(2)[NOT]EXISTS(子查询)EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。考点8 超链接查询
(1)在新的SQL标准中支持两个新的关系连接运算符,这两个新的连接运算是左连接(*=)和右连接=*):首先保证一个表中满足条件的元组都在结果表中,然后将满足连接条件的元组与另一个表的元组进行连接,不满足连接条件的则应将来自另一个表的属性值置为空值。在一般SQL中超链接运算符是“*=”(左连接)和“=*”(右连接)。(2)在Visual FoxPro中不支持超链接运算符“*=”和“=*”,Visual FoxPro有专门的连接运算。下面拼出SQL中超链接的部分语句格式: SELECT…
FROM Table INNER|LEFT|RIGHT|FULL JOIN Table ON JoinCondition WHERE…
考点9 Visual FoxPro中SQL SELECT的几个特殊选项(l)显示部分结果,格式为: TOP nExpr[PERCENT](2)将查询结果存放到数组中,格式为: INTO ARRAY ArrayName(3)将查询结果存放到临时文件中,格式为: INTO CURSOR CursorName(4)将查询结果存放到永久表中,格式为: INTO DBF|TABLE TableName(5)将查询结果存放到文本文件中,格式为: TO FILE FileName[ADDITIVE](6)将查询结果直接输出到打印机,格式为: TO PRINTER[PROMPT] 5.3 操作功能 考点10 插入
Visual FoxPro支持两种SQL插入命令的格式,一种是标准格式,另一种是特殊格式。1标准格式
INSERT INTO dbf name[(frame 1[,fname2,„])] VALUES(eExpressionl[,eExpression2,„])2特殊格式
INSERT INTO dbf _name FROM ARRAY ArrayName|FROM MEMVAR 考点11 更新
SQL的数据更新命令格式如下: UPDATE TableName SET Column_Namel=eEpressionl[,Column_Name2=eExpression2„] WHERE Condition 说明:利用WHERE字句指定条件,以更新满足条件的一些记录的字段值,并巨一次可更新多个字段;如果不使用WHERE子句,则更新全部记录。考点12 删除
SQL从表中删除数据的命令格式如下:
DELETE FROM TableName[WHERE Condition] 说明:FROM指定从哪个表中删除记录,WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。小提示:
当一个表定义一个主索引或候选索引后,由于相应的字段具有关键字的特性,即不能为空,所以只能用此命令插入记录、)APPEND和INSERT都是插入一条空白记录再输入各字段的值,故不能用它们来插入记录。5.4 定义功能 考点13 表的定义
利用SQL命令建立的数据表同样可以完成在表设计器中设计表的所有功能。格式:CREATE TABLE I DBF TableNamel[NAME LongTableName][FREE](FieldNarnel FieldType[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK IExpressionl [ERROR cMessageTextl]] [DEFAULT eExpressionl] [PRIMARY KEY I UNIQUE] [PEFERENCES TableName2[AG TagName1]] [NOCPTRANS] [,FieldName2„] [,PRIMARY KEY eEpression2 TAG TagName2|,UNIQUE eExpression3 TAG TagName3] [,FOREIGN KEY eExpression4 TagName4[NODUP] REFERENCES TableName3 [TAG TagName5]] [,CHECK lExpression2[ERROR cMessageText2]])|FROM ARRAY ArravNasne 说明:此命令除了建立表的基本功能外,还包括满足实体完整性的主关键字(主索引)PRIMARY KEY、定义域完整性的CHECK约束及出错提示信息ERROR、定义默认值DEFAULT等,另外还有描述表之间联系的FOREIGN KEY和REFERENCES等。考点14 表的删除
利用SQL命令删除表,可直接使用语句,格式为: DROP TABLE Table_name 说明:如果删除的是自由表,则应该将当前打开的数据库先关闭,才能进行删除。如果删除数据库表,则要先打开数据库,在数据库中进行操作二否则,即使删除了数据库表,但记录在数据库中的信息并没有被删除,此后会出现错误提示。考点15 表结构的修改
修改表结构的命令是ALTER TABLE,该命令有3种格式。
(1)ALTER TABLE TableNamel ADD| ALTER[COLUMN]FieldNamel FieldTvpe[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK lExpressionl[ERROR cMessageTextl ]][DEFAULT eExpressionl] [PRIMARY KEY |UNIQUE] [REFERENCES TableName2[TAG TagNamel〕](2)ALTER TABLE TableNamel ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET EFAULTeExpression2][SET CHECK lExpression2[ERROR cMessageText2] [DROP DEFAULT][DROP CHECK](3)ALTER TABLE TableName1[DROP [COLUMN]FieldName3] [SET CHECK lExpression3[ERROR cMessageText3] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2[FOR lExpression4]] [DROP PRIMARY KEY〕
[ADD UNIQUE eExpression4[TAG TagName3[FOR lExpression5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY[eExpression5] TAG TagName4[FOR lExpression6] REFERENCES TableName2[TAG TagName5]] [DROP FOREIGN KEY TAG TagName6[SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] 考点16 视图的定义 1视图的概念及其定义(l)视图的概念。
Visual FoxPro中视图是一个虚拟的表,可以是本地的、远程的或带参数的。(2)视图的定义,格式为:
CREATE VIEW view name[(column_name[,column_name]„)] AS select_statement 2从单个表派生出来的视图
视图一经定义,就可以和基本表一样进行各种查询,也可以进行一些修改操作。对于最终用户来说,有时并不需要知道操作的是基本表还是视图。3从多个表派生出来的视图
视图一方面可以限定对数据的访问,另一方面又可以简化对数据的访问。4视图的删除
视图由于是从表派生出来的,所以不存在修改结构的问题,但是视图可以删除。格式:DROP VIEW<视图名> 5关于视图的说明
在关系数据库中,视图始终不真正含有数据,它总是原有表的一个窗口。所以,虽然视图可以像表一样进行各种查询,但是插入、更新和删除操作在视图上却有一定限制。在一般情况下,当一个视图是由单个表导出时可以进行插入和更新操作,但不能进行删除操作;当视图是从多个表导出时,插入、更新和删除操作都不允许进行。这种限制是很有必要的,它可以避免一些潜在问题的发生。5.1 查询与视图
考点1 查询设计器 1查询的概念
查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果。查询以扩展名为QPR的文件保存在磁盘上的,这是一个文本文件,它的主体是SQL SELECT语句。2查询的建立
建立查询可以使用“查询设计器”,但它的基础是SQL SELECT语句。建立查询的方法有以下几个方面。
(l)可以利用CREATE QUERY命令打开查询设计器建立查询。(2)可以利用“新建”对话框打开查询设计器建立查询。
(3)可以在项目管理器的“数据”选项卡中打开查询设计器建立查询。(4)可直接编辑QPR文件建立查询。建立查询时,首先进入如图6-1所示的界面选择用于建立查询的表或视图,选择表或视图后,单击“添加”按钮。最后单击“关闭”按钮,进入如图6-2所示的查询设计器界面。
图6-1 为查询选择表或视图
查询设计器中的各选项卡和SQL SELECT语句的各短语是相对应的,对应关系如下。“字段”――SELECT短语,用于指定要查询的数据 “连接”――JOIN ON短语,用于编辑连接条件。“筛选”――WHERE短语,用于指定查询条件。
“排序依据”――ORDER BY短语,用于指定排序字段和排序方式。“分组依据”――GROUP BY短语和HAVING短语,用于分组。
图6-2 查询设计器 3查询的运行
运行查询有下列两种方法。
(1)可以在项口管理器的“数据”选项卡中,展开“查询”选项,然后选择要运行的查询文件,单击“运行”按钮,可查看查询结果。(2)在命令窗门执行命令DO QueryFile。
注意:此处的查询文件名是全名,包括扩展名QPR。4查询去向
设计查询的目的不只是完成一种查询功能,在查询设计器中可以根据需要为查询输出定位查询去向。通过“查询”菜单卜的“查询去向”,或在“查询设计器”工具栏中单击“查询去向”按钮。“查询去向”对话框如图6-3所示
图6-3 “查询去向”对话框 各去向的含义如下。
(1)浏览:在“浏览”(BROWSE)窗口中显示查询结果,这是默认的输出去向。(2)临时表:将查询结果存储于一个命名的临时只读表中。(3)表:将结果保存在一个命名的数据表文件中。(4)图形:查询结果可以用于Microsoft Graph。
(5)屏幕:在Visual FoxPro主窗口或当前活动输出窗口中显示查询结果。(6)报表:将结果输出到一个报表文件。(7)标签:将结果输出到一个标签文件。小提示:
在7种输出去向中,只有“浏览”和“屏幕”两种输出去向才能直接看到查询结果。6.2 视图
考点2 视图的概念与建立 1视图的概念
视图是操作表的一种手段,通过视图可以查询表,也可以更新表。视图是根据表定义的,因此视图基于表,而视图可以使应用更灵活,因此它又超越表。视图是数据库中的一个特有功能,只有在包含视图的数据库打开时才能使用。
视图兼有“表”和“查询”的特点,与查询相类似的地方是可以用来从一个或多个相关联的表中提取有用信息;与表类似的地方是可以用来更新其中的信息,并将结果永久性保存在磁盘上。
2视图的建立
(l)用CREATE VIEW命令打开视图设计器建立视图。(2)利用“新建”对话框打开视图设计器建立视图。
(3)在项目管理器的“数据”选项卡中打开视图设计器建立视图。(4)利用SQL命令CREATE VIEW...AS...建立视图。3视图设计象
视图设计器(如图6一所示)与查询设计器基本上一样,主要有以下几点不同。(1)视图的结果保存在数据库中,在磁盘上找不到类似的文件。
(2)视图可以用来更新数据,因此在设计器中多了一个“更新条件”选项卡。(3)在视图中没有“查询去向”的问题。
图6-4 视图设计器
考点3 远程视图与连接
为了建立远程视图,必须首先建立连接远程数据库的“连接”,“连接”是Visual FoxPro数据库中的一种对象。1定义数据源和连接
数据源一般是ODBC数据源,开放数据库互连ODBC是一种连接数据库的通用标准。为了定义ODBC数据源,必须首先安装ODBC驱动程序。2建立连接
建立连接的方法有以下几种。(1)用CREATE CONNECTION命令打开“连接设计器”,或完全用命令方式建立连接。(2)通过“新建”对话框建立连接。
(3)在项目管理器的“数据”选项卡中建立连接。3设计远程视图
利用数据源或连接建立的远程视图的SQL语法要符合远程数据库的语法,例如,SQL Server的语法和Visual FoxPro的语法就有所区别。考点4 视图与数据更新
视图是根据基本表派生出来的,所以把它叫做虚拟表为了通过视图能够更新基本表中的数据,需要在视图设计器的“更新条件”选项卡中的左下角选中“发送SQL更新”复选框。1指定可更新的表
如果视图是基于多个表的,默认可以更新“全部表”的相关字段,如果要指定只能更新某个表的数据,则可以通过“表”下拉列表框选择表 2指定可更新的字段
在“字段名”列表框中列出了与更新有关的字段,在字段名左侧有两列标志,“钥匙”表示关键字,“铅笔”表示更新通过单击相应列可以改变相关的状态,默认可以更新所有非关键字字段,并且通过基本表的关键字完成更新,即Visual FoxPro用这些关键字字段来唯一标识那些已在视图中修改过的基本表中的记录建议不要改变关键字的状态,不要试图通过视图来更新基本表中的关键字字段值,如有必要,可以指定更新非关键字字段值 3检查更新的合法性 如图6-1所示,“SQL WHERE子句包括”框中的选项决定哪些字段包含在UPDATE或DELETE语句的WHERE子句中,Visual FoxPro正是利用这些语句将在视图中修改或删除的记录发送到远程数据源或基本表中,WHERE子句就是用来检查自从提取记录用于视图中后,服务器上的数据是否已经改变。“SQL WHERE子句包括”框中各选项的含义如下。
(l)关键字段:当基本表中的关键字字段被改变时,更新失败。
(2)关键字和可更新字段:当基本表中任何标记为可更新的字段被改变时,更新失败。
(3)关键字和已修改字段:当在视图中改变的任一字段的值在基本表中已被改变时,更新失败。
(4)关键字和时间戳:当远程表上记录的时间戳在首次检索之后被改变时,更新失败。4使用更新方式
“使用更新”框的选项决定当向基本表发送SQL更新时的更新方式。
(1)SQL DELETE然后INSERT:先用SQL DELETE命令删除基本表中被更新的旧记录,再用SQL INSERT命令向基本表中插入更新后的记录。
(2)SQL UPDATE:使用SQL UPDATE命令更新基本表。考点5 使用视图
视图建立后,不但可以用它来显示和更新数据,而且可以通过调整它的属性来提高性能,它的使用类似于表。1视图操作
(1)在数据库中使用USE命令打开或关闭视图。(2)在“浏览器”窗口中显示或修改视图中的记录。(3)使用SQL语句操作视图。
(4)在文本框、表格控件、表单或报表中使用视图作为数据源。2使用视图
视图一经建立就基本可以像基本表一样使用,适用于基本表的命令基本都可以用于视图。比如在视图上也可以建立索引,此索引当然是临时的,视图一关闭,索引自动删除,多工作区时也可以建立联系等。但视图不可以用MODIFY STRUCTURE命令修改结构。因为视图毕竟不是独立存在的基本表,它是由基本表派生出来的,只能修改视图的定义。
小提示:
查询与视图的区别是:查询可以定义输出去向,可以将查询的结果灵活地应用于表单、报表、图形等各种场合,但是利用查询不可以修改数据;而利用视图可以修改数据,可以利用SQL将对视图的修改发送到基本表,特别是对于远程表的操作,利用视图是非常有效的。
6.1表单与控件 面向对象的概念 考点1 对象与类 1对象(Object)客观世界里的任何实体都可以被视为对象。对象可以是具体事物,也可以指某些概念二(1)属性:用来表示对象的状态。(2)方法:用来描述对象的行为。2类(Class)类是对一类相似对象性质的描述。同类对象具有相同的性质:相同的属性及方法。考点2 子类与继承 1继承
继承表达了一种从一般到特殊的进化过程。在面向对象的方法里,继承是指基于现有类的方法和属性。2类
我们把新类称为现有类的子类,而把现有类称为新类的父类。一个子类的成员一般包括以下两个方面。
(l)从其父类继承的成员,包括属性、方法。(2)由子类自己定义的成员,包括属性、方法。8.2 Visual FoxPro基类简介 考点3 Visual FoxPro基类
Visual FoxPro中所有基类共有的属性如表8-1所示。表8-1 Visual FoxPro基类的最小属性集
(l)在编程方式里,对象的生成通常使用CREATE OBJECT函数来完成,格式为: CREATE OBJECT(<类名>[,<参数1>,<参数2>,„])说明:函数基于指定的类生成一个对象,并返回对象的引用。(2)对象属性访问及对象方法调用的基本格式为: <对象引用>.<对象属性> <对象引用>.<对象方法>[(„)] 考点4 容器与控件
Visual FoxPro中的类一般可分为两种类型:容器类和控件类。相应地,可分别生成容器(对象)和控件(对象)。
(l)控件:是一个可以以图形化的方式显示出来并能与用户进行交互式的对象。(2)容器:可看成是一个特殊的控件,它能包容其他的控件或容器。(3)层次:容器内的包容关系形成r对象的嵌套层次关系。对象的层次概念与类的层次概念是两个完全不同的概念对象的层次关系指的是包容与被包容的关系,而类的层次指的是继承与被继承的关系。
在对象的嵌套层次关系中,要引用其中的某个对象,需要指明对象在嵌套层次中的位置。对象引用的几个属性或关键字如表8-2所示。表8-2 对象引用的几个属性或关键字
考点5 事件
事件是一种由系统预先定义而由用户或系统发出的动作。它作用于对象,对象识别事件并做出相应的反应。与方法集可以无限扩展不同的是,事件集是固定的。用户不能定义新的事件。表8-3列出了VisualFoxPro基类的最小事件集,不管哪个基类都包含这些事件。表8-3 Visual FoxPro基类的最小事件集
8.3 创建与管理表单
考点6 创建、修改及运行表单 1使用表单向导创建表单
调用表单向导的方法有多种,这里只做简单介绍。
(l)在“项目管理器”窗口中,选择“文档”选项卡,选择其中的“表单”图标。(2)单击“新建”按钮,系统弹出“新建表单”对话框。(3)单击“表单向导”图标按钮,打开“向导选取”对话框。(4)从列表框中选择要使用的向导,然后单击“确定”按钮。2使用表单设计器创建表单
可以使用以下3种方法中的任何一种调用表单设计器。(1)在项目管理器环境下调用。(2)菜单方式调用。(3)命令方式调用。3修改已有的表单
一个表单无论是通过任何途径创建的,都可以使用表单设计器进行编辑修改。我们可以通过项目或使用命令“MODIFY FORM<表单名>”来打开表单设计器。4运行表单
可以采用下列方法运行通过表单设计器创建的表单文件。
(1)在项目管理器窗口中,选择要运行的表单,然后单击窗口里的“运行”按钮。
(2)在表单设计器环境下,选择“表单”菜单中的“执行表单”命令,或单击标准工具栏上的“运行”按钮。
(3)选择“程序”菜单中的“运行”命令,打开“运行”对话框,然后在对话框中指定要运行的表单文件并单击“运行”按钮。(4)在命令窗口中输入命令,格式为:
DO FORM<表单文件名>[NAME<变量名>] WITH<实参>[,<实参>,„][LINKED][NOSHOW] 考点7 管理表单属性和方法
可以向表单添加任意数量的新属性和新方法,并像引用表单的其他属性和方法一样引用它们。Visual FoxPro中表单的属性大约有100个,但绝大多数很少用到。表8-4列出了常用的一些表单属性,这些属性规定了表单的外观和行为。表8-4 表单的常用属性
1创建新属性
向表单添加新属性的方法如F。
(l)选择“表单”菜单中的“新建属性”命令,打开“新建属性”对话框,如图8-1所示。(2)在“名称”文本框中输入新属性的名称。
(3)有选择地在“说明”列表框中输入新建属性的说明信息。
图8-1 “新建属性”对话框
2创建新方法
向表单添加新方法的步骤如下
(l)运行“表单”→“新建方法程序”命令,打开“新建方法程序”对话框,如图8-2所示。(2)在“名称”文本框中输入新方法名。
(3)有选择地在“说明”列表框中输入新建方法的说明信息。
图8-2 “新建方法程序”对话框
3编辑方法或事件代码
在表单设计器中,编辑方法或事件代码的步骤如下。
(1)选择“显示”菜单中的“代码”命令,打开代码编辑窗口,如图8-3所示。(2)从“对象”框中选择方法或事件所属的对象。(3)从“过程”框中指定需要编辑的方法或事件。(4)在编辑区输入或修改方法或事件的代码。
图8-3 代码编辑窗口
考点8 常用事件与方法
下面将以表的形式简单介绍一下表单及控件常用的一些事件和方法,如表8-5所示。表8-5 常用的一些属性和方法
8.4 表单设计器
考点9 表单设计器环境
表单设计器启动后,在Visual FoxPro的主窗口中出现“表单设计器”窗口、“属性”窗口、“表单控件”工具栏、“表单设计器”工具栏及“表单”菜单。1“表单设计器”窗口
用户可视化地添加和修改控件的窗口。2“属性”窗口
如图8-4所示,在“属性”窗口中包括对象框、属性设置框、方法和事件列表。用户可在此窗口中选择表取中的控件,并为表单设计属性、方法及事件。
对于表单及控件的绝大多数属性,其数据类型是固定的。一般来说,要为属性设置一个字符型数值,可以在设置框中直接输入,不需要加定界符。
“属性”窗口可以通过单击“表单设计器”工具栏中的“属性窗口”按钮或选择“显示”菜单中的“属性环境”命令打开或关闭。
图8-4 “属性”窗口
3“表单控件”工具栏
如图8-5所示,利用“表单控件”工具栏可以方便地向表单添加控件。
图8-5 “表单控件”工具栏
除了控件按钮外,“表单控件”工具栏还包含“选定对象”、“按钮锁定”、“生成器锁定”和“查看类”4个辅助按钮。4“表单设计器”工具栏
“表单设计器”工具栏如图8-6所示,它可以通过“显示”菜单中的“工具栏”命令打开或关闭。
图8-6 “表单设计器”工具栏
5“表单”菜单 “表单”菜单中的命令主要用于创建、编辑表单或表单集,如为表单增加新的属性和方法等。考点10 控件的操作与布局 1控件的基本操作
在表单设计器下,对表单上的控件可进行移动、改变大小、复制、删除等操作。(l)选定控件。(2)移动控件
(3)调整控件大小。(4)复制控件。(5)删除控件。2控件布局 利用“布局”工具栏中的按钮,可以方便地调整表单窗口中被选控件的相对大小或位置。“布局”工具栏丁以通过单击“表单设计器”工具栏上的“布局工具栏”按钮或选择“显示”菜单中的“布局工具栏”命令打开或关闭。3设置Tab键次序
当表单运行时,用户可以按Tab键选择表单中的控件,使焦点在控件间移动。控件的Tab键次序决定了选择控件的次序。Visual FoxPro提供了两种方式来设置Tab键次序:交互方式和列表方式。考点11 数据环境 1数据环境的常用属性
常用的两个数据环境是AutoOpenTables和AutoCloseTables,其功能如下。
(1)AutoOpenTables;表示当运行或打开表单时,是否打开数据环境中的表和视图,默认值为逻辑真.T.)。
(2)AutoCloseTables:表示当释放或关闭表单时,是否关闭由数据环境指定的表和视图,默认值为逻辑真(.T.)。
2打开数据环境设计器
可通过单击“表单设计器”工具栏中的“数据环境”按钮,也可以选择“显示”菜单中的“数据环境”命令打开或关闭“数据环境设计器”窗口。3向数据环境中添加表或视图
(1)选择“数据环境”菜单中的“添加”命令,或用鼠标右键单击“数据环境设计器”窗口,然后在弹出的快捷菜单中选择“添加”命令,打开“添加表或视图”对话框。
(2)选择要添加的表或视图并单击“添加”按钮。如果单击“其他”按钮,将调出“打开”对话框,用户可以从中选择需要的表。4从数据环境中移去表或视图
在数据环境设计器环境下,按下列方法从数据环境移去表或视图。(1)在“数据环境设计器”窗口中,单击选择要移去的表或视图。(2)选择“数据环境”菜单中的“移去”命令。
也可以用鼠标右键单击要移去的表或视图,然后在弹出的快捷菜单中选择“移去”命令。当表从数据环境中移去时,与这个表有关的所有关系也将随之消失。5在数据环境中设置关系
如果添加到数据环境的表之间具有在数据库中设置的永久关系,这些关系也会自动添加到数据环境中。如果表之间没有永久关系,可以根据需要在数据环境设计器下为这些表设置关系。6在数据环境中编辑关系
关系是数据环境中的对象,它有自己的属性、方法和事件。常用的关系属性如表8-6所示。
表8-6 常用的关系属性
7向表单添加字段
我们可以利用“表单控件”工具栏方便地将一个标准控件放置到表单上,也可以从“数据环境设计器”窗口、“项目管理器”窗口或“数据库设计器”窗口中直接将字段、表或视图拖入表单,系统将产生相应的控件并与字段相联系。8.5 常用表单控件
考点12 标签(Label)控件 标签的常用属性如下
(1)Caption属性:指定标签的标题文本很多类控件都具有Caption属性。用户可以利用该属性为所创建的对象指定标题文本。
(2)Alignment属性:指定标题文本在控件中的显示对齐方式。该属性包括三个属性值――0、1和2,分别代表左对齐、右对齐和中央对齐。考点13 命令按钮(CommandButton)控件 命令按钮的常用属性如下。
(1)Default属性:该属性默认值为.F.。当属性为.T.时,可称为“确定”按钮,一个表单中只能包含一个“确定”按钮;在Windows中,当焦点不在命令按钮上时,按Enter键,系统将自动执行该命令按钮的Click事件代码、(2)Cancel属性:该属性默认值为.F.。当属性为.T.时,可称为“取消”按钮,在表单中,可通过Esc键执行该命令按钮中的Click事件代码一个表单中可有多个命令按钮的Cancel属性值为.T.。(3)Enabled属性:指定表单或控件能否响应用户引发的事件。默认的属性值为.T.,即对象是有效的,当Enabled=.F.时,只是用来显示只读的信息。
(4)Visible属性:指定对象是可见还是隐藏。默认的属性值为.T.,即对象是可见的。考点14 命令组(CommandGroup)控件
命令组是包含一组命令按钮的容器控件,其常用属性如下。
(1)ButtonCount属性:指定命令组中命令按钮的个数,默认的属性值为2。(2)Buttons属性:用于存取命令组中各按钮的数组。用户可以利用该数组为命令组中的命令按钮设置属性或调用其方法,属性数组下标的取值范围应该在1到ButtonCount属性值之间。(3)Value属性:指定命令组当前的状态。该属性的类型可以是数值型,也可以是字符型。考点15 文本框(TextBox)控件 文本框的常用属性如下。
(1)ControlSource属性:可利用该属性为文本框指定一个字段或内存变量,运行时,文本框中首先显示该变量的内容
(2)Value属性:返回文本框的当前内容。该属性的默认值是空串。(3)PasswordChar属性:指定文本框控件内是显示用户输入的字符还是显示占位符。该属性的默认值是空串,此时没有占位符。当为属性指定一个占位符(例如*)后,文本框中只显示占位符。
(4)InputMask属性:指定在一个文本框中如何输入和显示数据。各种模式符的功能如表8-7所示。
表8-7 模式符及其功能
考点16 编辑框的常用属性如下。
(1)AllowTabs属性:指定编辑框中能否使用Tab键。该属性的默认值为.F.,当按Tab键时,焦点移出编辑框。
(2)HideSelection属性:指定当编辑框失去焦点时,编辑框中选定的文本是否仍显示为选定状态。该属性的默认值为.T.,即当编辑框失去焦点时,编辑框中选定的文本不显示为选定状态(3)ReadOnly属性:指定用户能否编辑编辑框中的内容。如果该属性的默认值为.F.,则叮以编辑编辑框中的内容;当属性值为.T.时,编辑框中的内容为只读。
(4)ScrollBars属性:指定编辑框是否具有滚动条。该属性包括“0-无” 和“2-垂直”两个属性值。
(5)SelStart属性:返回用户在编辑框中所选文本的起始位置或插入点位置。属性的有效取值范围在0与编辑区中的字符总数之间。
(6)SelLength属性:返回用户在控件的文本输入区中所选定字符的数目,或指定要选定的字符数目。
(7)SelText属性:返回用户编辑区内选定的文本。如果没有选定文本,将返回空串。考点17 复选框(CheckBox)控件 复选框的常用属性如下。
(1)Caption属性:用来指定显示在复选框旁边的文字。
(2)Value属性:用来指明复选框的当前状态,共有3种情况:0或.F.表示未被选中;1或.T.表示被选扣;2或.NULL.表示不确定,只在代码中有效。
(3)ControlSource属性:指明与复选框建立联系的数据源。作为数据源的字段变量或内存变量,其类型可以是逻辑型或数值型。考点18 选项组(OptionGroup)控件
选项组是包含若干个选项按钮的一种容器控件,其常用属性如下。(1)ButtonCount属性:指定选项组中选项按钮的数目,其默认值为2,(2)Value属性:用于指定选项组中哪个选项按钮被选中。该属性值的类型可为数值k1J或字符型。
(3)ControlSource属性:指明与选项组建立联系的数据源。作为数据源的字段变量或内存变量,其类型可以是字符型或数值型
(4)Buttons属性:用于存取选项组中每个按钮的数组,其含义与命令组的Buttons类似。考点19 列表框(ListBox)控件 列表框的常用属性如下
(1)RowSourceType属性与RowSource属性:RowSourceType属性指明列表框中的条目数据源的类型,RowSource属性指定列表框的条目数据源。RowSourceType属性共有10种取值范围:0-无(默认值)、1-值,2-别名、3-SQL语句,4-查询(.qpr),5-数组,6-字段,7-文件,8-结构,9-弹出式菜单。(2)List属性:用以存取列表框中数据条目的字符串数组。(3)ListCount属性:指明列表框中数据条目的数目。(4)ColumnCount属性:指定列表框的列数。
(5)Value属性:列表框中被选中的条目。该属性可以是数值型,也可以是字符型。
(6)ControlSource属性:该属性在列表框中的用法和在其他控件中的用法有所不同。用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。(7)Selected属性:指定列表框内的某个条目是否处于选定状态〕(8)MultiSelect属性:指定用户在列表框控件内进行多重选定。其中,0或.F.表示不允许多重选定,为系统默认值;1或.T.表示允许多重选定。考点20 组合框(ComboBox)控件
组合框与列表框类似,也是用于提供一组条目供用户从中选择,组合框的特点如下。(1)对于组合框来说,通常只有一个条目是可见的。(2)组合框不提供多重选定的功能。
(3)组合框可通过Style属性设置其形式,共有两种:0表示下拉组合框,2表示下拉列表框。考点21 表格(Gride)控件 表格是一种容器对象。一个表格对象由若十列对象组成,每个列对象包含一个标头对象和若干控件,它们都有自己的属性、事件和方法。1表格的常用属性
(l)RecordSourceType属性与RecordSource属性:RecordSourceType属性指明表格数据源类型,RecordSource属性指定表格数据源。其中数据类型共有5种取值范围:0-表、1-别名(默认值)、2-提示、3-查询(.qpr)、4-SQL语句。
(2)ColumnCount属性:指定表格的列数,即一个表格对象所包含的列对象数目。(3)LinkMaster属性:用于指定表格控件中所显示的子表的父表名称。(4)ChildOrder属性:用于指定建立一对多的关联关系,子表所要用到的索引。该属性类似于SET ORDER命令。
(5)RelationalExpr属性:确定基于主表字段的关联表达式。2常用的列属性
(1)ControlSource属性:指定要在列中显示的数据源,常见的是表中的一个字段。
(2)CurrentControl属性:指定列对象中的一个控件,该控件用以显示和接收列中活动单元格的数据。
(3)Sparse属性:用于确定CurrentControl属性是影响列中的所有单元格还是影响活动单元格。
3常用的标头(Header)属性
(1)Caption属性:指定标头对象的标题文本,显示于列顶部。(2)Alignment属性:指定标题文本在对象中显示的对齐方式。考点22 页框(PageFrame)控件
页框是包含页面(Page)的容器对象,其常用属性如下。
(1)PageCount属性:用于指明一个页框对象所包含的页对象的数量。最小值为0,最大值为99。
(2)Pages属性:该属性是一个数组,用于存取页框中的某个页对象。(3)Tabs属性:指定页框中是否显示页面标签栏。
(4)TabStretch属性:如果页面标题文本太长,可通过设置该属性利用多行显示。其中0表示多重行,1表示单行(默认值)。
(5)ActivePage属性:返回页框中活动页的页号,或使页框中的指定页 7.1菜单设计
9.1 Visual FoxPro系统菜单 考点1 菜单结构 Visual FoxPro支持两种类型的菜单:条形菜单和弹出式菜单。菜单项的名称显示于屏幕供用户识别,菜单及菜单项的内部名称或选项序号则用于在代码中引用。每一个菜单项都可以选择设置一个热键和一个快捷键。无论哪种类型的菜单,当选择某个选项时都会有一定的动作,这个动作可以是下列3种情况之一:执行一条命令、执行一个过程或激活另一个菜单。考点2 系统菜单 Visual FoxPro系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单。条形菜单的内部名字为_MSYSMENU,也可看做是整个菜单系统的名字。
条形菜单中常见选项的名称及内部名字如表9-1所示,各弹出式菜单的内部名字如表9-2所示。表9-3的是“编辑”菜单中常用选项的选项名称和内部名字。表9-1 主菜单(MSYSMENU)常见选项
表9-2 弹出式菜单的内部名字
表9-3 “编辑”菜单(_MEDIT)常用选项
通过SET SYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新配置系统菜单,格式如下。
SET SYSMENU ON|OFF AUTOMATIC |TO[<弹出式菜单名表>] |TO[<条形菜单项名表>] |TO[DEFAULT]|SAVE|NOSAVE 小提示:
如不带任何参数,直接SET SYSMENU TO命令,将屏蔽系统菜单,使系统菜单不可用。9.2 下拉式菜单设计
考点3 菜单设计的基本过程
用菜单设计器设计下拉式菜单的基本过程如下。(l)调用菜单设计器。
(2)在“菜单设计器”窗口中定义菜单,指定菜单的各项内容,定义完成后,通过菜单命令“保存”或直接使用快捷键Ctrl+W保存菜单。
(3)通过菜单命令“菜单”*“生成”命令,产生可执行的菜单程序文件(MPR)。
(4)在命令窗口中,使用DO命令执行菜单文件,此处的文件扩展名MPR不能默认。菜单设计的基本流程如图9-1所示。
图9-1 菜单设计的基本流程图 考点4 定义菜单
1“菜单设计器”窗口
“菜单设计器”窗口每页显示和定义一个菜单,可以是条形菜单(菜单栏),也可以是弹出式菜单(子菜单)。“菜单设计器”窗口打开时,首先显示和定义的是条形菜单,即主菜单名。窗口的左边是一个列表框,其中每一行定义当前菜单的一个菜单项,包括“菜单名称”、“结果”和“选项”3列内容(如图9-2所示)。(1)“菜单名称”列。(2)“结果”列。(3)“选项”列。2“显示”菜单
在菜单设计一器环境下,系统“显示”菜单会出现两条命令。(1)“常规选项”对话框。(2)“菜单选项”对话框。
图9-2 “菜单设计器”窗口 考点5 用编程方式定义菜单
无论是条形菜单还是弹出式菜单,都可以通过命令进行定义和设计。此处介绍几种有关菜单定义的简单命令。(1)条形菜单定义。(2)弹出式菜单定义。
考点6 为顶层表单添加菜单
为顶层表单添加下拉式菜单的方法和过程如下。(1)在“菜单设计器”窗口中设计好下拉式菜单。
(2)打开“常规选项”对话框,选中对话框右下角的“顶层表单”复选框。(3)将表单的ShowWindow属性设置为2,使之成为顶层表单。(4)在表单的Init事件中添加调用菜单的程序代码: DO<文件名>WITH This[,“<菜单名>”] 此处的<文件名>是指被调用的菜单程序文件(MPR),<菜单名>是为被添加的下拉式菜单的条形菜单指定的一个内部名字。
(5)在表单的Destroy事件中添加清除菜单的程序代码: RELEASE MENU<菜单名>[EXTENDED] 其中EXTENDED表示在清除条形菜单时一起清除其下属的所有子菜单。9.3 快捷菜单设计
考点7 快捷菜单的建立与执行
与下拉式菜单相比,快捷菜单没有条形菜单,只有弹出式菜单。建立快捷菜单的方法和过程如下。
(1)打开“新建”对话框二
(2)在“新建”对话框中选择“菜单”选项.单击“新建文件”按钮。
(3)在“新建菜单”对话框中选择“快捷菜单”选项,打开“快捷菜单设计器”窗口。
(4)用与设计下拉式菜单相似的方法,在“快捷菜单设计器”窗口中设计快捷菜单,生成菜单程序文件。
(5)在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间,格式为: RELEASE POPUPS<快捷菜单名>[EXTENDED](6)在设计器环境下,选定需要添加快捷菜单的对象。
(7)在选定对象的RightClick事件代码中,添加调用快捷菜单程序的格式为: DO<快捷菜单程序文件名> 此处的文件扩展名MPR不能默认。
第三篇:2006年9月全国计算机等级考试二级VFP笔试试卷
2006年9月全国计算机等级考试二级C笔试试题(含答案)
一、选择题(每小题2 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写 在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不符合良好程序设计风格的是______。A)、源程序要文档化 B)、数据说明的次序要规范化 C)、避免滥用goto 语句 D)、模块设计要保证高耦合,高内聚
(2)从工程管理角度,软件设计一般分为两步完成,它们是______。A)、概要设计与详细设计 B)、数据设计与接口设计 C)、软件结构设计与数据设计 D)、过程设计与数据设计
(3)下列选项中不属于软件生命周期开发阶段任务的是______。A)、软件测试 B)、概要设计 C)、软件维护 D)、详细设计(4)在数据库系统中,用户所见的数据模式为______。A)、概念模式 B)、外模式 C)、内模式 D)、物理模式
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。A)、编码设计 B)、测试阶段 C)、运行阶段 D)、物理设计(6)设有如下三个关系表
下列操作中正确的是 A)、T=R∩S B)、T=R∪S C)、T=R×S D)、T=R/S(7)下列叙述中正确的是 A)、一个算法的空间复杂度大,则其时间复杂度也必定大 B)、一个算法的空间复杂度大,则其时间复杂度必定小 C)、一个算法的时间复杂度大,则其空间复杂度必定小 D)、上述三种说法都不对
(8)在长为64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为______。A)、63 B)、64 C)、6 D)、7(9)数据库技术的根本目标是要解决数据的______。A)、存储问题 B)、共享问题 C)、安全问题 D)、保护问题(10)对下列二叉树:
进行中序遍历的结果是______。A)、ACBDFEG B)、ACBDFGE C)、ABDCGEF D)、FCADBEG(11)下列有关内联函数的叙述中,正确的是______。A)、内联函数在调用时发生控制转移 B)、内联函数必须通过关键字inline 来定义 C)、内联函数是通过编译器来实现的 D)、内联函数体的最后一条语句必须是rennin 语句
(12)下列情况中,不会调用拷贝构造函数的是______。A)、用一个对象去初始化同一类的另一个新对象时 B)、将类的一个对象赋予该类的另一个对象时 C)、函数的形参是类的对象,调用函数进行形参和实参结合时 D)、函数的返回值是类的对象,函数执行返回调用时(13)下列有关继承和派生的叙述中,正确的是______。A)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员 B)、派生类的成员函数可以访问基类的所有成员 C)、基类对象可以赋值给派生类对象 D)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类(14)下列运算不能重载为友元函数的是______。A)、=()[]-> B)、+-++--C)、> < >= <= D)、+=-= *= /=(15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。A)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 B)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,F C E A D B G 则都可以省略 C)、对于虚拟型参数所对应的模板实参,若能够省略则必须省略 D)、对于常规参数所对应的模板实参,任何情况下都不能省略
(16)下列关于输入流类成员函数getline()的描述中,错误的是______。A)、该函数是用来读取键盘输入的字符串的 B)、该函数读取的字符串长度是受限制的 C)、该函数读取字符串时,遇到终止符便停止 D)、该函数读取字符串时,可以包含空格
(17)下列符号中,正确的C++标识符是______。A)、enum B)、2b C)、foo-9 D)_32(18)下列语句中,错误的是______。A)、const int buffer=256;B)、const double*point;C)、int const buffer=256;D)、double*const point;(19)if 语句的语法格式可描述为 格式1:if(<条件>)<语句> 或
格式2:if(<条件>)<语句1>else<语句2> 关于上面的语法格式,下列表述中错误的是 A)、<条件>部分可以是一个if 语句,例如if(if(a =0)?)? B)、<条件>部分可以是一个if 语句,例如if(?)if(?)? C)、如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功 能不变 D)、<语句>部分可以是一个循环语句,例如if(?)while(?)?(20)有如下说明
int a [10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9 的表达式是______。A)、*p+9` B)、*(p+8)C)、*p+=9 D)、p+7(21)或下面的函数调用 fun(a+b,3,max(n-1)b)则fun 的实参个数是______。A)、3 B)、4 C)、5 D)、6(22)以下关键字不能用来声明类的访问权限的是______。A)、public B)、static C)、protected D)、private(23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。A)、公有成员 B)、公有成员和保护成员 C)、公有成员、保护成员和私有成员 D)、保护成员(24)关于运算符重载,下列表述中正确的是______。A)、C++已有的任何运算符都可以重载 B)、运算符函数的返回类型不能声明为基本数据类型 C)、在类型转换符函数的定义中不需要声明返回类型 D)、可以通过运算符重载来创建C++中原来没有的运算符
(25)关于关键字class 和typename,下列表述中正确的是______。A)、程序中的typename 都可以替换为class B)、程序中的class 都可以替换为typename C)、在模板形参表中只能用typename 来声明参数的类型 D)、在模板形参表中只能用class 或typename 来声明参数的类型(26)有如下程序 #include #include using namespace std;int main(){ count Double operator+(int i, int k){return double(i+k);} 但定义有错误,对这个错误的最准确的描述是______。A)、+只能作为成员函数重载,而这里的+是作为非成员函数重载的 B)、两个int 型参数的和应该是int 型,而这里将+的返回类型声明为double C)、没有将运算符重载函数声明为某个类的友元 D)、C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符(34)语句ofstreamf(“SALARY.DAT”,ios_base::app)的功能是建立流对象f,并试图打开 文件SALARY.DAT 与f 关联,而且______。A)、若文件存在,将其置为空文件;若文件不存在,打开失败 B)、若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 C)、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败 D)、若文件存在,打开失败;若文件不存在,建立一个新文件(35)有如下程序 #include using namespace std;class A{ public: virtual Void funcl(){cout<< “A1”;} void fune2(){cout<< “A2”;} };class B: public A{ public: void func1(){cout<< “B1”;} void func2(){cout<< “B2”;} };Int main(){ A*p=new B;p->funcl();p->func2();retum0;} 运行程序,屏幕上将显示输出______。A)、B1B2 B)、A1A2 C)、B1A2 D)、A1B2 二、填空题(每空2 分,共30 分) 请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。(1)下列软件系统结构图的宽度为 [1]。 (2)[2] 的任务是诊断和改正程序中的错误。(3)一个关系表的行为 [3]。 (4)按“行进后出”原则组织数据的数据结构是 [4]。 (5)数据结构分为线性结构和非线性结构,带链的队列属于 [5]。(6)若有定义语句:int*a,b;,则变量b 的数据类型是 [6]。 (7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标 为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。请将语句补充完整: For(int i=0;i(8)已知递归函数f 的定义如下: int f(int n){ If(n<=1)return 1;//递归结束情况 else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是 [8]。 (9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给 出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创 建,其输出结果是 [9]。#include using namespace std;class Foo{ public: Foo(int X){cout <<’A”} Foo(){} };int main()Foo f[3],g(3);return 0;}(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。#include Using namespace atd;Class Foo{ int value;public: Foo():value(0){} Void setvalue(int value){ [10] =value;//给Foo 的数据成员value 赋值}void print(){cout<};Int main(){ Foo f;f.setvalue(42);f.print();retum0;}(11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是 只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 [11]。#include using namespace std;class Base{ public: Void print(){cout<< ‘B’;}};class Derived: public Base{ public void print(){cout<< ‘D’;}} int main(){ Derived*pd=new Dreived);Base*pb=pd;pb->print();pd->print();delete pd;return 0;}(12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义: class Base{ protected: void fun(){} };Class Derived: Base{};则Base 类中的成员函数fun(),在Derived 类中的访问权限是 [12](注意:要求填 写private、protected 或public 中的一项)。(13)在MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。[13] MyClass::operator=(const MyClass rhs){ if(this=&rhs)return*this;value=rhs.value;return*this;}(14)插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列 中的正确位置,InsertSort 类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分 补充完整。class InsertSort{ public: InsertSort(int*a0,int n0):a(a0),n(n0){}//参数组首地址,n 是数组元素个数 void sort(){//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?a[n-1] for(int i=1;iint j;for([14] j>0;--j){ if(t>a[j-1])break;a[j]=a[j-1];} a[j]=t;}} protected: int*a,n;//指针a 用于存放数组首地址,n 用于存放数组元素个数 }; (15)下列程序的输出结果是 [15] #include using namespace std;class A{ int a public: A():a(9){} virtual void print()const {cout<};class B:public A{ char b;public: B(){b= ‘S’;} void print()const{cout<};void show(Aa&X){X,print()} int main(){ Ad1;*p;Bd2;p=&d2;d1,print();d2,print();p->print();show(d1);show(d2);return 0;} 一、选择题: 01—05 DACBD 06—10 CDBBA 11—15 ADDAD 16—20 CCBBC 21—25 DACBC 26—30 ABCDC 31—35 ADBAD 36—40 BBADC 41—45 CBBCD 46—50 BABDC 二、填空题: 1、3 2、调试 3、元组 4、栈 5、线性 6、12346.0 7、10 11 8、19、7 4 10、n=n/10 11、(x+8) 12、sin(x)13、0 14、i%2==0 15、s-- 16、*s++ 17、18 18、16 11 19、->data 20、”rb” 全国计算机等级考试二级证书 简介 ***2432010年9月二级access 证书样本 全国计算机等级考试和高考、全国英语四六级考试一样,是国家教育部考试中心推出的三大权威考试,是在校大学生必须参加的考试和衡量计算机水平最权威、含金量和承认度最高的认证,并唯一得到国家和各用人单位的统一认可。 创想独有优势 通过率高:在全国平均通过率不到10%的情况下,创想分中心10级助产班参考7人,双科通过6人;10级护理5班参考21人,双科通过17人;创想分中心历届一次性通过率全省第一。 创想学员毕业受欢迎: 06级陈燕燕同学毕业后考取济宁汶上县医院事业编; 08级马玉宝同学,毕业后被济南市第三人民医院录用;2010年9月份前二级access 09级刘晓燕同学优先被济南市中心人民医院选为实习生。证书全通通用,上网可查。查询网址 VFP模拟试题 1。VFP是一种 ________ 模型的数据库管理系统。选择:A.层次_ B.网络_C.对象_ D.关系 答案: D 2。对于二维表的关键字来讲,不一定存在的是 ________。选择:A.主关键字_ B.候选关键字_C.超关键字_ D.外部关键字 答案: D 3。目前三种基本的数据模型是 ________。选择:A.层次模型、网络模型、关系模型_ B.对象模型、网络模型、关系模型_C.网络模型、对象模型、层次模型_ D.层次模型、关系模型、对象模型 答案: A 4。在命令窗口中,不能实现的操作是 ________。选择:A.复制已执行过的命令_ B.重复执行已执行过的命令_C.同时执行多个命令_ D.在命令窗口中显示命令执行结果 答案: D 5。VFP系统中,表的结构取决于 ___________。选择:A.字段的个数、名称、类型和长度_ B.字段的个数、名称、顺序_C.记录的个数、顺序_ D.记录和字段的个数、顺序 答案: A 6。某表单FrmA上有一个命令按钮组CommandGroup1,命令按钮组中有四个命令按钮:CmdTop,CmdPrior,CmdNext,CmdLast。要求按下CmdLast时,将按钮CmdNext的Enabled属性置为.F.,则在按钮CmdLast的Click事件中应加入_______ 命令。选择:A.This.Enabled=.F.B.This.Parent.CmdNext.Enabled=.F._C.This.CmdNext.Enabled=.F.D.Thisform.CmdNext.Enabled=.F._ 答案: B 7。数据库管理系统是 ________。选择:A.教学软件_ B.应用软件C.计算机辅助设计软件_ D.系统软件 答案: D 8。关系型数据库采用 ________ 表示实体和实体间的联系。选择:A.对象 B.字段_C.二维表_ D.表单 答案: C 9。在定义表结构时,以下__________ 数据类型的字段宽度都是定长的。选择:A.字符型、货币型、数值型_ B.字符型、货币型、整型_C.备注型、逻辑型、数值型_ D.日期型、备注型、逻辑型 答案: D 10。VFP系统中的查询文件是指一个包含一条SELECT-SQL命令的程序文件,文件的扩展名为________。选择:A..PRG B..QPRC..SCX D..TXT 答案: B 11。函数SUBSTR(“VisualFoxPro5.0”,7,6)的返回值是______。 A.lFoxPro B.FoxProC.FoxPro5 D.FoxPro5.0 答案: B 12下列说法中正确的是_____。 A.数据库打开时,该库中的表将自动打开 B.当打开数据库中的某个表时,该表所在的数据库将自动打开 C.如果数据库以独占的方式打开,则库中的表只能以独占方式打开 D.如果数据库中的某个表以独占方式打开,则库中的其它表也只能以独占方式 答案: B 13。一个表的主关键字被包含到另一个表中时,在另一个表中称这些字段为_______。 A.外关键字 B.主关键字C.超关键字 D.候选关键字_ 答案: A 14。VFP系统中,使用查询设计器生成的查询文件中保存的是_______。 A.查询的命令 B.与查询有关的基表 C.查询的结果 D.查询的条件 答案: A 15。将某个控件绑定到一个字段,移动记录后字段的值发生变化,这时该控件的_______属性的值也随之变化。A.Value B.NameC.Caption D.没有_ 答案: A 16。如果要引用一个控制所在的直接容器对象,则可以使用下列_____属性。 A.THIS B.THISFORMC.PARENT D.都可以 答案: C 17。页框(PageFrame)能包容的对象是_____。选择:A.页面(Page)B.列(Column)C.标头(Header)D.表单集(FormSet)_ 答案: A 18。对于创建新类,VFP提供的工具有:_____。选择:A.类设计器和报表设计器 _ B.类设计器和查询设计器 _C.类设计器和表单设计器 D.类设计器 答案: C 19。以下的四组函数,返回值的数据类型是一致的_____。选择:A.DTOC(DATE()), DATE(),YEAR(DATE())_ B.ALLTRIM(“VFP 5.0”),ASC(“A”), SPACE(8)C.EOF(), RECCOUNT(), DBC()_ D.STR(3.14,3,1), DTOC(DATE()), SUBSTR(“ABCD”,3,1)答案: D 20。VFP的循环语句有_____。选择:A.DO WHILE,FOR和SCAN _ B.DO WHILE,FOR 和 LOOP _C.FOR,SCAN和LOOP _ D.DO CASE 和 DO WHILE _ 答案: A 21。字段的默认值是保存在______。选择:A.表的索引文件中 B.数据库文件中C.项目文件中 D.表文件中 答案: B 22。彻底删除记录数据可以分两步来实现,这两步是______。选择:A.PACK和ZAP B.PACK和RECALL_C.DELETE和PACK D.DELE和RECALL _ 答案: C 23。表之间的“临时性关系”,是在两个打开的表之间建立的关系,如果两个表有一个关闭后,则该“临时性关系” ______。选择:A.转化为永久关系 B.永久保留C.临时保留 D.消失 答案: D 24。表移出数据库后,仍然有效的是______。选择:A.字段的有效性规则 B.表的有效性规则 _C.字段的默认值 _ D.结构复合索引文件中的候选索引 _ 答案: D 25。下列控件均为容器类的是_____。选择:A.表单、命令按钮组、命令按钮 _ B.表单集、列、组合框 _C.表格、列、文本框 _ D.页框、列、表格 答案: D 26。VFP中可执行的表单文件的扩展名是______。选择:A.SCT B.SCXC.SPR D.SPT 答案: B 27。关系模型的基本结构是______。选择:A.二维表_ B.树形结构C.无向图 D.有向图 _ 答案: A 28。创建对象时发生_____事件。选择:A.LostFocus B.InteractiveChange _C.Init D.Click 答案: C 29。关于数据库的操作,下述说法中,_________是正确的。选择:A.数据库被删除后,则它包含的数据库表也随着被删除_ B.打开了新的数据库,则原来已打开的数据库被关闭 _C.数据库被关闭后,它所包含的数据库表不能被打开_ D.数据库被删除后,它所包含的表变成自由表_ 答案: D 30。子类或对象具有延用父类的属性、事件和方法的能力,称为类的_____。选择:A.继承性 B.抽象性C.封装性 D.多态性 _ 答案: A 31。命令按钮中显示的文字内容,是在属性 _______中设置的。选择:A.Name B.CaptionC.FontName D.ControlSource 答案: B 32。VFP系统环境下,运行表单的命令为_______。选择:A.DO FORM <表单名> _ B.REPORT FORM <表单名>_C.DO <表单名> D.只能在项目管理器中运行_ 答案: A 33。建立事件循环的命令为______。选择:A.READ EVENTS B.CLEAR EVENTS_C.DO WHILE„„ENDDO D.FOR„„„ENDFOR_ 答案: A 34。当用鼠标使组合框的内容发生变化时,将首先触发_______事件。选择:A.InteractiveChange B.ClickC.Init D.DownClick 答案: A 35。设有一个页框含有3个页面,其中第一个页面的名字为Page1,上面有二个命令按钮:CmdOk、CmdPrint,如果要在CmdPrint的Click事件中引用CmdOk的Click事件代码,则采用_______。选择:A.This.Parent.CmdOk.Click()B.Thisform.Page1.CmdOk.Click()_C.This.CmdOk.Click()D.Thisform.CmdOk.Click()_ 答案: A 36。有关类、对象、事件,下列说法不正确的是 _________.选择:A.对象用本身包含的代码来实现操作 B.对象是类的特例C.类刻划了一组具有相同结构、操作并遵守相同规则的对象 D.事件是一种预先定义好的特定动作,由用户或系统激活 答案: A 37。从CommandButton基类创建子类cmdA和cmdB,再由cmdA类创建cmdAA子类,则cmdA、cmdB和cmdAA必具有相同的_________。选择:A.Caption属性_ B.Name属性C.BaseClass属性 D.ParentClass属性 答案: C 38。所有类都可识别的事件即最小事件集包括___________.选择:A.Init、Destroy和Error事件_ B.Load、Init和Destroy事件C.Load、Init和Unload事件 D.Init、Activate和Destroy事件 答案: A 39。用户在VFP中创建子类或表单时,不能新建的是 ______________.选择:A.属性_ B.方法C.事件 D.事件的方法代码 答案: C 40。运行查询 CX1.QPR命令是 ________。选择:A.use cx1_ B.use cx1.qprC.do cx1.qpr_ D.do cx1 答案: C 41。在Visual FoxPro系统中,________创建时,将不以独立的文件形式存储。选择:A.查询_ B.视图 _C.类库 D.表单 答案: B 42。文本框绑定到一个字段后,对文本框中的内容进行输入或修改时,文本框中的数据将同时保存到______中。选择:A.Value和Name B.Value和该字段_C.Value和Caption D.Name和该字段_ 答案: B 43。在Visual FoxPro中创建含备注字段的表和表的结构复合索引文件后,系统自动生成的三个文件的扩展名为 ___________。选择:A..PJX、.PJT、.PRG_ B..DBF、.CDX、.FPT_C..FPT、.FRX、.FXP _ D..DBC、.DCT、.DCX 答案: B 44。下列几组控件中,均为容器类的是 _________。选择:A.表单、列、组合框_ B.页框、页面、表格_C.列表框、列、下拉列表框_ D.表单、命令按钮组、OLE控件 答案: B 45。Visual FoxPro是一个 ________。选择:A.数据库系统 B.数据库管理系统_C.数据库 D.数据库管理员 答案: B 46。如果要在同一个数据库的二个表之间建立关系,则在父表的结构复合索引文件中创建_______。选择:A.主索引_ B.候选索引_C.普通索引_ D.唯一索引 答案: A 47。在向数据库中添加表的操作时,下列说法中不正确的是 ________。选择:A.可以将自由表添加到数据库中_ B.可以将数据库表添加到另一个数据库中_C.可以在项目管理器中将自由表拖放到数据库中_ D.先将数据库表移出数据库成为自由表,而后添加到另一个数锯库中 答案: B 48。VFP环境中,当用户将某个表的记录或整个表文件都锁定时,只读命令依然可以工作。下列____命令在记录或整个文件锁定时依然可以工作。选择:A.INDEX B.REPLACEC.APPEND D.SELECT-SQL 答案: D 49。表之间的“一对多”关系是指___________。选择:A.一个表与多个表之间的关系 B.一个表中的记录对应另一个表中的多个记录 _C.一个表中的记录对应多个表中的一个记录 __ D.一个表中的记录对应多个表中的多个记录 答案: B 50。由计算机、操作系统、DBMS、数据库、应用程序等组成的整体称为___________。选择:A.数据库系统 B.数据库管理系统C.文件系统 D.软件系统 答案: A 51。设有一个页框含有3个页面,其中第一个页面的名字为Page1,上面有二个命令按钮:CmdOk、CmdPrint,如果要在CmdPrint的Click事件中引用CmdOk的Click事件代码,则采用_______。选择:A.This.Parent.CmdOk.Click()B.Thisform.Page1.CmdOk.Click()C.This.CmdOk.Click()D.Thisform.CmdOk.Click()答案: A 52。如果要引用一个控制所在的直接容器对象,则可以使用下列_____属性。 A.THIS B.THISFORM C.PARENT D.都可以 答案: C 53。下列四个事件:Init,Load,Activate和Destroy发生的顺序为_____。 A.Init,Load,Activate,Destroy B.Load,Init,Activate,Destroy C.Activate,Init,Load,Destroy D.Destroy,Load,Init,Activate 答案: A 54。 设.null..AND..F.、.null..OR..F.、.null.=.null.分别是VFP 系统中的三个表达式,它们的值依次为:______。 A..null.,.null.,.null.B..F.,.null.,.null.C:.F.,.null.,.T.D..F.,.F.,.null.答案: B 55。创建对象时发生_____事件。A.LostFocus B.InteractiveChange C.Init D.Click 答案: C 56。VFP 中,执行“?ATC(“管理”,“数据库管理系统”)”命令后,返回的结果是:______。A.0 B.4 C.7 D.错误的函数名 答案: C 57。下列关于数据的操作说法中,正确的是______。答案: C A.货币型数据不能参加算术运算 B.两个日期型数据可以进行加法运算 C.一个日期型数据可以加或减一个整数 D.字符型数据能比较大小,日期型则不能 58。VFP中可执行的表单文件的扩展名是______。A.SCT B.SCX C.SPR D.SPT 答案: B 59。如果一个数据库表的DELETE角发器设置为.F.,则不允许对该表作_________的操作。 A.修改记录 B.删除记录 C.增加记录 D.显示记录 答案: B 60。列表框是_______控件。 A.数据绑定型 B.非数据绑定型 C.数值型 D.逻辑型 答案: A 61。在VFP的菜单或菜单选项中,经常会有一些呈暗灰色的选项,这可能是______。 A.这些项在当前状态下不起作用或其处理程序没有装人 B.系统运行发生故障 C.本身有缺陷 D.以上都不对 答案: A 62。VFP的文件菜单中的CLOSE命令是用来关闭________。 A.当前工作区中已打开的数据库 B.所有已打开的数据库 C.所有窗口 D.当前活动的窗口 答案: D 63。项目管理器的功能是组织和管理与项目有关的各种类型的_________。 A.文件 B.字段 C.程序 D.数据 答案: A 64。对于空值,下列叙述中不正确的是______。答案: C A.空值不是一种数据类型 B.空值可以赋给变量、数组和字段 C.空值等于空串(“”)和空格 D.条件表达式中遇到null值,该条件表达式为“假” 65。在VFP3.0系统环境下,若使用的命令中同时含有子句FOR、WHILE和SCOPE(范围),则下列叙述中正确的是_________。 A.三个子句执行时的优先级这为:FOR、WHILE、SCOPE(范围) B.三个子句执行时的优先级这为:WHILE、SCOPE(范围)、FOR C.三个子句执行时的优先级这为:SCOPE(范围)、WHILE、FOR D.无优先级,按子句出现的顺序执行 答案: C 66。有关查询与视图,下列说法中不正确的是______。答案: B A.查询是只读型数据,而视图可以更新数据源 B.查询可以更新源数据,视图也有此功能 C.视图具有许多数据库表的必性,利用视图可以创建查询和视图 D.视图可以更新源表中的数据,存在于数据库中 67。有关类、对象、事件,下列说法中不正确的是_________。答案: A A.对象仅能用本身包含的代码来实现操作 B.对象可以是任何客观事物,对象是类的特例 C.类是一组具有相同结构、操作并遵守相同规则的对象 D.事件是一种预先定义好的特定动作,由用户或系统激活 68。下列各组控件中,全部可与表中数据绑定的控件是_____。答案: C A.EditBox、Grid、Line B.ListBox、Shape、OptonButton C.ComBox、Grid、TextBox D.CheckBox、Separator、EditBox 69。若要建一个有5个按钮的选项组,应将属性_____的值改为5。 A.Optiongroup B.Buttoncount C.BoundColumn D.ControlSource 答案: B 70。在多用户环境下,缓冲技术可以保护对单个记录或多个记录所做的数据更新以及数据维护操作。Visual FoxPro以两种锁定方式提供缓冲:______。 A.保守式和开放式 B.记录方式和表方式 C.对象式和类式 D.数据方式和程序方式 答案: A 71。对于自由表而言,不允许有重复值的索引是 _______。 A.主索引 B.侯选索引 C.普通索引 D.唯一索引 答案: B 72。下列命令中,不能使程序跳出循环的是_______。 A.LOOP B.EXIT C.QUIT D.RETURN 答案: A 73。下列说法中,不正确的是_______。 选择:A.二维表中的每一列均有唯一的字段名 B.二维表中不允许出现完全相同的两行C.二维表中行的顺序、列的顺序均可以任意交换 D.二维表中行的顺序、列的顺序不可以任意交换 答案: D 74。有一菜单文件MAIN.MNX,运行该菜单的操作是_______。选择:A.执行命令 DO MAIN.MNX B.执行命令 DO MENU MAIN.MNX C.先生成菜单程序文件MAIN.MPR,再执行命令DO MAIN.MPR D.先生成菜单程序文件MAIN.MPR,再执行命令DO MENU MAIN.MPR 答案: D 75。关于表格控件,下列说法中不正确的是_______。 选择:A.表格的数据源可以是表、视图、查询 B.表格中的列控件不包含其它控件 C.表格能显示一对多关系中的子表 D.表格是一个容器对象 答案: B 76。学生管理数据库中有二个表:学生表和成绩表,表结构分别如下,xs.dbf | cj.dbf 学号 xh c,8 | 学号 xh c, 8 姓名 xm c,8 | 课程号 kch c, 4 性别 xb c,2 | 课程名 kcm c, 20 出生日期 csrq d | 成绩 cj n,3 有一个按班级号查该班每一个学生总成绩的表单: 班级号由学生学号的前4位组成。该表单组合框的 RowSource Type属性为 3-SQL 语句,则它的 RowSource属性为_______。 选择:A.select DISTINCT SUBSTR(xh,1,4)FROM xs INTO CURSOR xtmp B.select SUBSTR(xh,4)FROM xs INTO CURSOR xtmp C.select DISTINCT xh FROM xs INTO CURSOR xtmp D.select DISTINCT SUBSTR(xh,1,4)FROM xs INTO xtmp 答案: A 77。某表单FrmA上有一个命令按钮组 CommandGroup1,命令按钮组中有四个命令按钮:CmdTop,CmdPrior,CmdNext,CmdLast。要求按下CmdLast时,将按钮CmdNext的Enabled属性置为.F.,则在按钮CmdLast的Click事件中应加入_______ 命令。选择:A.This.Enabled=.F.B.This.Parent.CmdNext.Enabled=.F.C.This.CmdNext.Enabled=.F.D.Thisform.CmdNext.Enabled=.F.答案: B 78。关系型数据库采用 ________ 表示实体和实体间的联系。 A.对象 B.字段 C.二维表 D.表单 答案: C 79。在命令窗口中,不能实现的操作是 ________。 A.复制已执行过的命令 B.重复执行已执行过的命令 C: 同时执行多个命令 D.在命令窗口中显示命令执行结果 答案: D 80。要求一个表中的数值型字段数据精度具有 4 位小数,则该字段的宽度至少定义为_________。 A.4位 B.5位 C.6位 D.12位 答案: C 81。打开一个空表,执行 ?EOF(),BOF()命令,显示结果为_________。 A..T.和.T. B..F.和.F. C..F.和.T. D..T.和.F. 答案: A 82。表(XS.DBF)中含有100条记录,执行下列命令后显示的记录序号是________。 USE XS GO 10 LIST NEXT 4 A.10,11,12,13 B.11,12,13,14 C.4,5,6,7 D.1,2,3,4 答案: A 83。下列关于数据库的描述中,不正确的是 __________。选择:A.数据库是一个包容器,它提供了存储数据的一种体系结构 B.数据库表和自由表的扩展名都是.DBF C.数据库表的表设计器和自由表的表设计器是不相同的 D.数据库表的记录保存在数据库中 答案: D 84。创建数据库后,系统自动生成扩展名为 ________ 的三个文件。 A..SCX、.SCT、.SPX B..DBC、.DCT、.DCX C..PJX、.PJT、.RPJ D..DBF、.DBT、.FPT 答案: B 85。在向数据库中添加表的操作时,下列说法中不正确的是 ________。答案: B A.可以将自由表添加到数据库中 B.可以将数据库表添加到另一个数据库中 C.可以在项目管理器中将自由表拖放到数据库中 D.先将数据库表移出数据库成为自由表,而后添加到另一个数据库中 86。下列关于索引的描述中,不正确的是 ________。选择:A.结构和非结构复合索引文件的扩展名均为.CDX B.结构复合索引文件随表的打开而自动打开 C.一个数据库表仅能创建一个主索引和一个唯一索引 D.结构复合索引文件中的索引在表中的字段修改时,自动更新 答案: C 87。参照完整性的作用是___________ 控制。 A.字段数据的输入 B.记录中相关字段之间的数据有效性 C.表中数据的完整性 D.相关表之间的数据一致性 答案: B 88。___________ 不可以作为查询和视图的输出类型。 A.自由表 B.表单 C.临时表 D.数组 答案: B 89。下列说法中正确的是___________。A.视图文件的扩展名 .vcx B.查询文件中保存的是查询的结果 C.查询设计器实质上是SELECT-SQL 命令的可视化设计方法 D.查询是基于表的并且是可更新的数据集合 答案: C 90。实体模型反映实体及实体之间的关系,是人们的头脑对现实世界中客观事物及其相互联系的认识,而 __________ 是实体模型的数据化,是观念世界的实体模型在数据世界中的反映,是对现实世界的抽象。 A.数据模型 B.关系模型 C.逻辑模型 D.概念模型 答案: A 91。学生表(XS.DBF)的表结构为:学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2)班级(BJ,C,6),用Insert 命令向XS表添加一条新记录,记录内容为: XH XM XB BJ 99220101 王 凌 男 992201 下列命令中正确的是 ________。选择:A.INSERT INTO XS VALUES(“99220101”,“王 凌”,“男”,“992201”)B.INSERT TO XS VALUES(“99220101”,“王 凌”,“男”,“992201”)C.INSERT INTO XS(XH,XM,XB,BJ)VALUES(99220101, 王 凌,男,992 D.INSERT TO XS(XH,XM,XB,BJ)VALUES(“99220101”,“ 王 凌”,“男”,“992 答案: A 92。建立两个表之间的临时关系时,必须设置 _________。答案: D A.主表的主索引 B.主表的主控索引 C.子表的主索引 D.子表的主控索引 93。在Visual FoxPro中创建含备注字段的表和表的结构复合索引文件后,系统自动生成的三个文件的扩展名为 ___________。 A..PJX、.PJT、.PRG B..DBF、.CDX、.FPT C..FPT、.FRX、.FXP D..DBC、.DCT、.DCX 答案: B 94。在Visual FoxPro系统中,________创建时,将不以独立的文件形式存储。 A.查询 B.视图 C.类库 D.表单 答案: B 95。运行查询 CX1.QPR命令是 ________。 A.USE CX1 B.USE CX1.QPR C.DO CX1.QPR D.DO CX1 答案: C 96。用DIMENSION ARR(3,3)命令声明了一个二维数组后,再执行ARR=3命令,则__________。A.命令ARR=3 创建了一个新的内存变量,它与数组无关 B.数组的第1个元素被赋值为3C.所有的数值元素均被赋值为3 D.当存在数组ARR时,不可用ARR=3命令创建与数组同名的内存变量 答案: C 97。在命令窗口中执行了命令X=5后,则默认该变量的作用域是_________。 选择:A.全局 B.局部C.私有 D.不定 答案: A 98。已知“xs”表中有一字段为“xm”,当执行了USE xs ALIAS stu 命令打开该表后,要访问该表当前记录的“xm”字段的值,不正确的访问是 ____________。选择:A.xm B.xs.xmC.stu.xm D.stu->xm 答案: C 99。用户在VFP中创建子类或表单时,不能新建的是 ___________。选择:A.属性 B.方法C.事件 D.事件的方法代码 答案: C 100。下列对于事件的描述不正确的是________________。选择:A.事件是由对象识别的一个动作 B.事件可以由用户的操作产生,也可以由系统产生C.如果事件没有与之相关联的处理程序代码,则对象的事件不会发生 D.有些事件只能被个别对象所识别,而有些事件可以被大多数对象所识别 答案: C 101。所有类都可识别的事件即最小事件集包括____________。选择:A.Init、Destroy和Error事件 B.Load、Init和Destroy事件C.Load、Init和Unload事件 D.Init、Activate和Destroy事件 答案: A 102。对于任何子类或对象,一定具有的属性是_________。选择:A.Caption B.BaseClassC.FontSize D.ForeColor 答案: B 103。设某子类Q具有P属性,则_________。选择:A.Q的父类也必定具有P属性,且Q的P属性值必定与其父类的P属性值相* B.Q的父类也必定具有P属性,但Q的P属性值可以与其父类的P属性值不*C.Q的父类要么不具有P属性,否则由于继承性,Q与其父类的P属性值必 D.Q的父类未必具有P属性,即使有,Q与其父类的P属性值也未必相同 答案: D 104。从CommandButton基类创建子类cmdA和cmdB,再由cmdA类创建cmdAA子类,则cmdA、cmdB和cmdAA必具有相同的_________。选择:A.Caption属性 B.Name属性C.BaseClass属性 D.ParentClass属性 答案: C 105。有关类、对象、事件、,下列说法不正确的是 ____________。选择:A.对象用本身包含的代码来实现操作 B.对象是类的特例C.类刻划了一组具有相同结构、操作并遵守相同规则的对象 D.事件是一种预先定义好的特定动作,由用户或系统激活 答案: A 106。下列属于方法名的是 _________。选择:A.GotFocus B.SetFocusC.LostFocus D.Activate 答案: B 107。容器型的对象 _________。选择:A.只能是表单或表单集 B.必须由基类Container派生得到C.能包容其他对象,并且可以分别处理这些对象 D.能包容其他对象,但不可以分别处理这些对象 答案: C 108.在表的浏览窗口中,要在一个允许Null值的字段中输入.NULL.值的方法是_______.选择:A.直接输入“.Null.”的各个字母 B.按[Ctrl]+[0]组合键C.按[Ctrl]+[N]组合键 D.按[Ctrl]+[L]组合键 答案: B 109.当执行命令 USE teacher ALIAS js IN B 后,被打开的表的别名是_________。选择:A.teacher B.jsC.B D.js_B 答案: B 110.下面__________命令组与 LIST FOR xb=”女“ 具有相同的显示结果。选择:A.LIST(回车)SET FILTER TO(回车)B.SET FILTER TO xb=”女“(回车)LISE(回车)C.SET FILTER TO(回车)LIST(回车)D.LIST(回车)SET FILTER TO xb=”女“(回车)答案: B 111.索引文件中的标识名最多由_______个字母、数字或下划线组成。选择:A.5 B.6C.8 D.10 答案: D 112.已知js表中有两条记录,下列操作中,返回值一定是.T.的是______。选择:A.USE js(回车)? BOF()(回车)B.USE js(回车)GO 2(回车)SKIP-1(回车)? BOF()(回车)C.USE js(回车)GO BOTTOM(回车)SKIP(回车)? EOF()(回车)D.USE js(回车)SKIP-1(回车)? EOF()(回车)答案: C 2.6.某打开的表中有20条记录,当前记录号为8,执行命令 LIST NEXT 3(回车)后,所显示的记录的序号为_____________。选择:A.8-11 B.9-10C.8-10 D.9-11 答案: C 2.7.打开一张表后,执行下列命令: GO 6 SKIP-5 GO 5 则关于记录指针的位置说法正确的是____________。选择:A.记录指针停在当前记录不动 B.记录指针的位置取决于记录的个数C.记录指针指向第5条记录 D.记录指针指向第一条记录 答案: B 2.8.下列命令中___________可以在共享方式下运行。选择:A.APPEND B.PACK C.MODIFY STRUCTURE D.ZAP 答案: A 2.9.一张表的全部Memo字段的内容存储在___________。选择:A.不同的备注文件中 B.同一个文本文件中C.同一个备注文件中 D.同一个数据库文件中 答案: C 2.10.有关表的索引,下列说法中不正确的是___________。选择:A.当一张表被打开时,其对应的结构复合索引文件被自动打开 B.任何表的结构复合索引能控制表中字段重复值的输入C.一张表可建立多个候选索引 D.主索引只适用于数据库表 答案: B 2.11.建立索引时,__________字段不能作为索引字段。选择:A.字符型 B.数值型C.备注型 D.日期型 答案: C 2.12.设计数据库时,可使用纽带表来处理表与表之间的______________。选择:A.多对多关系 B.临时性关系C.永久性关系 D.继承关系 答案: A 2.13.创建数据库后,系统自动生成的三个文件的扩展名是_______。选择:A..pjx.pjt.rpg B..sct.scx.spxC..fpt.frx.fxp D..dbc.dct.dcx 答案: D 2.14.如果要在数据库的两张表之间建立永久关系,则至少要求在父表的结构复合索引文件中创建一个____________,在子表的结构复合索引文件中创建任何类型的文件。选择:A.主索引 B.候选索引C.主索引或候选索引 D.唯一索引 答案: C 2.15.数据库表之间创建的永久关系保存在_________中。选择:A.数据库表 B.数据库C.表设计器 D.数据环境设计器 答案: B 2.16.下列关于表的索引的描述中,错误的是_________。选择:A.复合索引文件的扩展名为.cdx B.结构复合索引文件随表的打开而自动打开C.当对表编辑修改时,其结构复合索引文件中的所有索引自动维护 D.每张表只能创建一个主索引和一个候选索引 答案: D 2.17.在?照完整性中,设置更新操作规则时,选择了“限制”,下列说法中_________是正确的。选择:A.当更改了主表的“主”或“候选”关键字后,自动更改子表相应记录 B.允许更改子表中对应的普通索引关键字的字段值C.在子表中有相关记录时,主表的主或候选关键字段值 禁止更改 D.当更改了子表中的字段值,则自动更改主表中对应记录的字段值 答案: C 2.18.如果一张数据库表的 DELETE 触发器设置为.F.,则不允许对该表作__________记录的操作。选择:A.修改 B.删除C.增加 D.显示 答案: B 2.19.在数据库jxsj.dbc中,要获得表js.dbf字段gh的标题,先打开该数据库,并为当前数据库,再用函数DBGETPROP(_________,”FIELD“,”CAPTION“).选择:A.js.gh B.”js.gh“C.gh D.”gh“ 答案: B 2.20.数据库表的 INSERT 触发器,在表中_____________记录时触发该规则。选择:A.增加 B.修改C.删除 D.浏览 答案: A 2.21.在参照完整性的设置中,如果当主表中删除记录后,要求删除子表中的相关记录,则应将“删除”规则设置为__________。选择:A.限制 B.级联C.忽略 D.任意 答案: B 2.22.要在两张相关的表之间建立永久关系,这两张表应该是____________。选择:A.同一个数据库内的两张表 B.两张自由表C.一张自由表,一张数据库表 D.任意两张数据库表或自由表 答案: A 2.23.库表字段的默认值保存在__________文件中。选择:A.表 B.数据库C.项目 D.表的索引 答案: B 2.24.以下的__________操作将造成相关表之间数据的不一致。选择:A.在主表中插入记录的主关键字的值是子表中所没有的 B.在主表中删除了记录,而在子表中没有删除相关记录C.在子表中删除了记录,而在主表中没有删除相关记录 D.用主表的主关键字字段的值修改了子表中的一个记录 答案: B 2.25.以下___________操作不会损坏相关表之间的数据一致性。选择:A.删除了子表中的记录而没有删除主表中相关记录 B.删除了主表中的记录而没有删除子表中相关记录C.在子表中插入记录的为外部关键字值是主表关键字中所没有的 D.主表中修改了主关键字值而子表中没修改有关的外部关键字值 答案: A 2.26.建立两张表之间的临时关系时,必须设置的是___________。选择:A.主表的主索引 B.主表的主索引和子表的主控索引C.子表的主控索引 D.主表的主控索引和子表的主控索引 答案: C 2.27.以下_____________操作不会激活记录的有效性规则检验。选择:A.修改表结构并保存时 B.修改表的某一记录时C.修改了记录值并执行SKIP命令时 D.修改了数据并关闭表时 答案: B 2.28.当成功执行以下一组命令后,下列不正确的说法是__________。 OPEN DATABASE jxsj OPEN DATABASE rsda 选择:A.由于打开了第二个数据库rsda,而关闭了jxsj数据库 B.当前数据库是rsdaC.表达式DBUSED(”jxsj“)AND DBUSED(”rsda“)的值为.T.D.当再执行CLOSE DATABASES命令后,jxsj库没有被关闭 答案: A 2.29.永久关系的主要作用是_________。选择:A.作为查询的联接条件 B.作为表单数据环境中默认的临时关系C.存储参照完整性信息 D.控制相关表之间记录的访问 答案: C 2.30.表之间的“一对多”关系是指___________。选择:A.一张表与多张表之间的关系 B.一张表中的一个记录对应另一张表中的多个记录C.一张表中的一个记录对应多张表中的一个记录 D.一张表中的一个记录对应多张表中的多个记录 答案: B 2.31.设学生成绩表cj包含学号xh字段和课程代号kcdh字段,如果设置记录有效性规则为NOT(EMPTY(xh)OR EMPTY(kcdh)),则执行下列________命令并关闭表时,不会违反该记录的有效性规则。选择:A.USE cj{回车} APPEND BLANK B.USE cj{回车} APPEND BLANK{回车} REPLACE xh WITH ”9901000C.INSERT INTO cj(xh,kcdh)VALUES(“99010001”,“02”)D.INSERT INTO cj(xh,cj)VALUES(“99010001”,85)答案: C 2.32.如已在学生表和成绩表之间按学号建立永久关系,现要设置参照完整性:当在成绩表中添加记录时,凡是学生表中不存在的学号不允许添加,则该参照完整性应设置为_________。选择:A.更新级联 B.更新限制C.插入级联 D.插入限制 答案: D 2.33.参照完整性的作用是_______________控制。选择:A.字段数据的输入 B.记录中相关字段之间的数据有效性C.表中数据的完整性 D.相关表之间的数据一致性 答案: D 3.1.视图是一种存储在数据库中的特殊的表,当它被打开时,对于本地视图而言,系统将同时在其他工作区中把视图所基于的基表打开,这是因为视图包含一条__________语句。选择:A.SELECT-SQL B.USEC.LOCATE D.SET FILTER TO.....答案: A 3.2.有关查询和视图,下列说法中不正确的是__________。选择:A.查询是只读型数据,而视图可以更新数据源 B.查询可以更新数据源,视图也有此功能C.视图具有许多数据库表的属性,利用视图可以创建查询和视图 D.视图可以更新源表中的数据,存储于数据库中 答案: B VFP填空题 1.数据的不一致性是指_________。 答案: 相同的数据在不同的应用程序中出现不同的值 2. VFP系统中,终止事件循环的命令是______。 答案: CLEAR EVENTS 3. 目前较为流行的一种信息模型设计方法称为E-R方法,E-R方法的中文含义为 ______。 答案: 实体联系方法 4. 如果要把一个文本框对象的初值设置为当前日期,则在该文本框的Init事件中设置代码 为______。 答案: THIS.VALUE=DATE() 5. 与Thisform.Release功能等价的命令为_______。 答案: Release Thisform 6.______型数据只能用于表而不能用于内存变量。 答案: 备注和通用 7.已知教师表(JS.DBF)中含有一条姓名(XM)为“王一平”的记录,执行下列程序段后,输出结果为______。 SELE JS LOCAT FOR XM=“王一平” XM=3 ?XM 答案: 王一平 8.与XB=“男”.OR.XB=“女”等价的表达式为______。 答案: XB$“男女” 9.表达式STR(YEAR(DATE()+10))的数据类型为_______。 答案: C 10.已知教师表(JS.DBF)已经按姓名(XM)建立索引,答案: SEEK(“王一平”) 阅读下列程序: SELE JS SET ORDER TO xm SEEK '王一平' IF FOUND()DISPLAY ELSE WAIT WIND '查无此人' ENDIF 如果要用SEEK函数完成上述相同的功能,应将程序改成: SELE JS SET ORDER TO xm IF ________ DISPLAY ELSE WAIT WIND '查无此人' ENDIF 11.打开项目的命令是_______。 答案: MODIFY PROJECT 12.Grid、Text、CommandGroup、Column是VFP系统中的对象,它们当中不能直接加到表单中的对象是________。 答案: Column 13.类包含了对象的程序设计和数据抽象,是具有相同行为的_______的抽象。 答案: 对象 14.当打开的表为一个空表时,函数RECNO()的值为________。 答案: 1 15.已知N='1',M='2',X12='GOOD',则表达式X&N&M的值为_______。 答案: 'GOOD' 16.下列程序段用来求0~100之间的偶数之和,请将它写完整: N=0 S=0 DO WHILE N<=100 N=N+1 IF N%2=1 _______ ELSE S=S+N ENDIF ENDDO 答案: LOOP 17.视图可以在数据库设计器中打开,也可以用USE命令打开,但在使用USE命令之前,必须打开包含该视图的________。 答案: 数据库 18.假定有三个数据库文 件: 答案: SET DATABASE TO MYDATA2 MYDATA1,MYDATA2,MYDATA3,它们分别存放在C盘的DATA目 录,D盘的DATA目录,A盘的DATA目录,完善下列程序,使 得程序执行以后,DBC()函数的值为 D:DATAMYDATA2.DBC。 OPEN DATABASE C:DATAMYDATA1 OPEN DATABASE D:DATAMYDATA2 OPEN DATABASE A:DATAMYDATA3 ________ ?DBC() 19.商品数据库中含有两个表:商品基本信息表 答案: SPXX.XSJ*XSQK.XSSL AND 2 不存在 DTOC(XSRQ)+SPBH (SPXX.DBF)和销售情况表(XSQK.DBF),表结构分别如下: 商品基本信息表 | 销售情况表 商品编号 SPBH C,6 |流水号 LSH C,6 商品名称 SPMC C,20 |销售日期 XSRQ D 进货价 JHJ N,12,2 |商品编号 SPBH C,6 销售价 XSJ N,12,2 |销售数量 XSSL N,8,2 备注 BZ M 用SELECT-SQL命令实现查询1999年9月1日所销售的 各种商品的名称、销售量和销售总额,并按销售量从小到 大排序的语句是: select SPXX.SPMC, SUM(XSQK.XSSL)AS 销售量, SUM(_______)AS 销售总额;FROM XSQK,SPXX;WHERE XSQK.SPBH=SPXX.SPBH _______ XSQK.XSRQ ={1999/9/1};INTO CURSOR cXstmp;GROUP BY 1(或SPMC);ORDER BY _______ 临时表cXstmp不能使用APPEND或DELETE命令对该表 添加或删除记录,当执行USE IN cXstmp命令后,该临时 表将_______。 如果要对xsqk.dbf按销售日期升序排序,在销售日 期相同的情况下,按商品编号升序排序,则索引表达式为 _______。 20.根据上题提供的spxx.dbf和xsqk.dbf创建表单,该表 答案: XSQK、SPXX 及它们之间的关系 SPXX.SPBH,XSQK.SPBH,SPXX.XSJ XSQK.XSSL*SPXX.XSJ 单用来录入每笔销售业务。 表单的数据环境包括________。 表单中商品编号为组合框,它的RowSource为 ________,ControlSource为______,销售价文本框的 ControlSource为______。 输入销售数量以后打回车键,此时自动显示销售金额,则 销售数量文本框的Valid事件代码为:(销售金额文本框的 Name属性值为Txtxse) Thisform.Txtxse.Value=_______ 21.阅读下列程序,写结果: SET TALK OFF S='ABCDEF' N=LEN(S)K=1 DO WHILE K<=N ?SUBS(S,K,N-K)K=K+1 ENDDO 上述程序运行以后,显示内容的前二行为________,_______。 答案: ABCDE,BCDE 22.数据的独立性是指数据和______之间相互独立。答案: 应用程序 23.VFP中表单文件以_______扩展名存贮,通过______属性来引用表单对象。而Caption属性是设置表单标题栏中的信息。 答案: SCX,NAME 24.VFP系统中,可以使用_______命令运行程序文件。 开发应用程序,建立事件循环的命令是______。 答案: DO READ EVENT 25.将控制绑定到一个字段,移动记录后字段的值发生变化,这时对象的_______ 属性的值也随之变化。 答案: VALUE 26.如果要让一个文本框的初值设置为当前日期且不能更改,则在该文本框的______ 事件中设置代码为This.Value=DATE(),同时要将它的______属性设置为.F.。 答案: INIT,ENABLED 27.如果在主表中删除一条记录,要求子表中的相关记录自动删除,则参照完整性的删除规则应设置成_______。答案: 级联 28.对于列表框,当其_______发生变化时,将触发InteractiveChange事件。 答案: VALUE 29.恢复Visual FoxPro 5.0系统菜单的命令是_______。 答案: SET SYSMENU TO DEFAULT 30.如果要让表单第一次显示时自动位于主窗口中央,则应该将表单的_______属性设置值为.T.。 答案: AutoCenter 31.选项按钮组是_______对象,它的Value属性表明用户选定了哪个按钮。假定现有一个选项按扭组有六个选项按钮,该选项按钮组的ControlSource 属性值是一个整型字段,如果用户选择了第四个按钮,则选项按钮组的Value属性值为_______。 答案: 容器,4 32.利用查询设计器设计查询,可以实现多项功能,查询设计器最终实质上是生成一条_______ 语句。 答案: select-SQL 33.组合框的数据源由RowSource属性和RowSourceType属性给定,如果RowSource属性 中写入一条SELECT-SQL语句,则它的RowSourceType属性应设置为_______。 答案: 3-查询 34.某表单中有一“下一记录”的记录定位命令按钮CmdNext,请完成该按钮的Click事件代码:(假定该表单所用到的表为XS.DBF) SELECT XS ______ IF EOF()GO BOTTOM This.______ &&让该按钮不响应用户操作 ELSE Thisform.Refresh ENDIF 答案: SKIP ENABLED=.F.35.设JS.DBF及JSRK.DBF的结构如下: 答案: JS.GH=JSRK.GH 1 VALUE 教师表 教师任课表 字段名 类型 宽度 含义 字段名类型 宽度 含 义 GH C 5 工号 GH C 5 工 号 NAME C 8 姓名 KCH C 2 课 程号 XB C 2 性别 KCMC C 30 课程名称 XIMT C 20 系 名 KSS N 5 课 时数 并且分别对GH建立结构复合索引,它们现有数据如下: 教师(JS.DBF) 工号 姓名 性别 系名 04001 陈子亮 男 管理工程系 04002 赵东萍 女 管理工程系 04003 王一平男 计算机系 04004 陈志敏 男 中文系 教师任课表(JSRK.DBF) 工号 课程代号 课程名称 课时数 04001 1 会计电算化 64 04001 2 会计电算化课程设计 42 04002 3 软件工程 48 04002 4 C++ 64 04003 2 会计电算化 64 04004 5 中国文学 48 下列命令用来查询每个教师的任课课时总数,请将其写完 整: select js.gh,js.xm,SUM(jsrk.kss)AS 总课时 ; FROM JS,JSRK ; WHERE _______; INTO CURSOR cJsrkzstmp ; GROUP BY _______; ORDER BY GH 临时表cJsrkzstmp的记录数为_______。 完善下列命令,实现向 JSRK表中插入一条新记录,记录 内容是: '04003'(工号),'6'(课程代号),'计算机 概论'(课程名称),32(课时数) INSERT INTO jsrk(gh,kch,kcmc,kss)______('04003','6','计算机概论',32)36.如果对上题JSRK.DBF先按工号从小到大排序,在工号相等的情况下,再按课程号从小到大排序,则索引表达式为_______。 答案: GH+KCH 37.已知教师表(JS.DBF)的结构和内容如35题所示,阅 答案: 3,1 读下列程序段: N=0 M=0 SELE JS SCAN WHILE XB='男' N=N+1 ENDSCAN M=RECCOUNT()-N **RECCOUNT()为统计记录数函数 执行上述程序后,N,M的值分别为_______,_______。 38.已知教师工资表(JSGZ.DBF)的结构如下: 答案: VALUE 男,女 JSGZ.XB 工号(GH)C,5 姓名(XM)C,8 性别(XB)C,2 基本工资(JBGZ)N,6 职务工资(ZWGZ)N,6 奖金(JJ)N,4 将上述JSGZ.DBF加入到表单的数据环境中,创建表单: 要求当按下求实发工资按钮时,显示该职工的实发工资。 显示实发工资的文本框的NAME属性的值为Txtsfgz。 该按钮的Click事件的代码如下,请将它写完整: Local lnsfgz lnsfgz=jsgz.jbgz+jsgz.zwgz+jsgz.jj This.Parent.Txtsfgz.______=lnsfgz Thisform.refresh 表单中的性别设置成组合框,如果它的RowSourceType设 置成1-值,则它的RowSource为 _______,该文本框的 ControlSource为_______。 39.下列程序是用来求长方形的面积,请将它写完整: X=3 Y=5 S=AREA(X,Y)?S FUNCTION AREA _______ S1=X*Y RETURN ________ 答案: PARAMETERS X,Y S1 40. 表达式{09/18/2000}-{09/20/2000}的值是 _________。 表达式INT(6.26*2)%ROUND(3.14,0)的值是___________。 答案:-2 0 41.对于数据绑定型控件,通过对 ___________ 属性的设置来绑定控制和数据源。 答案: ControlSoure 42.执行下列程序段后,X(1,1)和x(2,2)的值分别为___________。 程序清单如下: DIMENSION X(6,10)X=123 答案: 123,123 43.恢复主菜单系统为默认的 Visual FoxPro 系统菜单状态的命令是___________。 答案: SET SYSMENU TO DEFALUT 44.不能用 ___________ 和通用型字段构造索引表达式创建索引。 答案: 备注型 45.如果要将某选项按钮组上的按钮设置为5个,应把选项按钮组的 ___________ 属性值设定为5。 答案: ButtonCount 46.采用面向对象的程序设计方法设计的应用程序,其功能的实现是由 ___________ 驱动的。 答案: 事件 47.VFP系统中,打开项目文件的命令是______。 答案: MODIFY PROJECT 48.对象是______的实例。 答案: 类 49.打开一个空表,函数EOF()的值为______。 答案:.T.50.数据库表可以设置长表名,但存贮在磁盘上的文件名是______。 答案: 表名 51.如果数据库表的插入触发器设置为.F.,则当向该表中插入一条空记录时,屏幕显示 ______。 答案: 触发器失败 52.组合框兼有下拉列表框和______的功能。 答案: 文本框 53.在SELECT-SQL语句中,DISTINCT选项的功能是______。 答案: 排除查询结果中所有重复的行 54.在表单中,一个OLE绑定型控件利用表中的______型字段显示一个OLE对象。 答案: 通用 55.已知N='1',M='2',X12='good',则表达式X&N&M的值为_______。 答案: 'GOOD' 56.下列程序用来求0~100偶数之和,请将它写完整: N=0 S=0 DO WHILE.T.IF N>100 _______ ELSE S=S+N ENDIF N=N+2 ENDDO 答案: EXIT 57.本地视图的______ 表随视图的打开而自动地打开,但是不随视图的关闭而关闭。答案: 基 58.在VFP系统中,多个对象的同一个属性(如width属性)可以同时设定,设定前必须同时_______这些对象。 答案: 选定 59.下述命令执行后,S4的值为______________.S1=' ABCD ' S2=' EFG ' S3=ALLT(S1)+ALLT(S2) S4=SUBSTR(S3,5,2)答案: 'EF' 60.答案: D: DATA MYDATA2.DBC 假定有三个数据库文件MYDATA1,MYDATA2,MYDATA3,它们 分别存放在C盘的DATA目录,D盘的DATA目录,A盘的 DATA目录,执行下列程序以后,DBC()函数的值为 _______。 OPEN DATABASE C:DATAMYDATA1 OPEN DATABASE D:DATAMYDATA2 OPEN DATABASE A:DATAMYDATA3 SET DATABASE TO MYDATA2 ?DBC()61.商品数据库中有两个表:商品基本信息表 答案: VAL IN DTOC(XSRQ)+SPBH(spxx.dbf)和销售情况表(xsqk.dbf),表结构分别如下 ,且spxx表已经建立结构复合索引,索引表达式为spbh。 商品基本信息表(spxx.dbf)销售情况表(xsqk.dbf) 商品编号 spbh C,6 流水号 lsh C, 6 商品名称 spmc C,20 销售日期 xs rq D 进货价 jhj N,12,2 商品编号 spbh C,6 销售价 xsj N,12,2 销售数量 xssl N,8,2 备注 bz M 销售金额 xs e N,12,2 1) 要求在向销售情况表中添加记录时,对流水号自动加1,对位数不足字段宽度的流水号,在字符串前以字符“0”补 足,如“125”补“0”后应为“000125”。下列程序段就是用来 完成上述功能,请将它写完整: SELECT MAX(lsh)FROM xsqk INTO CURSOR cMaxlshtmp LOCAL lcMaxlsh,lcNextlsh lcMaxlsh= cMaxlshtmp.lsh && 求出 xsqk表中最大的流水号 lcNextlsh=_______(lcMaxlsh)+1 &&下一个流 水号在最大流水号上加1 INSERT INTO xsqk(lsh)VALUE(PADL(lcNextlsh,5,'0'))USE ______ cMaxlshtmp &&将临 时表关闭 2)如果对xsqk.dbf表按销售日期升序排序,在销售日期 相同的情况下,按商品编号升序排序,则索引表达 式为 ______。 62.根据上题提供的spxx.dbf和xsqk.dbf创建下列表单,答案: SPXX.SPBH , XSQK.XSSL SPBH SPXX.XSJ*XSQK.XSSL TA 该表单用来录入每笔销售业务。 表单中商品编号为组合框,它的RowSource为______。 销售数量文本框的ControlSource为_______。 当商品编号发生变化时,销售价和销售金额也相应地发生 变化,则表单中组合框的InteractiveChange事件的代码 为:(销售价和销售金额文本框的Name属性值分别 为 Txtxsj,Txtxse)Local lcspbh lcspbh=This.Value SEEK lcspbh ORDER _______ IN spxx Thisform.Txtxse.Value=_____________ Thisform.Txtxsj.Refresh 上述表单的数据环境包括xsqk.dbf,spxx.dbf及它们之间 的关系,并且xsqk表的数据缓冲方式为开放式行缓冲,要 求当按下存盘按钮时,将录入的数据真正写入xsqk表中,则存盘按钮的Click事件代码中一定包含一条_______函数。 63.运行下列程序段以后,显示内容的前二行为:_______、________。 【程序段清单】 SET TALK OFF S='ABCDEF' N=LEN(S)K=1 DO WHILE K<=N ?SUBS(S,K,N-K)K=K+1 ENDDO 答案: 'ABCDE','BCDE' ' 64.VFP系统中,终止事件循环的命令是:________。答案: CLEAR EVFNT 65.OOP中文含义为:______。 答案: 面向对象程序设计 66.数据处理是对各种类型的数据进行_________、____________、分类、计算、加工、检索和传输的过程。 答案: 收集、存储 67.数据库一般要求有最小的冗余度,是指数据尽可能____________。数据库的资源_______性,即数据库以最优的方式服务于一个或多个应用程序。据库的数据___________性,即数据的存储尽可能独立于使用它的应用程序。答案: 不重复 共享 独立 68.表达式STR(YEAR(DATE())+10)的数据类型为 ______。 答案: C 69.项目管理器的功能是组织和管理所有与项目有关的类型的________。答案: 文件 70.在数据库系统中,关系模型的基本结构是一张__________。 答案: 二维表 71.按所用的数据模型来分,VFP属于___________数据库管理系统。 答案: 关系型 72.英文缩写‘DBMS’的中文含义是 __________________。DBMS主要由_____________、存储管理器和事务管理器三部分组成。 答案: 数据库管理系统 查询管理器 73.复选框控件可以为三种状态,其Value 属性值分别为.F.、.T.或 __________。 答案: NULL 74.使用报表打印表中的数据,需在报表中将与表字段相关的控件放在报表中的 ___________ 带区。 答案: 细节 75.如果要物理删除带有删除标志的记录,可使用命令___________,但在该命令的执行前,必须将表以___________方式打开。 答案: PACK,独占 76.Visual FoxPro系统中,表的触发器是绑定在表上的 ___________,当表中的任何记录被指定的操作命令修改时,触发器被激活。 答案: 表达式 77.从二维表的后选关键字中,选出一个可作为____________。 答案: 主关键字 78.XS(学生)表的结构 为: 答案: TABLE xs ZZMM L 字段名 中文含义 类型 长度 XH 学号 字符 6 XM 姓名 字符 8 XB 性别 字符 2 CSRQ 出生日期 日期 8 ZZMM 政治面貌 逻辑 1 BZ 备注 备注 4 下列命令用来创建XS表的结构,请将它完善: CREATE ___________; (XH C(6),XM C(8),XB C(2),CSRQ D, __________ ,BZ M)79.答案: Cdd 已知学生成绩表(CJ.DBF)中含有学号(XH,C,6)、课程代号 (KCDH,C,2)和成绩(CJ,N,3)字段。为了给每个成绩评定成 绩等级(优、良、及格、不及格),在该表所在的数据库中 创建了一个根据成绩分数评定成绩等级的自定义函数 getdd,函数getdd的代码如下: FUNCTION getdd PARAMETERS nCj LOCAL cdd cdd=“" DO CASE CASE nCj>=90 cdd=”优“ CASE BETWEEN(nCj,80,89)cdd=”良“ CASE BETWEEN(nCj,60,79)cdd=”及格“ CASE nCj<60 cdd=”不及格“ ENDCASE RETURN ________ 注:Visual FoxPro系统函数BETWEEN()的功能是判 断一个表达式的值是否在两个相同数据类型的表达式的值 之间。 80.一张表的主关键字被包含到另一张表中时,在另一张表中称这些字段为___________。 答案: 外部关键字 81.表中的一列称为__________,它规定了数据的特征;表中的一行称为一个__________,它是多个字段的集 合。 每个字段都必须有一个____________属性来标识该字段。 答案: 字段,记录 字段名 82.表文件的扩展名为___________,如果表结构中包含_______类型或_________类型的字段时,会产生一个扩展名为___________的备注文件。 答案: DBF 备注,通用 FPT 83.已知成绩表(cj.dbf)的表结构如下: 答案: 1 003 字段名 类型 宽度 含义 xh C 3 学号 qz N 3,0 其中 成绩 qm N 3,0 期末 成绩 表中含有3条记录,按输入时的物理顺序排列如下: xh qz qm 001 89 93 002 98 75 003 80 87 该表已创建结构复合索引如下: 索引顺序 索引名 索引表达式 降序 CJA QZ+QM 升序 CJB STR(QZ)+STR(QM)执行如下命令: USE CJ ORDER TAG CJA BROWSE 在浏览窗口中学号为”002“的记录显示在第 _______ 行。 若在命令窗口中执行命令: SET ORDER TO TAG CJB BROWSE 则在浏览窗口中学号为 _______的记录显示在第1行。 84.在表单的Load、Activate和Init这三个事件中,________ 事件不能引用表单及表单中的对象,________事件最后一个被触发。 答案: ACTIVATE 85.有一表单frmA,该表单中包含一个页框pgfB,页框中包含的页面数未知,在刷新表单时,为了刷新页框中的所有页面,可在页框pgfB的REFRESH方法中编写一段FOR循环结构的代码实现,请完善如下代码: FOR i=1 to This._________ This.Pages[i].refresh ENDFOR 答案: PAGECOUNT 86.调用系统对话框的系统函数MessageBox()的语法如下 答案: 32 7 : MESSAGEBOX(cMessageText [, nDialogBoxType [, cTitleBarText]])参数: cMessageText为字符型参数,指定在对话框中显示的 文本。 nDialogBoxType为整型参数,指定对话框中的按钮和 图标、显示对话框时的默认按钮以及对话框的行为。在下 面的表中,对话框按钮值从 0 到 5 指定了对话框中显示 的按钮。图标值 16、32、64 指定了对话框中的图 标。 cTitleBarText为字符型参数,指定对话框标题栏中的 文本。 数值 对话框按钮 数值 图标 0 仅有”确定“ 16 ” 停止 “图标 ”确定“和”取消“ 32 ”* 屎*“图标 ”放弃“、”重试“和”忽略“ 48 ”惊叹号“图 标 ”是“、”否“和”取消“ 64 ”* 畔*(i)“图标 4 ”是“和”否“ 5 ”重试“和”取消“ Messagebox()函数的返回值取决于用户所选择的按钮,返 回值情况如下表所示: 按 钮 确定 取消 放弃 重试 忽 略 是 否 返回 值 1 2 3 4 7 某应用程序在执行过程中出现了如右图所示的对话框: 根据对话框所显示的有关信息,完善下面程序段: Local nSelect nSelect=MessageBox(”删除吗?“,4+ ________ ,”删除 确认“)IF nSelect=6 select js DELETE ENDIF 如果在出现该对话框时选择”否“,则变量nSelect的值是 ___________。 87.已知教师表JS.DBF(含有字段:工号(GH,C,6), 姓名 答案: AVG(jbgz)as平均工资 WHERE ximing='信息管理系' GROUP BY ximing(XM,C,8), 基本工资(JBGZ,N,7,2), 系名(XIMING,C,16))。完成下列SQL命令,统计JS表中”信息管 理系“ 职工的平均工资。SQL命令如下: SELECT _________;FROM JS;________;INTO CURS JSTMP;_________ 88. 答案: ALLT(STR(n))ENDSCAN 已知学生成绩表(CJ.DBF)的结构由学号(XH,C,6)、课程 代号(KCDH,C,2)和成绩(CJ,N,3)三个字段组成,下面程序 段用来检查表中的CJ是否小于0,如果小于0,给出提示信 息。例如:如果第3条记录的成绩小于0,则显示提示信息 为:”第3条记录的成绩录入不合法“。完善下列程序段,使它完成上述功能: USE CJ SCAN IF CJ<0 n=RECNO()S =”第“+ ________ +”条记录的成绩录入 不合法“ WAIT S ENDIF _________ ***** 一。表、数据字典 ***** 答案: 89。‘银行存款’表(CK.DBF)的表结构字段组成为: 答案: CREATE TABLE ck(zh C(15)NULL,crrq D,cq N(2,0),je Y) ALTER TABLE ck ADD COLUMN BZ M &&修改表结 构 APPEND BLANK 帐号(ZH,C,15,NULL) 存入日期(CRRQ,T,8) 存期(CQ,N,2,0) 金额(JE,Y,8) 要求写出创建CK表的SQL语句_________。 为该表增加一个备注型字段BZ的命令是_____________。 增加一条空记录的命令是____________。90。在js表中要删除所有工龄(字段名gl)大于60的记录的SQL命令是DELETE ________ js WHERE _______; 要彻底删除这些记录,可用_______命令,但这一命令的实施,必须要求表以________方式打开。 答案: FROM,gl>60 PACK 独占 91。在教师表(js)中按如下要求更改基本工资(jbgz)答案: SET jbgz+20 jbgz>=20 : 工龄在10年以下(不含10年)基本工资加 工龄在10--19年 基本工资加 工龄在20年以上(含20年)基本工资加 可用UPDATE命令完成上述更改: update js _______ jbgz=IIF(js.gl<10,_________,; IIF(________,jbgz+50,jbgz+35))92。如果学生表(xs.dbf)已在当前工作区中打开,要筛选出专业代号zydh为“102001”的记录的命令是____________;要取消该筛选的命令是____________。答案: SET FILTER TO zydh=”102001“ SET FILTER TO 93。执行下列一组命令: 答案: 1 stu.T..T.stu CLOSE TABLES ALL select 0 USE xs ALIAS stu 则函数SELECT()的值是___________; ALIAS()的值是____________。 再执行命令: USE js IN 0 则函数USED(”xs“)的值是__________;USED(”js“)的值是__________;ALIAS()的值是__________。94。执行下列一组命令: SET EXCLUSIVE OFF USE js USE xs EXCLUSIVE IN 0 则js表的打开方式是___________;xs表的打开方式是___________。 答案: 共享 独占 95。已知xs表的结构复合索引中已创建xh字段的普通索引,索引标识为xh,在没有设置主控索引的情况下,要用SEEK命令定位到学号“98010”的记录上,则该命令为_______________。答案: SEEK ”98010“ ORDER TAG xh 96。打开一张表时,___________索引文件将自动打开,表关闭时它将自动关闭。答案: 结构复合 97。通用型数据类型只能用于表中字段的定义,用于存储___________对象。答案: OLE 98。如要实现多字段排序,即先按班级(bj,N,1)顺序排序,同班的同学再按出生日期(csrq,D)顺序排序,同班且出生日期也相同的再按性别(xb,C,2)顺序排序,其索引表达式为___________。答案: STR(bj)+DTOC(csrq)+xb 99。记录的定位方式有________定位、____________定位和条件定位三种。答案: 绝对 相对 100。打开一张空表,在不移动记录指针的情况下,函数 答案:.T..T.1 .F..F.1 BOF()的值是_________;函数EOF()的值是 _________;函数RECNO()的值是_________。 如果打开的表中有一条记录,在不移动记录指针的情况下 ,函数BOF()的值是_________;函数EOF()的值是 _________;函数RECNO()的值是_________。101。如果子表中已有相关记录,修改主表记录的主关键字时,要求同时修改子表中相关记录,则参照完整性的___________规则应设置为__________。答案: 更新 级联 102。不允许子表增加或修改记录后出现“孤立记录”,则参照完整性的___________规则应设置为____________。答案:插入 限制 103。对数据库表增加新记录时,为某一字段自动给定一个初始值,这个值称为___________。答案: 默认值 104。数据库中的每一张表能建立_____个主索引。 如某字段定义为候选索引或主索引,要求该字段的值必须具有_________性。 索引可分为多种类型,其中________类型只适用于数据库表。答案: 1 唯一 主索引 105。参照完整性只有在________之间才能建立,以保持不同表之间数据的__________.如果要在课程表与学生成绩表之间设置参照完整性,则首先必须建立它们之间的_________ 关系。如果修改了课程表中课程代号后要求自动更新学生成绩表 中相关记录的课程代号,则应设置更新规则为________;如果课程表中没有的课程代号禁止插入到学生 成绩表中,则应设置插入规则为_________。答案: 数据库表、一致性、永久 级联、限制。 106。触发器指定一个规则,这个规则是一个____________。当某个命令或事件发生后,将自动触发相关触发器的执行,计算逻辑表达式的值,如果返回值是________,将不执行此命令或事件。答案: 逻辑表达式.F.107。纽带表的作用是把___________分解为两个_________。答案:多对多关系 一对多关系 108。某公司数据库中雇员表含有两个日期型字段:出生日期和雇佣日期,为了避免雇佣15岁(包括15岁)以下的童工,应为该表设置________有效性规则,规则表达式为____________。答案:记录级 year(雇佣日期)-year(出生日期)>15 或:(雇佣日期-出生日期)/365>15 109。在数据库jxsj中有视图vkccj,写出用DBGETPROP()函数测试生成该视图的SQL语句的函数表达式______。答案: DBGETPROP('vkccj','VIEW','SQL') 110。已知某公司数据库中包含供货商表和商品表,表结构分别如下: 供货商表的表结构 : | 商品表的表结构: 供应商ID,N(20)| 产品ID,N(20) 公司名称,C(40)| 产品名称,C(40) 联系人姓名,C(30)| 供应商ID,N(20) 联系人头衔,C(30)| 类别ID,N(20) 地址,C(60)| 单位数量,C(20) 城市,C(15)| 单价,N(20,2) 地区,C(15)| 库存量,N(20) 邮政编码,C(10)| 订购量,N(20) 国家,C(15)| 电话,C(24)| 如所有的商品都是来自于已知的供货商,则这两张表的关系是_________关系,其中主表是______表。已知商品表的主关键字是“产品ID”,供货商表的主关键字是“供应商ID”,则该字段在商品表中称为 __________。如果要在这两张表之间建立永久关系,则首先应该在主表中以_________字段为索引关键字建立主索引,在子表中以________字段为索引关键字建立普通索引。答案: 一对多,供货商,外部关键字,供应商ID,供应商ID 一、选择题 1.在VisualFoxPro系统中,下列命名中不能作为变量名的是_____________。 A.姓名 B.2005 姓名 C.A2005 D._2005学生 2.在VisualFoxPro系统中,下列表示中不属于常量的是_____________。 A.[NULL] B.nul C.”NULL“ D..NULL.3.函数ROUND(5.64,-1)的返回值是_____________。A.5 B.5.6 C.0 D.10 4.执行下列命令后,屏幕上显示的结果是_____________。nX=3.14159 nLen=8 nDec=3 ?STR(nX,nLen,nDec) A.3.114159 B.3 C.3.142 D.3.14 5.下列关于数据库、表和索引的叙述中,正确的是_____________。 A.打开一个数据库,将自动打开所有的数据库表 B.打开一个数据库表,将自动打开其所有对应的数据库 C.打开一个数据库表,将自动打开该表的所有索引 D.关闭一个数据库表,将自动关闭该表的所有索引 6.有如下一段程序: CLOSE TABLES ALL USE xs select 3 USE kc USE cj IN 0 上述程序执行后,当前系统中使用工作区及打开的表的情况分别是_____________。 A.0号工作区: cj表;3号工作区: kc表 B.1号工作区: xs表;2号工作区: cj表;3号工作区: kc表 C.0号工作区: xs表;1号工作区: cj表;3号工作区: kc表 D.1号工作区: xs表;3号工作区:kc表;4号工作区: cj表;7.在下列有关表单及其控件的叙述中,错误的是_____________。 A.从容器层次来看,表单集是最高层的容器类,它不可能成为其他对象的集成部分 B.表格容器控件包含列容器控件 C.页控件的PageCount属性值可以为0 D.列表的ColumnCount属性可以为负值 8.对于许多控件来说,可以通过ControlSource属性与数据绑定。在下列VFP对象中,无ControlSource属性的是_____________。 A.标签(Label)B.复选框(CheckBox)C.选项按钮组(OptionGroup)D.列表框(ListBox)9.若要将表文件xs.dbf复制到xs1.dbf文件(假设xs.dbf未打开,且保存在当前默认目录内),则可以使用命令_____________。 A.COPY xs.dbf xs1.dbf B.COPY FILES xs.dbf TO xs1.dbf C.COPY TO xs1 STRU D.COPY TO xs1 10.要在浏览窗口中显示表xs.dbf中职称(jg c(10))为“江苏”的记录(该字段的内容不含空格),下列命令中不能实现此功能的为__________________。A.select * FROM xs WHERE xs.jg==”江苏“ B.select * FROM xs WHERE left(xs.jg,4)=”江苏“ C.select * FROM xs WHERE ”江苏“ $ xs.jg D.select * FROM xs WHERE xs.jg=”江苏" 11.在中文Visual FoxPro系统中,若设置SET DATE TO LONG,则表达式LEN(DTOC({^2005 7 1}))的值为__________。A.12 B.6 C.8 D.10 12.欲限制某数据库表中一字段的值不能重复,则可行的方法是______________。A.对该字段创建主控索引 B.对该字段创建唯一索引 C.对该字段创建主索引 D.对该字段创建主索引或唯一索引 13.Visual FoxPro系统中,0对数据库表设置参照完整性过程时,“更新规则”选择了“级联”选项后,则__________________。 A.在更新父表的关键字的值后,以新的关键字值更新子表中的所有相关记录 B.在更新父表的关键字的值时,若子表中有相关记录则禁止更新 C.在更新父表的关键字的值时,若子表中有相关记录则允许更新 D.在更新父表的关键字的值时,不论子表中是否有相关记录都不允许更新 14.设CmdClose是一个用户创建的“关闭”命令按钮子类,并设置了Click事件代码。在某表单中基于CmdClose类创建了一个命令按钮CmdClose1,则___________________。A.可以为CmdClose1设定Click事件代码,运行时只执行该代码,而不执行CmdClose类的Click事件代码; B.可以为CmdClose1设定Click事件代码,运行时既执行该代码,又执行CmdClose类的Click事件代码; C.可以为CmdClose1设定Click事件代码,运行时只不执行该代码,而执行CmdClose类的Click事件代码; D.不可以再为CmdClose1设定Click事件代码。 15.若为js.dbf表删除一个年龄字段(nl n(3)),以下命令中正确的是___________________。A.ALTER TABLE js ADD nl n(3)B.ALTER TABLE js DROP nl n(3)C.ALTER TABLE js DELETE nl D.ALTER TABLE js DROP nl 16.设有一自由表xx.dbf。下列SELECT-SQL命令中,说法错误的是_______________。 A.select * FROM xx &&将xx表的所有内容送往浏览窗口; B.select * FROM xx INTO CURSOR temp &&将xx表的所有内容送往临时表temp; C.select * FROM xx INTO TABLES temp &&将xx表的所有内容送往表文件temp; D.select * FROM xx TO PRINTER &&将xx表的所有内容送往打印机 17.关于引用对象说法错误的是_____________。 A.绝对引用是指从容器对象的最高层次开始,给出欲引用对象的绝对地址; B.相对引用是指在层次型容器中相对于某个容器层次进行引用; C.this和parent是指向对象的指针; D.绝对引用和相对引用的效果不同 18.件是一个应用程序运行时的起点,是应用程序执行时首先要执行的文件。在一个项目中,只能指定一个文件为主程序。下列说法中正确的是___________________。A.作为主文件必须是可以执行的,并且被首先执行。B.项目、菜单、查询和表单可以作为主文件 C.数据库、查询、表单和程序(.prg)可以作为主文件 D.菜单、查询、表单和表可以作为主文件 19.一个应用程序来说,报表打印输出是常用的部分,其设计工作量通常比较大。在下列有关报表的叙述中,错误的是___________________。 A.所有利用报表设计器创建的报表,其数据环境中一定包含表或视图; B.标签是特殊的报表,二者没有本质的区别; C.报表文件中包括了数据源、需要打印的文本及布局等信息; D.在打印报表时,可以不打印细节行,只打印总计和分类总计信息 20.据库系统由数据库、_____________________________组成。 A.DBMS、应用程序、支持数据库运行的软、硬件环境和DBA B.DBMS和DBA C.DBMS、应用程序和DBA D.DBMS、应用程序、支持数据库运行的软件环境和DBA 21.rivate 命令用来对______________________进行声明。A.公共变量 B.局部变量 C.全局变量 D.私有变量 22.文件经过生成以后形成的菜单程序文件的扩展名是______________。 A.MPR B.MNX C.MPX D.MND 23.SET DATE命令可以设置日期的显示格式。如果要将日期显示为“2002年10月1日”的形式,可以利用命令 ____________。 A.SET DATE TO MDY B.SET DATE TO ANSI C.SET DATE TO YMD D.SET DATE TO LONG 24.管理器不能组织和管理的文件有______________。A.程序文件 B.表文件 C.非结构索引文件 D.数据库文件 25.Visual FoxPro 中创建数据库后,系统自动生成的三个文件的扩展名分别为_______。 A..PJX、.PJT、.PRG B..DBC、.DCT、.DCX C..FPT、.FRX、.FXP D..DBC、.SCT、.SCX 26.关VFP对象(控件)的属性,事件和方法的叙述中,错误的是_____________ A.用户可以为表单创建新的属性,但不能为表单中的对象(控件)创建新的属性 B.用户创建的新属性,其默认值均为.F.C.任何对象(控件)的事件集总是固定的,用户不可能添加新的事件 D.方法和事件总是一一对应的,即一个方法程序对应着一个事件 27.md是一个用户创建的命令按钮子类,并设置了Click事件代码。现在某表单中基于cmd类创建了一个命令按钮,则在定义该命令按钮的Click事件代码,_________。 A.cmd 类的Click事件代码可视,但不能被修改 B.cmd 类的Click事件代码可视,但能被修改 C.cmd 类的Click事件代码不可视,且运行表单并单击按钮时cmd类的Click事件代码不被自动执行,须引用cmd::click才可执行。 D.cmd 类的Click事件代码不可视,且运行表单并单击按钮时该cmd类的Click事件代码总被执行 28.列有关VFP对象(控件)的叙述中,错误的是___________ A.复选框控件的Value值只能为1(.T.)或0(.F.)不能为空值(.NULL.) B.一个标签控件可多行显示文本 C.命令按钮控件上可同时显示文本和图片 D.表格中的每一列都是容器对象,而且拥有自己的属性,事件和方法 29.不属于关系代数运算的是______________。A.查询 B.投影 C.选择 D.联接 30.叙述中,正确的是()。A.在命令窗口中被赋值的变量均为局部变量 B.在命令窗口中用PRIVATE命令说明的变量均为局部变量 C.在被调用的下级程序中用PUBLC命令说明的变量都是全局变量 D.在程序中用PRIVATE命令说明的变量均为全局变量 二、填空题 1、在数据库系统中,实现各种数据管理功能的核心软件称为 数据库管理系统_____。 2、为使表单运行时在主窗口中居中显示,应设置表单的AutoCenter属性值为 _________。 3、?AT(”EN”,RIGHT(“STUDENT”,4))的执行结果是 _______。 4、数据库表上字段有效性规则是一个 _________表达式。 5、在Visual FoxPro中,通过建立数据库表的主索引可以实现数据的 ________ 完整性。 6、连编应用程序时,如果选择连编生成可执行程序,则生成的文件的扩展名是 ________。 8、为修改已建立的报表文件打开报表设计器的命令是__________。 9、VFP的应用程序中菜单系统由菜单栏、________、菜单、菜单项等四部分组成。 10.类(class)是面向对象程序设计的核心。类具有:抽象性、封装性、继承性、多态性的特点,其中______________性是体现并扩充了面向对象程序设计方法的共享机制。11.主文件是一个应用程序执行的开始点,在一个项目中可以指定____个主文件。 12.设当前默认目录有一报表文件“工资表打印.frx”,则调用报表的命令是: __________________________________。 13.在VTP集成环境下可用系统提供的修饰工具提高程序的可读性(缩进、大小写等),用编译检查出语法错误,使用系统提供的________工具来调试程序,排除程序中语义逻辑错误。 14、使用SQL语句将一条新的记录插入学院表 ??INSERT_________ 学院(系号,系名)_________(“04”,“计算机”) 15、使用SQL语句求“工商管理”系的所有职工的工资总和。 ??SELECT _________(工资)FROM 教师; ?? WHERE系号IN 9(SELECT 系号FROM _______ WHERE 系名=“工商管理”) 16、使用SQL语句完成如下操作(将所有教授的工资提高5%)??__________ 教师 SET 工资=工资*1.05 [15] 职称=“教 授”第四篇:全国计算机等级考试二级
第五篇:全国计算机二级VFP模拟试题[