VFP程序设计习题习题一一、判断题(1分/题,共20分,对打画√,错打×)1.建立自由表分两步:定义表结构和输入数据。
2.表间的关系分三种:一对一关系、一对多关系和多对多关系。
3.若要使用多个表,就要使用多个工作区。
4.在应用程序中可以通过使用该工作区的表的别名来标识工作区。
5.对象具有属性,而属性只能在设计阶段设置。
6.引用对象的方法分绝对引用和相对引用。
7.表单集是指两个以上的表单同时输出,并且可以通过程序或鼠标交换输出权。
8.一条命令可分几行写,在行结束处用“:”表示一行未完,转入下一行。
9.VFP主要数据容器有:表记录、变量和数组。
10.报表包括两个基本组成部分:数据源和布局。
11.如果不想使用“报表向导”或“快速报表”设计报表,可以从空白报表布局开始,然后自己添加控件。
12.表选择查询输出的去向可以是浏览、报表或表单。
13.视图与查询相类似的地方是:可以用来从一个或多个相关联的表中提取有用信息。
14:视图与表相类似的地方是:可以用来更新其中的信息,并将更新结果永久保存在磁盘上。
15.在“数据库设计器”中,视图的显示方式与表在分层结构中的显示方式相同,所不同的是视图名代替了表名。
16.一个视图在使用时,将作为临时表在自己的工作区中打开。
17.如果打开基于本地表的视图,则在Visual FoxPro的另一个工作区中基表被同时打开。
18.在视图中更新数据与在表中更新数据类似,使用视图还可以对其基表进行更新。
19.VFP中的NULL表示未知数据,便于与含有NULL值的SQL数据库一起工作。
20.索引是改变表的物理顺序,排序是排列表的逻辑顺序。
二、选择题(每个选择3分,共24分)1.统计女生人数并将结果存放于变量X中的命令是()(A).COUNT FOR .NOT. 性别=”男” TO X(B).COUNT FOR ( 性别=”女”)=.T. TO X(C).SUM FOR ( 性别<>”男”)=.T. TO X(D).SUM FOR 性别=”女” TO X2. 在已打开的表中,要永久删除当前记录位置开始的10条记录,可用()(A)先执行DELETE NEXT 10命令,后用PACK命令(B)先执行DELETE RECORD 10命令,后用PACK命令(C)先执行DELETE FOR RECORD> 10命令,后用PACK命令(D)ZAP NEXT 103.按数值型字段”总分”进行索引,使其按降序排列的命令是()(A)INDEX ON -总分TO WP(B)INDEX ON 总分/A TO WP(C)INDEX ON 总分TO WP(D)INDEX ON 总分/D TO WP4.下列操作后,不改变表记录指针的命令是()(A)RECALL(B)LIST(C)SUM(D)REPL ALL5.按照数据库的数据模型分类,VFP属于()(A)层次型(B)关系型(C)网状型(D)混合型6.函数LEN(SPACE(5)-SPACE(1))的返回值是()(A)错误信息(B)17(C)6(D)47.某表文件中有日期型字段”出生日期”,设N=’01/01/80’,下列命令正确的是()(A)LOCATE FOR 出生日期=’01/01/80’(B)LOCATE FOR 出生日期=&N(C)LOCATE FOR DTOC(出生日期)=N(D)LOCATE FOR DTOC(出生日期)=CTOD(N)8.从表customer中提取所有记录生成查询,并将查询结果存放于表MyCursor的SQL命令为()(A)SELECT * FROM customerINTO CURSOR MyCursor(B)SELECT * FROM customerINTO TABLE MyCursor(C)SELECT ALL FROM customerINTO TABLE MyCursor(D)CREATE SQL VIEWMyCursor ASSELECT * FROM customer三.读程序(每个选择4分,共24分)1.设表STU.DBF中有“学号、姓名、性别、出生日期、班级”等字段,有程序如下:set talk offuse stustore space(6) to xmindex on 学号to xhdo while .t.accept “输入姓名:” to xmlocate for 姓名=xmif .not. eof()displayelse?’查无此人’endifwait “继续吗?” to ynif upper(yn)=’N’exitelseloopendifenddouseset talk off(1)程序中“locate for 姓名=xm”如该用find命令,应为()。
(A)find xm (B)find &xm(C)find 姓名=xm (D)无法使用find命令(2)在什么情况下结束程序运行()。
(A)输入姓名后(B)显示完一条记录后(C)给变量yn赋以’n’或’N’(D)给变量yn赋以’y’或’Y’2.假如有如下两个表:XS.DBF学号(C,4)姓名(C,8)性别(L,1)出生日期(D,8) 9901 张三 .T. 02/12/799902 王红 .F. 02/11/809903 李霞 .F. 07/23/789904 李四 .T. 04/01/829905 张莉 .F. 09/22/83CJ.DBF学号(C,4)语文(N,6,2) 数学(N,6,2)9903 90 789902 70 809901 88 559905 45 819904 97 92SET TALK OFFSET SAFE OFFCLEAR ALLCLEARSELE 1USE CJ ALIAS PINDEX ON 学号TO ICJSELE 2USE XSSET RELA TO 学号INTO A&&①LOCATE FOR YEAR(DATE())-YEAR(出生日期)>=20DO WHILE .NOT. EOF()?学号,IIF(性别,’男’,’女’),A->数学CONTINUEENDDOWAIT&&②SET TALK ONSET SAFE ONCLOSE ALLRETURN(3)程序中①处的命令可用下面哪一条命令代替()(A)SET RELATION TO 学号INTO XS(B)SET RELATION TO 学号INTO P(C)SET RELATION TO 学号INTO 1(D)(B)和(C)均可(4)程序执行到②处显示结果为()(A)9901 男 559902 女 809903 女 78(B)9901 .T. 559903 .F. 78(C)9902 女 809904 男 929905 女 81(D)9902 .F. 809904 .T. 929905 .F. 81()表与第2题相同。
SET TALK OFFSET SAFE OFFCLEAR ALLCLEARSELE 1USE CJ ALIAS PINDEX ON 学号TO ICJFIND 9902SELE 2USE XSSET RELATION TO 学号INTO ALOCATE FOR .NOT. 性别?姓名,性别,A->语文,A->数学&&①SELE 1SEEK “9904”?B->姓名,B->性别,语文,数学SELE 2SET RELATION TOLOCATE FOR RIGHT(DTOC(出生日期),2)>=”79”?姓名,性别,A->语文,A->数学&&②SET TALK ONSET SAFE ONRETURN(5)程序执行到①处显示的结果为()(A)王红.F.9078(B)王红.F.7080(C)王红.T.9078(D)王红.T.7080(5)程序执行到②处显示的结果为()(A)张三.T.9792(B)李四.T.9792(C)王红.F.7080(D)张三.T.8885四.程序填空(每空4分,共32分)1.SETTALK OFFACCEPT “输入表名:” TO KMUSE &KM*显示最前面5条记录______ 1_______WAITGO BOTTOM*显示最后4条记录______ 2_______DISP NEXT 4USE2.有12个结构完全相同的表WY01,WY02,…….WY11,WY12,下列程序完成的功能是:顺序打开每一个表并浏览之.SET TALK OFFG=1DO WHILE ______ 3_______DO CASECASE G<10GW=’WY0’+STR(G,1)CASE G>=10GW=’WY’+______ 4_______ENDCASEUSE______ 5_______BROW______ 6_______USEENDDORETU(3)一学生档案表XSDA.DBF,其字段有:学号、姓名、专业、出生日期、入学成绩、简历,表中已有数据。
另新生入学文本文件CJ.TXT,内容如下:王刚,496张放,487李立,503刘英,492编程构造一个表文件XSCJ.DBF,包括姓名和入学成绩两个字段,表中记录由两部分内容组成,一部分为从XSDA.DBF中提取的相关字段的内容,另一部分为CJ.TXT中相关字段的内容,然后将记录内容依次显示出来。
程序如下:SET TALK OFFCLEAR ALLUSE XSDACOPY ______ 7_______USE XSCJAPPEND______ 8_______GO TOPDO WHILE .NOT. EOF()?姓名,入学成绩SKIPENDDORETURN答案一.1.(√)2.(√)3.(√)4.(√)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)11.(√)12.(×)13.(√)14.(√)15.(√)16.(√)17.(√)18.(√)19.(√)20.(×)二.AAAABCCB三.1.D2.C3.D4.A5.B6.A四.1.DISP NEXT 52.SKIP –33.G<134.STR(G,2)5.&GW6.G=G+17.TO XSCJ FIELDS 姓名,入学成绩8.FROM CJ.TXT TYPE DELIMITED WITH习题二一.判断题(1分/题,共21分,对画√,错画×)1.VFP程序每行必须以“;”结尾。
2.DISPLAY在VFP中与DISPLAY命令等效。
3.VFP中的变量分内存变量和字段变量。