VFP 上机考试题目-1一、判断题(10题,每小题1分,共10分)1. 若要使用多个表,就要使用多个工作区。
2. 在应用程序中可以通过使用该工作区的表的别名来标识工作区。
3. 对象具有属性,而属性只能在设计阶段设置。
4. 引用对象的方法分绝对引用和相对引用。
5. 表单集是指两个以上的表单同时输出,并且可以通过程序或鼠标交换输出权。
6. 一条命令可分几行写,在行结束处用“:”表示一行未完,转入下一行。
7. VFP主要数据容器有:表记录、变量和数组。
8. 报表包括两个基本组成部分:数据源和布局。
9. 如果不想使用“报表向导”或“快速报表”设计报表,可以从空白报表布局开始,然后自己添加控件。
10. 表选择查询输出的去向可以是浏览、报表或表单。
二、单选题(10题,每小题2分,共20分)1. 下面选项中不属于面向对象程序设计特征的是A. 继承性B. 多态性C. 类比性D. 封闭性2. 下列对列的叙述正确的是A. 队列属于非线性表B. 队列按“先进后出”原则组织数据C. 队列在队尾删除数据D. 队列按“先进先出”原则组织数据3. Visual FoxPro是一种A. 数据库系统B. 数据库管理系统C. 数据库D. 数据库应用系统4. 在Visual FoxPro中调用表单mf1的正确命令是A. DO mf1B. DO FROM mf1C. DO FORM mf1D. RUN mf15. 要在浏览窗口中显示表js.dbf中职称(zc)为“教授”和“副教授”的纪录(该字段的内容无前导空格),下列命令中不能实现此功能的是。
A.SELECT * FROM js WHERE js.zc=“教授” OR js.zc=“副教授”B. SELECT * FROM js WHERE “教授” $ js.zcC. SELECT * FROM js WHERE js.zc IN(“教授” ,“副教授”)D. SELECT * FROM js WHERE WHERE RIGHT(js.zc,4)= “教授”6. 在Visual FoxPro系统中,表达式LEN(DTOC(DA TE(),1))的值为。
A.4B. 6C. 8D.107. 如果要对自由表某一子段的数据之建立唯一性保护机制(即表中所有字段的值不重复),以下表述中正确的是。
A. 对该字段创建主索引B. 对该字段创建唯一索引C. 对该字段创建候选索引D. 对该字段创建普通索引8. Visual FoxPro系统中,对数据库表设置参照完整性过程时,“更新规则”选择了“限制”选项后,则。
A. 在更新父表的关键字的值时,新的关键字值更新子表中的所有相关记录B. 在更新父表的关键字的值时,若子表中有相关记录则禁止更新C. 在更新父表的关键字的值时,若子表中有相关记录则允许更新D. 在更新父表的关键字的值时,不论子表中是否有相关记录9. 设cmd是一个用户创建的命令按钮子类,并设置了Click事件代码。
在某表单中基于cmd类创建了一个命令按钮,则在该命令按钮的Click事件代码编辑窗口中,。
A. cmd 类的Click事件代码可视,但不能被修改B. cmd 类的Click事件代码可视,但能被修改C. cmd 类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码不被执行D. cmd 类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码被执行10. 若为xs.dbf表添加一个宽度为6的字符型字段mc,以下命令中正确的是。
A. ALTER TABLE xs ADD mc C(6)B. ALTER xs.dbf ADD COLUMN mc C(6)C. ALTER xs.dbf ADD mc C(6)D. ALTER TABLE xs ADD FIELD mc C(6)三、填空题(10空,每空2分,共20分)1. 若已经为在当前工作区中打开的表设置了主控索引,将记录指针移动到物理顺序的第一条记录,所用的命令为GOTO1,而将记录指针移动到逻辑顺序的首纪录,所使用的命令为。
2. 若xs.dbf表中含有10个字段且已在当前工作区中打开,则仅浏览表中xh、xm 、xb这三个字段的数据,可用:BROWSE 命令。
3. Visual FoxPro系统提供的基类都有最小事件集(Destroy 、Error、Init)。
从事件的激发顺序看,最小事件集中事件是最后激发的。
4. 计时器是在应用程序中用来处理复发事件的控件,其典型应用是检查系统时钟,决定是否到了某个程序或应用程序运行的时间。
其Interval 属性用于指定计时器控件的事件之间的时间间隔,单位为毫秒。
5. 利用页框控件,可以增加表单的“表文件”。
运行某表单时,如果要将表单1的页框(PageFrame)改为其他的页框,则应将表单1页框的的属性设置为.F.。
6. 若要为表单设计下拉式菜单,主要操作分为二部分:其一是将菜单类型设计为SDI菜单,并在菜单设计过程中,选择“常规选项”对话框中“顶层表单”复选框;其二是将SDI 菜单附加到表单中,首先将表单的Show Windows 属性值设置为2作为顶层表单,然后在表单的事件代码中添加调用SDI菜单程序的命令。
7.下面的命令是给XS表中的记录做删除标记。
若要恢复XS表中学号(XH)字段以“99”开头的带有删除标记的记录,可使用命令。
USE XSDELETE FOR XH="98" OR XH="99"8. 在某表单运行时,表单上某个命令按钮标题显示为“取消(X)",则该命令按钮的Caption属性值为。
9. 设表单上某形状控件的Height属性与Width属性值相等,则Curvature属性值为时该形状为圆。
10. 事件是对象能够识别的一个动作,方法是对象能够执行的一组操作。
对于SerFocus和GotFocus,是事件。
参考答案:四、程序填空题(10空,每空2分,共20分)1. SET TALK OFFACCEPT “输入表名:” TO KMUSE &KM____________ // 显示最前面5条记录WAITGO BOTTOM_____________ // 显示最后4条记录DISP NEXT 4USE2. 有12个结构完全相同的表WY01,WY02,…….WY11,WY12,下列程序完成的功能是:顺序打开每一个表并浏览之。
SET TALK OFFG=1DO WHILE _____________DO CASECASE G<10GW=’WY0’+STR(G,1)CASE G>=10GW=’WY’+_____________ENDCASEUSE_____________BROW_____________USEENDDO3. 完善下列程序,以实现通过字符串变量操作竖向显示“天长地久”、横向显示“地久天长”的功能。
SET TALK OFFSTORE “天长地久” TO chCLEARn=1DO WHILE n<8? _____________n=n+2ENDDO? _____________?? SUBSTR(ch , 1, 4 )RETURN4. 在某教学管理数据库中,有一个成绩表(cj.dbf),表结构及其记录如下表所述。
对于下列SELECT-SQL语句,其查询结果含有_________条记录。
SELECT xh, COUNT (*) AS 选课门数FROM cj GROUP BY xh5. 在Visual FoxPro系统的命令窗口中,输入并执行下列命令后,VFP主窗口中显示内容为_________。
?3^2+2=MOD(12,7)+LEN("FoxPro")参考答案:五、程序设计题(2题,共30分)1. 面向过程程序设计(10分)。
某次入学考试科目为英语、数学、语文三门课,录取规则是:1)总分必须200分(含)以上,200分以下不录取。
2)在总分200分(含)以上情况下,单科要求如下:(1)英语、数学都在60分(含)以上的录取;(2)英语70分(含)以上,并且,数学55分(含)以上的需参加复试决定是否录取;(3)其他情况一律不录取。
要求输入英语、数学、语文三门课成绩后,显示“录取”、“不录取”或“复试”。
参考答案:SET TALK OFFINPUT "英语成绩:" TO yuINPUT "数学成绩:" TO sxINPUT "语文成绩:" TO ywzf=yu+sx+ywIF (zf>=200)IF yu>=60 and sx>=60? "录取"ELSEIF yu>=70 and sx>=55? "复试"ENDIFENDIFELSE? "不录取"ENDIF运行样例:12行运行样例1:英语成绩: 80数学成绩: 70语文成绩: 80结果:录取运行样例2:英语成绩: 80数学成绩: 55语文成绩: 70结果:复试运行样例3:英语成绩: 80数学成绩: 55语文成绩: 60结果:不录取2. 面向对象程序设计。
在考生文件夹下有学生管理数据库BOOKS,数据库中有score表(含有学号、物理、高数、英语和学分5个字段),其中前4项已有数据。
如下图所示:(本题20分)请编写符合下列要求的程序并运行程序:(1)设计一个名为myform的表单,表单中有两个命令按钮,按钮的名称分别为cmdYes和cmdNo,标题分别为“计算”和“关闭”,同时把表单的标题命名为“统计学分”。
程序运行时,单击“计算”按钮应完成下列操作:(2)计算每一个学生的总学分并存入对应的学分字段。
学分的计算方法是:物理60分以上(包括60分)2学分,否则0分;高数60分以上(包括60分)3学分,否则0分;英语60分以上(包括60分)4学分,否则0分。
(3)根据上面的计算结果,生成一个新的表xf,(要求表结构的字段类型与score表对应字段的类型一致),并且按学分升序排序,如果学分相等,则按学号降序排序。
(4)单击“关闭”按钮,程序终止运行。
参考答案:运行样例:1. 表单界面:2. “计算”按钮中的代码:对象:cmdYes 过程:clickSET TALK OFFuse scorereplace all 学分 with 0go topdo while .not. eof()if 物理>=60 thenreplace 学分 with 学分+2endifif 高数>=60 thenreplace 学分 with 学分+3endifif 英语>=60 thenreplace 学分 with 学分+4endifskipenddosort on 学分,学号/d to xfSET TALK ON3. “关闭”按钮中的代码:对象:cmdNo 过程:clickTHISFORM.RELEASE运行结果:生成一个新的表xf,(表结构的字段类型与score表对应字段的类型一致),并且按学分升序排序,如果学分相等,则按学号降序排序,如下图所示。