1、VFP程序设计期末考试题1VFP程序设计期末闭卷考试题一、单项选择题(每小题1分,共计30分) 1. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是 。 A) DBS包括DB和DBMS B) DBMS包括DB和DBS C) DB包括DBS和DBMS D) DBS就是DB,也就是DBMS2Visual FoxPro支持的数据模型是 。 A)层次数据模型 B)关系数据模型 C)网状数据模型 D)树状数据模型3如果设计了通用型字段,_。 A) 系统会自动生成一个扩展名为.MEM的备注文件 B) 系统会自动生成一个扩展名为.GEN的通用文件 C) 系统会自动生成一个扩展名为.FP
2、T的备注文件 D) 通用型字段放置在扩展名为.DBF文件中4运算符“=”相当于_。 A) “”运算和“=”运算之间存在“与”的关系 B) “”运算和“=”运算之间存在“或”的关系 C) “”运算和“=”运算之间存在“顺序”的关系 D) “”运算和“=”运算之间不存在任何关系5逻辑运算符的运算顺序是_。 A) .NOT. .AND. .OR. B) .OR. .NOT. .AND. C) .NOT. .OR. .AND. D) .AND. .OR. .NOT.6执行命令? 逻辑运算符= 逻辑 以后输出结果为_。 A) .T. B) .F. C) .T. D) .F.7 能从“关系数据模型”中取出
3、“模型”二字的函数是_。A) SUBSTR(关系数据模型,5,2) B) SUBSTR(关系数据模型,5,4)C) SUBSTR(关系数据模型,9,2) D) SUBSTR(关系数据模型,9)8. 在打开的“库存”数据表的结构为:编号(C,4)、品名(C,20)、单价(N,7,2)、数量(N,6,0),则单价字段可接收的最大数额为_。 A) 999.99 B) 9999.99 C) 99999.99 D) 999999.999APPEND 命令可以在_追加数据记录。 A) 数据表尾部 B) 数据表首部 C) 数据表中间 D) 数据表中的任何位置10下列命令中,_命令的执行结果是将记录指针定位到
4、表中最后1条记录。 A) GO TOP B) GO 1 C) GO BOTTOM D) SKIP 111在打开的“职工情况表”表中包含字段:出生日期(D,8),需要显示1980年出生的职工的记录,应使用的命令是_。 A) LIST FOR 出生日期=1980 B) LIST FOR DATE(出生日期)=1980 C) LIST FOR YEAR(出生日期)=1980 D) LIST FOR YEAR(出生日期)= 198012. 在打开的“图书表”表中包含字段:书名(C,30),要求显示字段“书名”中包含字符串程序设计的记录,可以使用的命令是_。I. LIST FOR AT(程序设计,书名)
5、 II. LIST FOR AT(程序设计,书名) 0III. LIST FOR 程序设计$书名=.T. IV. LIST FOR 程序设计$书名=.T.A) I、III B) II、IV C) II、III D) III、IV13. 在打开的商品销售表中包含有字符型字段“商品编号”、 “商品名”,日期型字段“销售日期”,下列命令中,可以显示2007年1月以后销售的商品记录的命令是_。 A) LIST 销售日期2007/01/30 B) LIST FOR 销售日期=2007/02/01 C) LIST FOR 销售日期2007/01/3114在Visual FoxPro中,删除记录的方法可以分
6、成两步_。 A) 先逻辑删除,再物理删除记录 B) 先物理删除,再逻辑删除记录 C) 先逻辑删除记录,再删除结构 D) 先显示结构,再删除记录15. 在打开的数据表中包含有字段:商品编号(C,6)、数量(N,5,0), 使用REPLACE命令将“商品编号”为“AX09”的商品数量增加1000,可以使用的命令是_。 A) REPLACE ALL 数量 WITH 数量+1000 B) REPLACE FOR 商品编号=AX09 数量+1000 C) REPLACE FOR 商品编号=AX09 数量 WITH 数量+1000 D) REPLACE FOR 商品编号=AX09 数量 WITH数量+10
7、0016. 在打开的数据表中包含有字段:单价(N,6,0),若要将所有商品的单价打9折,应使用的命令是_。 A) LIST 单价 WITH 单价*0.9 B) REPL 单价 WITH 单价*0.9C) REPL ALL 单价 WITH 单价*0.9 D) REPL ALL 单价 WITH 单价*0.917在打开的数据表中包含有字段:书号(C,6),要求将书号以字母“A”开头的所有图书记录打上删除标记,应使用命令 。A) DELETE FOR A$书号 B) DELETE FOR SUBSTR (书号,1)AC) DELETE FOR 书号AD) DELETE FOR 书号A18 命令完成物理
8、删除当前表中所有被逻辑删除的记录。 A) DELETE B) PACK C) CLEAR D) CLOSE ALL19如果指定参照完整性的“更新”规则设为“级联”,则当修改父表中的关键字值时 。 A) 自动备份子表中的相关记录 B) 自动更新子表中的所有相关记录 C) 自动更新子表中的一条相关记录 D) 与子表记录同时显示,以便更新20在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实现的_。A) “一方”表的普通索引,“多方”表的主索引或候选索引B) “一方”表的主索引,“多方”表的普通索引或候选索引C) “一方”表的主索引或候选索引,“多方”表的普通索引D) “一方”表的普通索引
9、,“多方”表的候选索引或普通索引21在Visual FoxPro中,数据库文件的扩展名是 _ 。A) .IDX B) .DBF C) .CDX D) .DBC22“图书库存表”表中包含有字段:书号(C,6)、书名(C,30)、作者(C,8)、出版社(C,20)、单价(N,6,2)使用SELECT_SQL语句,显示书号、书名和作者,使用的语句是 。 A) SELECT * FROM 图书库存表 B) SELECT 书号,书名,作者 FROM 图书库存表 C) SELECT书号,书名,作者 OPEN 图书库存表 D) SELECT书号,书名,作者 WHERE 图书库存表 23在SELECT_SQL
10、语句中,查询“图书库存表”中所有单价小于30元的纪录,使用的语句是 。 A) SELECT * FROM 图书库存表 B) SELECT * FROM 图书库存表 WHERE 单价30 C) SELECT ALL FROM 图书库存表 FOR 单价30 D) SELECT * FROM图书库存表 单价=5000 and 全年定额5000 and 全年定额=10000 and 全年定额10000 or 全年定额10000B) SELE * from bmde,bmxs where bmde.部门代码=bmxs.部门代码 or 全年定额10000C) SELE * from bmde,bmxs w
11、here 部门代码=部门代码 and 全年定额10000D) SELE * from bmde,bmxs where bmde.部门代码=bmxs.部门代码,全年定额1000028Visual FoxPro命令文件(或称程序文件)的缺省扩展名是_。A) .FRM B) .PRG C) .FOR D) .DOC29在永真条件DO WHILE .T.的循环中,为退出循环可使用_。A) LOOP B) EXIT C) CLOSE D) CLEAR30Visual FoxPro的所有控件都具有_属性。A) Caption B) ControlSource C) Name D) Value二、填空题(第
12、110小题每空1分,1120小题每空2分,共计30分)1执行下列命令后: STORE SPACE(10)+计算机基础+SPACE(10) -教程 TO R L=LEN(ALLTRIM(R)变量L的值为 【1】 。2. 表达式 Day(2007/03/20+10)的值为 【2】 。3输入命令:? NOT 计算机 = =计算机 OR .T. AND .F. 以后输出结果为 【3】 。 4输入命令:? AT(15,251581-581+515,3), 系统输出结果是 【4】 。5. 输入命令:? MAX(ABS(-200.67),INT(200.67),ROUND(200.67,1),系统系统输出结
13、果是 【5】 。6. 如果系统日期没有错误,则现在输入命令:? YEAR(DATE(),系统输出结果是 【6】 。7函数AT(EF,SUBSTR(ABCDEFGHIJ,6) 的值是 【7】 。8. Visual FoxPro提供了多种索引类型,其中主索引和 【8】 索引的索引关键字的值不允许有重复值。9. 关系数据库中有三种基本:选择、投影和连接。其中, 【9】 操作是从关系中找出满足条件的记录。10. 面向对象的程序设计中,事件是一种由系统预先定义好的特定的动作,由用户或系统激活。例如,若用鼠标单击命令按钮,将会触发一个 【10】 事件。11依次输入下列命令:USE BMDEGO BOTTO
14、MSKIP EOF()系统输出结果是 【11】 。【提示:数据表BMDE参看附表1(下同)。】12依次输入下列命令:USE BMDE LOCATE FOR 部门代码=A002 FOUND()系统输出结果是 【12】 。13. 下面是一个从键盘上输入“部门代码”,可在数据表BMDE中进行查询的程序。Use BMDE Accept 输入部门代码= to VDM Locate For 部门代码=Alltrim(VDM) ? 部门代码,部门名称UseReturn 从键盘上输入“A001”,则系统显示 【13】 。14. 输入命令:select 部门名称,【14】 from bmde,显示结果如下。15
15、. 输入命令:select 部门名称,人数,一月销售额 where 【15】 from bmde,bmxs显示结果如下。【提示:数据表bmxs参看附表2(下同)。】16. 输入命令:select 部门名称,全年定额 from bmde into table newf,查询结果存放到一个扩展名为 【16】 的文件中。17. 如果要将bmxs表中部门代码为A002的记录的二月销售额减去10,则输入命令: Replace for 部门代码=A002 二月销售额 【17】 18. 如果要将bmxs表中部门代码为A001的记录加上删除标记,则输入命令: delete for 【18】 。19 下列程序执
16、行结束后,S的值应为 【19】 。 S=0For I=1 to 10 step 1 If int(i/2)=i/2 S=s+1 EndifEndfor S Return 20. 执行下面的程序,如果键盘输入925,则屏幕显示: 【20】 ClearInput 输入销售额= TO V1DO case case v1=1000 ? A级 case v1=800 ? B级 otherwise ? C级 Endcase Return三、判断题(每小题1分,共计10分) 阅读以下各段文字,判断其论述是否正确,如正确,请在下面表格相应编号的空格中填写 ;如果含有错误,则填写。12345678910 1.
17、在计算机系统中,凡能为计算机所接受和处理的各种字符、数字、图形、图像及声音等都可称为数据。数据可分为数值型数据(如产量、价格、成绩等)和非数值型数据(如姓名、日期、文章、声音、图形、图像等)。 2. 实际数据库系统中所支持的数据模型主要有层次模型、网状模型和关系模型三种。关系模型以关系(二维表)的形式表示实体与实体之间的联系。在二维表中,每一行称为一个记录,每一列称为一个字段。表中的第1条记录称为字段名,用于表示每个字段的名称。 3. 视图是从数据库表或视图中导出的“虚表”。视图中的数据仍存放在导出视图的数据表中。视图是不能单独存在的,它依赖于数据库以及数据表而存在。 4. Visual Fo
18、rPro 系统提供了表单、命令和程序3种操作方式。其中程序方式是指用户根据实际应用的需要,将Visual FoxPro命令编写成程序,通过运行程序,让系统自动执行其中的命令。5. 内存变量是内存中的一个存储区域。每一个内存变量都必须有一个固定的名称,它的定义是通过赋值命令来决定它的类型和值,如命令 ? X=5是为内存变量X赋值。6. 一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。定义数据表的结构,就是定义数据表中每个字段的字段名、字段类型、字段宽度、小数位数及是否以该字段建立索引等。7. 索引实际上是一种逻辑排序,但它不改变表中数据的物理顺序。索引排序需要复制出一个和原表内容相
19、同的有序文件,关键字和记录号之间的对应关系存储到一个“索引文件”中。8. 数据库中的表称为数据库表。Visual FoxPro中的数据库是一种容器,可以将自由表添加到数据库中,使之成为数据库表。一个表可以添加到多个数据库中。9. 数据库中的表之间的永久关系是基于索引建立的一种关系,永久关系被作为数据库的一部分而保存在数据库中,只要不作删除或变更就一直保留,每次使用不需要重新建立。10. 在Visual FoxPro中,表单及控件等都是应用程序中的对象。用户通过对象的属性、事件和方法程序的处理来实现编程。表单是Visual FoxPro中面向对象的程序设计的基本工具。在一个表单中可以包含其他的控
20、件。四、编写程序:(第14小题每题5分,第5小题10分,共计30分)1. 编写一个程序,计算1100之间所有能被25、33或者46整除的自然数之和,并显示计算结果。(要求使用结构化程序设计方法编程) 2. 编写一个程序,从键盘上输入“部门代码”,可在数据表bmxs(部门销售表)中进行查询,如果有满足条件的记录存在,则显示该记录;否则,显示提示“该部门未找到”。(要求使用结构化程序设计方法编程)3. 编写一个程序,实现为bmde(部门定额表)追加1条记录,相关数据项由键盘输入。(要求使用结构化程序设计方法编程)4. 表单FORM1上设置了命令按钮控件Command1和Command2。现编写这两
21、个命令按钮控件的Click事件代码。要求实现:当单击Command1控件时,可启动一个名为“主程序M1”的表单,当单击Command2控件时,则退出FORM1表单。5. 已知FORM2表单中设置有5个标签、4个文本框、1个命令按钮。所有控件的属性定义完成后,表单显示如下图所示。 该表单执行后,可以在文本框text1中输入1个部门代码,显示如下图所示。 现要求编写“查询”命令按钮的Click事件代码。以实现如下功能: 单击“查询”按钮时,根据文本框text1中输入的部门代码,可在数据表bmde(部门定额表)中进行查询,并可进行判断: 如果有该部门代码的记录,则在相应文本框中显示该记录的相关数据项
22、。 如果没有找到该部门代码的记录,则弹出一个显示“输入错误!”的提示框,如下图所示。 附表1:BMDE.DBF(部门定额表)包含字段:部门代码(C,4)、部门名称(C,10)、人数(N,3,0)、全年定额(N,8,0)。其记录列表如下图所示。附表2:BMXS.DBF(部门销售表)包含字段:部门代码(C,4)、一月销售额(N,6,0)、二月销售额(N,6,0)。其记录列表如下图所示。VFP程序设计期末闭卷考试(A)_评分标准及参考答案一、单项选择题(每小题1分,共计30分) 请在每个题号下方的空格中填入各相应小题的选择答案。123456789101112131415ABCBAADBACCCBAD
23、161718192021222324252627282930DDBBCDBBDBAABBC二、填空题(第110小题每空1分,1120小题每空2分,共30分)请将第120小题的答案写在序号为【1】【20】对应的表格内。【1】14【11】.T.【2】30【12】.T.【3】.T.【13】A001 纺织品部门【4】9【14】全年定额/人数 as人均定额【5】200.7【15】bmde.部门代码=bmxs.部门代码【6】2007【16】.dbf【7】0【17】With 二月销售额-10【8】侯选【18】部门代码=A001【9】选择【19】5【10】Click【20】B级三、判断题(每小题1分,共计10
24、分) 阅读以下各段文字,判断其论述是否正确,如正确,请在下面表格相应编号的空格中填写 ;如果含有错误,则填写。12345678910 四、编写程序:(第14小题每题5分,第5小题10分,共计30分)1. 编写一个程序,计算1100之间所有能被25、33或者46整除的自然数之和,并显示计算结果。(要求使用结构化程序设计方法编程)【评分标准】1. 有循环结构者(2分)。2. 有判断结构者(2分)。3. 其他(1分)。【参考答案】S=0For I=1 to 100 If int(i/25)=i/25 or int(i/33)=i/33 or int(i/46)=i/46 S=s+i endifEnd
25、fors Return 2. 编写一个程序,从键盘上输入“部门代码”,可在数据表bmxs(部门销售表)中进行查询,如果有满足条件的记录存在,则显示该记录;否则,显示提示“该部门未找到”。(要求使用结构化程序设计方法编程) 【评分标准】 1. 有键盘上输入命令者(1分)。 2. 有指针定位命令者(1分)。 3. 有判断结构者(2分)。 4. 其他(1分)。 【参考答案】 ClearUse bmxs Accept 输入部门代码= to VDM Locate For 部门代码=Alltrim(VDM) IF found() display else ? 该部门未找到 endifUseReturn3. 编写一个程序实现为bmde(部门定额表)追加1条记录,相关数据项由键盘输入。(要求使用结构化程序设计方法编程) 【评分标准】 1. 有键盘上输入命令者(2分)。 2. 有追加记录并修改记录命令者(2分)。 3. 其他(1分)。 【参考答案】USE bmdeACCEPT 输入部门代码= TO V1ACCEPT 输入部门名称= TO V2INPUT 输入人数= TO V3INPUT 输入全年定额= TO V4APPEND BLANK REPL 部门代码 WITH V