1、设供应商.DBF用于存放供应商信息,其字段有:姓名(字符型),电话(字符型),地址(字符型)。下面程序的功能是:查找电话号码中含有“123”的所有姓李的供应商的信息。请将程序填写完整。 SET TALK OFF CLEAR __________
DO WHILE .NOT. EOF()
IF SUBSTR(姓名,1,2)=“李” AND __________ ?姓名+电话+地址 __________ ENDDO USE
SET TALK ON RETURN
2、有如下程序段,其功能是显示汉字“2008年北京申奥成功!”从屏幕的顶部移至底部,设屏幕共24行。请填空补充该程序。 CLEAR
CH=〝2008年北京申奥成功!〞 R=1
DO WHILE ____________
@__________ , 26 SAY CH T=INKEY(0.2) _______________ ENDDO RETURN
3、表文件“xs.dbf”中记录如下 学号 S101 S102 S103 S104 S105 S106 S107 S108 S109 S110 姓名 张军 林平 任涛 何晓红 徐静 刘维海 李敏 马华远 李娜 赵菲 性别 男 男 男 女 女 男 女 男 女 女 成绩 90 66 50 76 82 86 92 60 76 78 阅读下列程序: CLEAR USE XS
INDEX ON –成绩 TO CJ1 GO TOP
DISP 姓名,成绩 N=0
LOCATE FOR 性别=女 AND 成绩>=80
DO WHILE .NOT. EOF() IF FOUND() N=N+1 CONTINUE ENDIF ENDDO ? N
CLOSE ALL RETURN
(1)程序第六行“DISP 姓名,成绩”执行结果显示是__________
(A) 张军 90 (B)赵菲 78 (C)任涛 50 (D)李敏 92 (2)程序运行完毕后,N的值为______________
(A) 2 (B)3 (C)4 (D)5 (3)关于循环中的CONTINUE,说法正确的是_________________ (A) 可以用SKIP语句代替,不影响程序执行结果 (B) 可以放到循环外,不影响程序执行结果 (C) 去掉CONTINUE,程序将进入死循环 (D) 去掉CONTINUE,不影响程序执行结果 4、数据库信息.DBC 中有数据库表职工.DBF,用SELECT 命令查询职工表中年龄不小于25岁、“职务”字段为“销售员”的职工的信息,结果按“部门号”字段值降序排列,请填空:
SELECT 部门号,职工号,姓名,职务,年龄; 人事!职工
WHERE 年龄>=25 职务=“销售员” ORDER BY 5、有图书表TS.DBF,其内容如下
记录号 书名 出版单位 单价 1 VFP数据库 电子科大 20.00 2 计算机基础 四川大学 25.00 3 信号与系统 电子科大 28.00 4 计算机网络 电子科大 27.00 5 计算机原理 四川大学 21.00 6 现代汉语 四川师大 23.00 7 操作系统 西南交大 24.00 阅读下列程序:
UPDATE TS SET 单价=单价+8 WHERE 出版单位=’四川师大’
SELECT 出版单位,AVG(单价) AS 单价 FROM TS GROUP BY 出版单位;
INTO DBF ABC
SELECT * FROM ABC WHERE 单价<28 ORDER BY 单价 DESC; INTO DBF ABC1 USE ABC1 ? 出版单位
(1) 新表ABC的记录数有______________个
(A)7 (B) 5 (C)4 (D)3 (2) 最后显示的出版单位是____________
(A)电子科大 (B)四川大学 (C)西南交大 (D)四川师大 (4)新表ABC1的记录数有_____________个
(A)3 (B)4 (C)5 (D)6
五、程序设计题
1、假设约定年龄不超过35岁的职工为青年职工;年龄在36岁至45岁的职工为中年职工;年龄超过45岁的职工为老年职工。从键盘输入任一职工姓名在STUD表中查找,显示其姓名、年龄以及所属的职工类型。
2、编程显示STUD表中所有男学员的姓名、工龄及工资。 3、从键盘输入N个数存入数组A中,找出其中的最大数。
4、打开STUD表,分别统计所有姓“张”学员的平均年龄和所有姓“王”学员的平均年龄。 5、有如下售书数据表BOOK.DBF,BOOK.DBF中的记录如下: 书号 单价 数量 总计 B0168 19.8 3 B6915 12.6 36 B9023 40.0 100 B4682 18.0 40 B6329 28.0 56 B8127 2.0 20
要逐条计算总计并填入“总计”字段之中,计算按照如下规则: 若数量小于等于10,总计等于“单价*数量” 若数量大于50,总计等于“单价*数量*(1-5/100)” 若数量在11与50之间,总计等于“单价*数量(1-10/100)” 6、从键盘输入任一自然数N,求小于等于N的自然数之和。
7、根据表SCORE(学号,课程号,成绩)中的数据,统计选修课程号分别为“000002”、“000005”和“000008”课程的人数以及这些课程的平均分。
8、设有一成绩表score.dbf,它由以下字段组成:姓名(C,8)、平时成绩(N,6.2)、期末成绩(N,6.2)、总成绩(N,6.2)、等级(C,6)。其中前3项已有数据,用SCAN循环编写程序计算并填写每一记录的“总成绩”和“等级”字段,他们的计算方法分别为:
1)总成绩计算方法:总成绩=平时成绩×30%+期末成绩×70% 2)等级计算方法:
总成绩≥90 “等级”为“优秀”; 75≤总成绩<90 “等级”为“良好”; 60≤总成绩<75 “等级”为“合格”; 总成绩<60 “等级”为“不合格”。
9、从键盘输入任一小于10的自然数N,求N的阶乘。
10、编写程序,在STUDENT数据库的STUD表中查找并显示任意一个学生学号、性别、班级
名、地址等基本情况。
11、在STUDENT数据库的STUD表中任意查找一同学,有此人就显示该生的姓名、性别、出生日期等信息,无此人就显示“查无此人”。
12、逐条显示在STUDENT数据库的STUD表中性别为“男”的所有记录。
《Visual Foxpro》综合复习资料参考答案
一、单项选择题
1 - 5、B A B D A 6 -10、D B B B D 11-15、C C C C A 16-20、C D B B A 21-25、D C D A B 26-30、A B C D B 31-35、D B A B C 36-40、B D D A A
二、判断题
1 - 5、√√××× 6-10、√×××√
三、填空题
1、关系模型 2、字段变量 3、true
4、”123456” 5、.t.
6、去掉重复记录 7、6
8、通用型 9、关系
10、查询条件
11、性别=”女” and 民族=”回族” 12、input
13、age is null 14、exit
15、display all 16、distinct 17、having 18、insert
19、where 职工.职工号=工资.职工号 20、备注
四、程序填空题
1、use 供应商.db、”123”$电话、skip
2、R<=24、R、R=R+1 3、D、A、C
4、FROM、AND、部门号 desc 5、C、B、A
五、程序设计题
1、假设约定年龄不超过35岁的职工为青年职工;年龄在36岁至45岁的职工为中年职工;年龄超过45岁的职工为老年职工。从键盘输入任一职工姓名在STUD表中查找,显示其姓名、年龄以及所属的职工类型。
SET TALK OFF CLEAR USE STUD
ACCEPT '请输入所查的姓名: ' TO XM LOCATE FOR 姓名=XM IF .NOT. FOUND()
?”查无此人” ELSE
NL=YEAR(DATE())-YEAR(出生日期) DO CASE
CASE NL<=35
?姓名,NL,”青年职工” CASE NL>35 .AND. NL<=45 ? 姓名,NL,”中年职工” OTHERWISE
? 姓名,NL,”老年职工”
ENDCASE
ENDIF USE
SET TALK ON RETURN
2、编程显示STUD表中所有男学员的姓名、工龄及工资。
SET TALK OFF USE STUD SCAN
IF 性别=”男”
? 姓名,YEAR(DATE())-YEAR(工作时间),工资 ENDIF ENDSCAN USE
SET TALK ON RETURN
3、从键盘输入N个数存入数组A中,找出其中的最大数。
SET TALK OFF CLEAR
INPUT “N=?” TO N