成都电子机械高等专科学校
2000/2001学年2学期《Visual FoxPro数据库》试卷
考试方法:闭卷 适用班级99511/99521/99522/99523
一、判断题(1分/题,共20分,对画√,错画×) 1
二、选择题(每个选择3分,共24分) 2
三.读程序(每个选择4分,共24分) 4
四.程序填空(每空4分,共32分) 11
答案 13
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.索引是改变表的物理顺序,排序是排列表的逻辑顺序。
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
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
CLOSE ALL
RETURN
(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 男 55
9902 女 80
9903 女 78
(B)9901 .T. 55
9903 .F. 78
(C)9902 女 80
9904 男 92
9905 女 81
(D)9902 .F. 80
9904 .T. 92
9905 .F. 81
()表与第2题相同。
SET TALK OFF
SET SAFE OFF
CLEAR ALL
CLEAR
SELE 1
USE CJ ALIAS P
INDEX ON 学号 TO ICJ
FIND 9902
SELE 2
USE XS
SET RELATION TO 学号INTO A
LOCATE FOR .NOT. 性别
?姓名,性别,A->语文,A->数学&&①
SELE 1
SEEK “9904”
?B->姓名,B->性别,语文,数学
SELE 2
SET RELATION TO
LOCATE FOR RIGHT(DTOC(出生日期),2)>=”79”
?姓名,性别,A->语文,A->数学&&②
SET TALK ON
SET SAFE ON
RETURN
(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
1.SETTALK OFF
ACCEPT “输入表名:” TO KM
USE &KM
*显示最前面5条记录
______ 1_______
WAIT
GO BOTTOM
*显示最后4条记录
______ 2_______
DISP NEXT 4
USE
2.有12个结构完全相同的表WY01,WY02,…….WY11,WY12,下列程序完成的功能是:顺序打开每一个表并浏览之.
SET TALK OFF
G=1
DO WHILE ______ 3_______
DO CASE
CASE G<10
GW=’WY0’+STR(G,1)
CASE G>=10
GW=’WY’+______ 4_______
ENDCASE
USE______ 5_______
BROW
______ 6_______
USE
ENDDO
RETU
(3)一学生档案表XSDA.DBF,其字段有:学号、姓名、专业、出生日期、入学成绩、简历,表中已有数据。另新生入学文本文件CJ.TXT,内容如下:
王刚,496
张放,487
李立,503
刘英,492
编程构造一个表文件XSCJ.DBF,包括姓名和入学成绩两个字段,表中记录由两部分内容组成,一部分为从XSDA.DBF中提取的相关字段的内容,另一部分为CJ.TXT中相关字段的内容,然后将记录内容依次显示出来。程序如下:
SET TALK OFF
CLEAR ALL
USE XSDA
COPY ______ 7_______
USE XSCJ
APPEND______ 8_______
GO TOP
DO WHILE .NOT. EOF()
?姓名,入学成绩
SKIP
ENDDO
RETURN
一.1.(√) 2.(√)3.(√)4.(√)5.(×)
6.(√)7.(√)8.(×)9.(√)10.(√)
11.(√)12.(×)13.(√)14.(√)15.(√)
16.(√)17.(√)18.(√)19.(√)20.(×)
二.AAAABCCB
三.
1.D
2.C
3.D
4.A
5.B
6.A
四.1.DISP NEXT 5
2.SKIP –3
3.G<13
4.STR(G,2)
5.&GW
6.G=G+1
7.TO XSCJ FIELDS 姓名,入学成绩
8.FROM CJ.TXT TYPE DELIMITED WITH ,
¥29.8
¥9.9
¥59.8