《最新VF程序设计复习资料(36页).doc》由会员分享,可在线阅读,更多相关《最新VF程序设计复习资料(36页).doc(130页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVF程序设计复习资料(36页)2003-2004学年第1学期期末考试试题(A卷)06级别VF程序设计复习资料内容:VF程序设计课后习题答案 历年考试题(带答案) 使用说明:在资料中,所有答案均为直接在题目中给出,“&”符号后的内容为说明,“*”后的内容,为建立的文件。课后题答案主要给出考试重点内容。另外,请同学们上机实践以增强记忆。Visual FoxPro程序设计教
2、程课后题答案说明:仅重点部分设置答案第一章 数据库系统基础知识(P17)2.什么是数据库、数据库管理系统和数据库系统?答:数据库是在数据管理系统的集中控制下,按一定的组织方式储存起来的、相互关联的数据集合.数据库(Datebase,DB)是数据库系统中按一定法则储存在外存储器中的大批数据.数据库管理系统(Datebase Management System,DBMS)是系统软件,用来对数据进行同意的的控制和管理,从而有效减少数据冗余,实现数据共享,解决数据独立性问题,并提供统一的安全性和并发控制功能.数据库系统其实就是数据库应用为基础的计算机系统,是把有关计算机硬件、软件、数据和人员组合起来的
3、拥护提供信息服务的系统.5.实体之间的联系有哪几种,分别举例说明.答:1对1联系,例:一个人有一个身份证,一个身份证也只有一个人可以使用.1对多联系,例:一个班主任可以带很多学生,一个学生只能有一个班主任.多对多联系,例:一个人可以去任何酒吧中的任意一个,任意一个酒吧可以为任意多的人提供娱乐场地.6.数据库有哪几种常用的数据模型?Visual FoxPro属于哪一类?答:层次模型,网络模型,关系模型.Visual FoxPro属于关系模型.8.关系数据库管理系统的3种基本关系运算是什么?答:关系运算有3种方式:选择、投影、联接.第二章 操作基础(P33)3. Visual FoxPro有几种操
4、作凡是?各有什么特点?答:菜单操作方式 特点:优点是直观易懂,击键简单(主要是鼠标单、双击),对于不熟悉Visual FoxPro命令、又没有或不想花时间去学习它的最终用户十分适合.不足是操作环节多,步骤繁琐,因此速度慢,效率低.命令操作方式 特点:输入命令完成操作比使用菜单和对话框速度更快,效率高,系统菜单不可能包含所有的功能,有些操作只能通过命令窗口输入;必须熟练掌握Visual FoxPro命令,才能谈的上开发应用程序.程序工作方式 特点:为用户提供更简洁的界面,达到操作目的.第三章 数据及其运算(P55)2.字段变量与内存变量有何区别?答:字段变量是随表存取而存取,定义在表中的变量.
5、内存变量是拥护在内存中定义的,用来存放程序运行中的中间结果和最终结果的变量,是进行数据的传递和运算的变量.4.求下列表达式的值.(1)LEN(DTOC(DATE()输出结果:8(2)STUFF(现代教育中心,5,0,LEFT(技术中心,4)输出结果:现代技术教育中心(3)VARTYPE(08/23/03)输出结果:N(4)SPCACE(5)-SPACE(5)输出结果:空白(5)PRO$FoxPro AND 10090输出结果:.F.5.针对学生表,写出下列条件:先制作学生表:学号姓名性别年龄是否少数民族出生日期入学成绩001王*男20否1986/09/20560002李*女19否1987/06
6、/30590003张*男20是1986/02/03610004赵*女22是1985/12/17620(1)入学成绩大于600分的学生;LIST FOR 入学成绩600(2)年龄大于18岁但是小于25岁的学生; LIST FOR 年龄18 AND 年龄20 AND YEAR(DATE()-YEAR(出生;日期)580 AND 是否少数民族=否 AND 性别=女6.写出下列表达式.(1)求实数x的小数部分;x=3.1415926535897932384626? x-INT(x)(2)求自然数m的十位数字; m=125 n=INT(m) x=STR(&n) ? RIGHT(&x,2)(3)将实数x保
7、留两位小数,第三位小数进行四舍五入处理; x=3.1415926535897932384626 ? ROUND(x*3,2)(4)将c中的小写字母转换成相应的大写字母;CH2=cCH1=CHR(ASC(ch2)-ASC(a)-ASC(A) ? CH1(5)判断n是否偶数. ? MOD(n,2), 如果结果为1,则n是奇数,如果为0,则n是偶数第四章 表的基本操作(P86)13.就学生表,写出实现下列操作的命令.(1)显示第5号记录; USE STUDENTS.DBFGO 5DISPLAY(2)显示第5号至10号之间的全部记录; USE STUDENTS.DBFGO 5 LIST NEXT 6(
8、3)连续列出1980年以后出生的学生的姓名与出生年月; USE STUDENTS.DBFLIST 姓名,出生年月 FOR YEAR(DATE()-YEAR(出生年月)22 AND; YEAR(DATE()-YEAR(出生年月)24 &以07年为当前时间(5)在表的顶部增加一个新记录 USE STUDENTS.DBF GO TOP INSERT BLANK BEFORE(6)修改最后一个记录 USE STUDENTS.DBF GO BOTT BROW(7)将16岁以下的少数民族学生成绩提高20分; USE STUDENTS.DBF REPLACE ALL 入学成绩 WITH 入学成绩+20 FO
9、R 是否少数民族=是 AND YEAR(DATE()-YEAR(出生年月)16(8)将学生表原样复制为xsda.dbf,并物理删除xsda.dbf中记录号为偶数的记录; USE STUDENTS.DBF COPY TO xsda.dbf USE xsda DELETE FOR MOD(RECNO(),2)=0 PACK(9)显示入学成绩前5名的记录;USE STUDENTS.DBF SORT ON 入学成绩/D TO CJ.dbf USE CJ.dbf LIST NEXT 5(10)统计1985年出生学生的人数,并把它存在变量number中; USE STUDENTS.DBF COUNT FO
10、R YEAR(DATE()-YEAR(出生年月)=22 TO number(11)分别求男女学生的平均年龄; USE STUDENTS.DBF AVER YEAR(DATE()-YEAR(出生年月) FOR 性别=男 TO x AVER YEAR(DATE()-YEAR(出生年月) FOR 性别=女 TO y ? 男生的平均年龄为:+STR(x,3)+岁,女生的平均年龄为:+STR(y,3)+;岁(12)查找并显示第一位少数民族学生; USE STUDENTS.DBF INDEX ON 少数民族否 TO sy1 FOR 少数民族否=是 GO 1 DISPLAY(13)建立一个结构符合索引文件,
11、其中包括两个索引:记录以学号降序排列;记录按出生年月升序排列; USE STUDENTS.DBF INDEX ON -学号+出生年月 TAG sy2(14)查询年龄最小和最大的学生; USE STUDENTS.DBF LIST FOR MIN(出生年月) LIST FOR MAX(出生年月)(15)按性别对入学成绩进行汇总. USE STUDENTS.DBF INDEX ON 性别 TAG sy3 TOTAL ON 性别 TO HZ FIELDS 入学成绩第六章 SQL语言的应用(P114)2利用第5章习题 中给出的订货管理数据库和记录实例,用SQL语句完成下列操作:(1)列出在北京的供应商名
12、称; USE 供应商.dbfLIST FOR 地址=”北京”(2)列出发给供应商S6的订购单号; USE 订购单.dbf LIST 订购单号 FOR 供应商号=”S6”(3)列出职工E6发给供应商S6的供应商信息; USE 订购单.dbf LIST 订购单号,订购日期 FOR 职工号=”E6” AND 供应商号=”S6”(4)列出向供应商S3发过订购单的职工的职工号和仓库号; SELECT a.职工号,b.仓库号 FROM 职工b,订购单a WHERE ;a.职工号=b.职工号 AND b.供应商号=”S3”(5)列出和职工E1、E3都有联系的北京的供应商信息; SELECT a.供应商号,b
13、.供应商名,地址 FROM 订购单a,供应商b WHERE ;a.供应商号=b.供应商号 AND a.职工号=”E1”,a.职工号=”E3”(6)列出与工资在1220元以下的职工没有联系的供应商的名称; SELECT a.供应商名 FROM 供应商a,职工b,订购单c WHERE ;b.职工号=c.职工号,c.供应商号=a.供应商号 AND b.工资1230,;c.地址=”北京”(10)列出仓库的个数; SELECT 仓库号,COUNT(仓库号) FROM 仓库.dbf(11)列出有最大面积的仓库信息; SELECT a.仓库号,城市,面积 FROM 仓库a ORDER BY 面积 GO 1
14、DISPLAY(12)列出所有仓库的平均面积; SELECT AVG(面积) AS “所有仓库的平均面积” FROM 仓库.dbf(13)列出每个仓库中工资多于1220元的职工个数; SELECT 职工号,COUNT(职工号) FROM 职工.dbf GROUP BY 仓库号 WHERE ;工资1220(14)列出和面积最小的仓库有联系的供应商的个数;SELECT a.职工号,COUNT(a.供应商号) FROM 订购单a,职工b,仓库c WHERE ;a.职工号=b.职工号,b.仓库号=c.仓库号 AND MIN(c.面积)(15)列出工资低于本仓库平均工资的职工信息. SELECT a.职
15、工号,b.仓库号,城市,c.供应商号,订购单号,订购日期 FROM ;职工a,仓库b,订购单c WHERE a.仓库号=b.仓库号,a.职工号=c.职工号 ; AND a.工资AVG(a.工资)第九章 结构化程序设计1.写出下列程序的执行结果.(1)CLEAR SET TALK OFF x=10 y=-3 FOR n=29+x TO x STEP y ENDFOR ? n RETURN执行结果:9(2)主程序:t1.prg SET TALK OFFSTORE ABTO k1,k2DO t2? k1+k2RETURN子程序t2.prgPRIVATE k1k1=k2+”250”? k1RETURN
16、执行结果: AB250 ABAB (3)SET TALK OFFCLEARSTORE 1 TO xSTORE 20 TO yDO WHILE x=y IF INT(x/2)x/2 x=1+x2 y=y+1 LOOP ELSE x=x+1 ENDIFENDDO? x,ySET TALK ONRETURN执行结果: 122.00 23 (4)主程序:z.prg SET TALK OFF STORE 2 TO x1,x2,x3 x1=x1+1 DO z1 ?x1+x2+x3 RETURN 子程序:z1.prg x2=x2+1 DO z2 x1=x1+1 RETURN 子程序:z2.prg x3=x3
17、+1RETURN TO MASTER执行结果: 9 (5)SET TALK OFFx=15y=7DO sub WITH x,(y)?x,yRETURNPROCECURE subPARAMETERS a,ba=a+bb=a-bRETURN执行结果: 22 7 (6)SET TALK OFFx=9y=13z=fu(x,y) ? z RETURN FUNCTION fu PARAMETERS a,b a=a*b RETURN(a)执行结果: 117 3.输入学生成绩,若成绩大雨80分,则输出”优良”,成绩小于60分,则输出”不及格”,否则输出”中等”. 参考答案: * CJ.prg SET TALK
18、 OFF USE STUDENTS.dbf name=space(10) 10,5 SAY”请输入学生姓名并查看其成绩:” GET name READ LOCATE FOR 学生姓名=name IF .NOT.EOF() DO CASE CASE 成绩=80 ? “该生成绩为优秀” CASE 成绩=60 AND 成绩0 ? right(ch,2) ch=left(ch,len(ch)-2) enddoA) abcdef B) fedcba C) efcdab D) badcfe 8.设职工数据库文件已经打开,其中有工资字段,要把指针定位在第一个工资大于1000元的记录上,应使用命令( C )。
19、A) FIND FOR 工资1000 B) SEEK 工资1000C) LOCATE FOR 工资1000 D) FIND 工资10009.以下程序段共执行( D)次循环k=2.5DO WHILE kbb OR ac=80S=S+1ENDIF CONTINUE ENDDOUSE? 成绩大于等于80分的学生共有+STR(S)+ 人USE SET TALK ON得分四、编程题(每小题10分,共20分)1. (10分)输入一个数,判断它能否被3,5整除,并输出一下信息之一:(1) 能同时被3,5整除;(2) 只能被3整除;(3) 只能被5整除;(4) 既不能被3整除也不被5整除参考答案:*1.prg
20、CLEARINPUT 请输入数: TO num1IF num10DO CASE CASE MOD(num1,15)=0 ? 该数能同时被3和5整除 CASE MOD(num1,3)=0 AND MOD(num1,5)0 ? 该数只能被3整除 CASE MOD(num1,5)=0 AND MOD(num1,3)0 ? 该数只能被5整除 OTHERWISE ? 该数既不能被3整除也不能被5整除ENDCASEENDIF 2. (10分)编程序求100到1000之间的所有奇数之和。参考答案:* 求和.prgSET TALK OFFSTORE 100 TO xSTORE 0 TO yDO WHILE .
21、T.x=x+1DO CASE CASE INT(x/2)=x/2 LOOPCASE x=1000EXITOTHERWISEy=y+xENDCASEENDDO? 100到1000之间的奇数和为: ,ySET TALK ONRETURN&执行结果为: 100到1000之间的奇数和为:247500得分五、应用题(20分)数据库文件ZGMC.DBF,包含6个字段,分别为SNO(编号)、SNAME(姓名)、SSEX(性别)、ZC(职称)、GZ(工资)、CSRQ(出生日期)。如下二维表所示: SNOSNAMESSEXZCGZCSRQ9201宋玲刚.F.技术员801.5078/07/119205郭小勇.T.
22、工程师1133.0070/12/159215王佳鹏.F.高工1560.5065/09/239208张一凡.T.工人1015.0060/08/089206李春媛.F.工程师1008.0073/01/01根据下列要求写出命令或程序:1) 显示第2条记录(2分)参考答案:USE ZGMC.DBFGO 2DISP2)显示工资高于1000元全部女职工的姓名、职称与出生日期(2分)参考答案:LIST SNAME,ZC,CSRQ FOR GZ=1000 AND SSEX=.F.3)在第1条记录前插入新记录9209 李玉 .F. 技术员 1003.80 73/05/30并显示结果;(3分)参考答案: GO 1
23、 INSERT BLANK BEFORE REPLACE SNO WITH 9209 UPDATE ZGMC SET SNAME=李玉,SSEX=.F.,ZC=技术员,GZ=1003.80; CSQR=1973/05/30 WHERE SNO=9209 LIST4)删除1965年以前出生的职称为工人的记录,并显示结果;(2分)参考答案:DELETE FOR YEAR(DATE()-YEAR(CSRQ)42 &以07年为当前时间进行计算 PACK LIST5)统计工程师的平均工资,并显示统计结果;(2分)参考答案:CALCULATE AVG(GZ) TO x ? x 6)将1970年1月1日及以
24、后出生的工程师复制为库文件gcs.dbf (2分)参考答案: COPY TO gcs.dbf FOR YEAR(DATE()-YEAR(CSRQ)37 &以07年为当;前时间进行计算 7)对所有工资超过1000元的男职工按出生日期降序排序,并要求新文件中只包含编号、姓名、性别、工资字段;(2分) 参考答案: SORT ON CSRQ/D TO new FIELDS SNO,SNAME,SSEX,GZ FOR GZ10008)为ZGMC.DBF建立索引文件,记录以职称降序排序,职称相同时按出生日期降序排列(3分)参考答案: INDEX ON -ZC-CSRQ TAG sy1 9)按索引查询方式查
25、询1970年出生的女职工(2分)参考答案: SET EXACT OFF &关闭精确查询,进行模糊查找INDEX ON CSRQ TAG sy2D=1970-*-*SEEK DDISPSKIP2003-2004学年第2学期期末考试试题(B卷)foxpro程序设计基础试题使用班级:03级非计算机专业本科fox班总分得分一、单项选择题(共20分)每小题2分1FOXPRO是一种(C )数据库管理系统。A. 层次型 B .网状型 C .关系型 D. 面向对象型2在学生基本情况表STU.DBF中,性别字段为逻辑型,用.T.代表女同学。为了找到第一位姓李的男同学,以下命令正确的是( C ); ASeek 李
26、 and 性别 BFind 李 .and. 男同学 C. Locate for 李 $ 姓名 and not 性别 D. Locate for 李 $ 姓名 .and. 男同学 3. 对已经打开的学生成绩表文件STUCDBF先按字符型字段性别升序索引,再按数值型字段总分的降序索引,应当使用的命令是( B )AINDEX ON 性别+总分BINDEX ON 性别-总分CINDEX ON 性别+STR(-总分,3)DINDEX ON 性别+STR(100-总分)4以下表达式的结果为数值型的是( D );A. 牛$ 牛群 B. wish you success C. 98/6/14+15 D. 98
27、/06/14-98/11/125. 在语句ACCEPT 姓名: TO XM中,XM的类型应该是( C );A. 逻辑内存变量 B. 数值型字段变量C. 字符型字段变量 D. 字符型内存变量6. 下面关于FoxPro数组的叙述中,错误的是 ( )A. 用DIMENSION和DECLARE都可以定义数组B. FoxPro只支持一维数组和二维数组C. 一个数组中各个数组元素必须是同一种数据类型D. 新定义数组的各个数组元素初值为.F.7. 只显示当前记录的命令是_C_。A. LISTB. LIST ALLC. DISPLAYD. DISPLAY ALL8. 有如下命令序列 X=1 Y=2 Z=3 ?
28、Z=X+Y执行最后一条命令后,显示的结果应该是_A_。A. .T. B. .F. C. 3D. X+Y 9. 设有数据库FILE.DBF,执行如下命令序列 SET DELETED OFF USE FILE LIST Recoed# 商品名 金额 1 洗衣机 3100.00 2 电冰箱 2300.00 3 21彩电 1800.00 4 空调机 4100.00 GO 3 DELETE GO BOTTOM INSERT BLANK REPLACE 商品名WITH 34寸彩电, 金额 WITH 6000 SUM 金额 TO S当前S的值应该是_B_。A. 11300B. 17300C. 11400D.
29、 1550010. 在FoxBASE中,命令X=Y=3的功能是_D_。A. 判断Y是否等于3,并将判断结果保存到X中B. 判断X是否等于Y,如果等,将3赋值给Y,否则Y保持原来的值不变C. 判断X和Y是否都等于3D. 将3赋值给Y,然后再赋值给X,使X和Y的值都为3得分二、填空题(共20分)每空2分1. 数据库的英文缩写为 DB ,数据库系统的英文缩写为 DBS ,数据库管理的系统英文缩写为 DBMS 。2. 数据库有三种类型分别为 层次型 、 网状型 、 关系型 。3. 表达式1037的值为 .F. ,abc+abc的值为 abcabc 。4. 命令?TYPE(12/27/95)的输出值是_
30、 N _。5. 在数据库文件中,要在某记录打上删除标记,应使用命令_DELETE _。6. 在数据表中,用于存放图像、声音等多媒体对象的数据类型是 。7. 程序设计的三种基本结构是 顺序结构 、 选择结构 、 循环结构 。8. 执行以下命令序列m=len(119)?m=m+1 的显示结果是 .F. 。9. 在Foxpro 系统中有两条语句可以改变循环体的执行控制, 在DO WHILE 循环体内, 语句 LOOP 使控制转移到循环的开始, 语句EXIT使控制转移到循环体外, 跳转到该循环结构后的第一个可执行语句。10. 表达式ST$STRING和表达式SR$STRING的值分别是 .T. 、 .F. 。得分三、