vfP程序设计基础习题集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 X
2. 在已打开的表中,要永久删除当前记录位置开始的10条记录,可用()
(A)先执行DELETE NEXT 10命令,后用PACK命令
(B)先执行DELETE RECORD 10命令,后用PACK命令
(C)先执行DELETE FOR RECORD> 10命令,后用PACK命令
(D)ZAP NEXT 10
3.按数值型字段”总分”进行索引,使其按降序排列的命令是()
(A)INDEX ON -总分TO WP
(B)INDEX ON 总分/A TO WP
(C)INDEX ON 总分TO WP
(D)INDEX ON 总分/D TO WP
4.下列操作后,不改变表记录指针的命令是()
(A)RECALL
(B)LIST
(C)SUM
(D)REPL ALL
5.按照数据库的数据模型分类,VFP属于()
(A)层次型
(B)关系型
(C)网状型
(D)混合型
6.函数LEN(SPACE(5)-SPACE(1))的返回值是()
(A)错误信息
(B)17
(C)6
(D)4
7.某表文件中有日期型字段”出生日期”,设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 off
use stu
store space(6) to xm
index on 学号to xh
do while .t.
accept “输入姓名:” to xm
locate for 姓名=xm
if .not. eof()
display
else
?’查无此人’
endif
wait “继续吗?” to yn
if upper(yn)=’N’
exit
else
loop
endif
enddo
use
set 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/79
9902 王红 .F. 02/11/80
9903 李霞 .F. 07/23/78
9904 李四 .T. 04/01/82
9905 张莉 .F. 09/22/83
CJ.DBF
学号(C,4)语文(N,6,2) 数学(N,6,2)
9903 90 78
9902 70 80
9901 88 55
9905 45 81
9904 97 92
SET TALK OFF
SET SAFE OFF
CLEAR ALL
CLEAR
SELE 1
USE CJ ALIAS P
INDEX ON 学号TO ICJ
SELE 2
USE XS
SET RELA TO 学号INTO A&&①
LOCATE FOR YEAR(DATE())-YEAR(出生日期)>=20
DO WHILE .NOT. EOF()
?学号,IIF(性别,’男’,’女’),A->数学
CONTINUE
ENDDO
WAIT&&②
SET TALK ON
SET SAFE ON