• 83.00 KB
  • 2022-04-22 11:47:59 发布

Foxpro_实用教程课本及辅导教材参考答案第三版(新).doc

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'VisualFoxpro实用教程课本(第三版)及实验教材部分课后题答案说明:1。本材料仅供学习参考,不代表任何考试题目意向;2。所给定的题目答案只是常规解法,不一定是最佳答案。刘乃文第一章:课本习题一P10一.单选题1.B2.A3.C4.D5.C6.B7.A实验教程补充习题P11.选择题(1)A(2)B(3)B(4)D(5)C(6)D(7)D(8)C(9)B(10)B(11)D(12)B2.填空题(1)数据内容数据形式(2)人工管理阶段文件系统管理阶段数据库系统管理阶段(3)计算机系统数据库数据库管理系统有关人员(4)实体型(5)事物之间的联系(6)关系模型(7)属性记录(8)关系(9)选择投影连接(10)多对多第二章:课本习题二P42一.单选题1.B2.D3.B4.D5.B6.D7.D8.C9.B10.B11.A12.C13.B14.A二.计算题1.(1).T.(2).F.(3).T.2.(1)age<15.and.height>=1.8(2)zhch=”教授”.and.age<40.or.age<35.and.zhch=”副教授”3.(1).T.(2).F.(3)353.00(4).F.(5).F.(6)223.22324.(1)2000.01.18(2)D(3)3(4)C(5)8(6)8(7)71(8)525.(1).F.(2).T.(3).F.(4)7(5)_管理_87计算中心管理实验教程补充习题P31.选择题(1)B(2)C(3)D(4)A(5)A(6)C(7)A(8)D(9)B(10)D(11)C(12)A(13)C(14)A(15)D2.填空题(1)32(2)Enter(3)选项(4)菜单命令程序(5);(6).pjx(7)代码(8)从项目管理器中移去从磁盘上删除(9)函数>算术运算>关系运算>逻辑运算(10)N(11).T.(12)337.201(13)15(14)字符型(15)-1第三章:课本习题三P88:二.单选题1.B2.无答案3.C4.B5.D6.C7.C8.D9.C10.C11.B 实验教程补充习题P211.选择题(1)C(2)A(3)A(4)B(5)C(6)B(7)B(8)B(9)A(10)D(11)D(12)C(13)B(14)B(15)A(16)D(17)C(18)C(19)C(20)D(21)D(22)B(23)B(24)D(25)B(26)C(27)A(28)C(29)C(30)D2.填空题(1)LIST连续不分屏显示信息DISPLAY采用分屏显示信息(2)各字段宽度存放逻辑删除标记(3)已经打开并且正在使用的数据表(4)第5条记录最后一条记录后面(此时EOF()函数的值为.T.)(5)DELETEPACK(6)单入口索引文件结构化复合索引文件非结构化(独立)复合索引文件(7)自由表数据库表(8)新数据表(9)Memo(10)6位(11)按索引顺序排列(12)DELETEFORSUBSTR(分类号,1,1)="I"(13)GO8DELETENEXT8PACK(14)数据表名(15)主索引(16)LISTFOR婚否=.T.(17)数据库(18)CONTINUE(19)默认值(20).dbf第四章:课本习题四P129二.选择题1.D2.A3.C4.A三.填空题1union2.NULL.3逻辑AVG、SUM5INTOCURSOR实验教程补充习题P361.选择题(1)B(2)B(3)B(4)C(5)B(6)D(7)D(8)A(9)C(10)B(11)D(12)B(13)C(14)B(15)C(16)C(17)B(18)B(19)D(20)B(21)A(22)B(23)D(24)A(25)C(26)A(27)C(28)B(29)D(30)C(31)B(32)B(33)C(34)B(35)B(36)A(37)C(38)D(39)C(40)D(41)A(42)B(43)B(44)C(45)A(46)D(47)C(48)D(49)A(50)B(51)D(52)D(53)B2.填空题(1)条件(2)视图(3)符合条件(4)INSERTSELECTUPDATEALTERTABLE(5)降序升序(6)UPDATEGZBSET补贴=补贴+800WHERE职称="副教授"(7)SELECT*FROMRSGLINNERJOINRSGZONRSGL.编号=RSGZ.编号(8)AVG(工资)GROUPBY职称 (9)UNION(10)NULL(11)逻辑(12)AVGSUM(13)INTOARRAY14.ORDERBY15.更新(16)本地视图远程视图17.字段筛选(18)①SELECT*FROMSTUD1WHERE获奖次数>5AND性别="男"②SET获奖次数>=5③INTOSTUD2VALUES("991201","VFP程序设计")④SELECT学号,姓名,总成绩FROMstud1WHERE总成绩=(SELECTMAX(总成绩)FROMstud1)⑤SELECT学号,姓名,总成绩FROMstud1WHERE学号IN(SELECT学号FROMstud2WHERE选课="操作系统")⑥SELECT*TOP3FROMSTUD1ORDERBY总成绩DESC(19)OrderBy(20)职称ISNULL(21)WHERE实发工资BETWEEN800AND1000或者WHERE实发工资>=800AND实发工资<=1000(22)%(23)GROUPBY(24)DISTINCT(25)数据查询第五章课本习题五P171注意:171页最后一行中,DOa.prg改为DOmain.prg二.单选题1.A2.A3.A4.D5.A三.填空1.1101C或字符型2.上海市南京市济南市青岛市四.填空“0”,ssubstr(s,1,n-1)+substr(s,n+1)五.根据要求设计程序1.用两种语句格式实现l用IF实现:SETTALKOFFCLEAALLCLEAINPUT“INPUTANUMBERTOX:”TOXINPUT“INPUTANUMBERTOY:”TOYINPUT“INPUTANUMBERTOZ:”TOZIFX>YIFY>Z?X,Y,ZELSE IFX>Z?X,Z,YELSE?Z,X,YENDIFENDIFELSE&&XZ?Y,X,ZELSE?Y,Z,XENDIFENDIFENDIFSETTALKONRETUl用CASE实现(此种要求有若干种实现方式,只给出一种):SETTALKOFFCLEAALL&&清自定义变量,关闭和本程序不相关的其他文件CLEA&&清屏INPUT“INPUTANUMBERTOX:”TOXINPUT“INPUTANUMBERTOY:”TOYINPUT“INPUTANUMBERTOZ:”TOZDOCASECASEX>YDOCASECASEY>Z?X,Y,ZCASEX>Z?X,Z,YOTHER?Z,X,YENDCASEOTHER&&XZ?Y,X,ZCASEY>Z?Y,Z,XOTHER?Z,Y,XENDCASEENDCASE SETTALKONRETU1.求0-999的水仙花数SETTALKOFFCLEACLEAALLFORI=0TO999A=VAL(LEFT(STR(I,3),1))B=VAL(SUBSTR(STR(I,3),2,1))C=VAL(RIGHT(STR(I,3),1))IFA^3+B^3+C^3=I?IENDIFENDFORSETTALKONRETU2.利用循环和CASE语句实现SETTALKOFFCLEACLEAALLDOWHILE.T.INPUT"INPUTANUMBERTOX:"TOXIFX=0EXITENDIFDOCASECASEX=1?"壹"CASEX=2?"贰"CASEX=3?"叁"CASEX=4?"肆"CASEX=5?"五"CASEX=6?"陆"CASEX=7?"柒"CASEX=8?"捌"CASEX=9?"玖"ENDCASEENDDO SETTALKONRETU1.注意ASC码的判别SETTALKOFFCLEACLEAALLACCE"INPUTASERIALOFCHARACTERSTOS:"TOSNZM=0&&字母个数NSZ=0&&数字个数NKG=0&&空格个数FORI=1TOLEN(S)C=UPPER(SUBSTR(S,I,1))IFASC(C)<91ANDASC(C)>64NZM=NZM+1ENDIFIFASC(C)<58ANDASC(C)>47NSZ=NSZ+1ENDIFIFASC(C)=32NKG=NKG+1ENDIFENDFOR?"字母个数为:",NZM?"数字个数为:",NSZ?"空格个数为:",NKG?"其他字符个数为:",LEN(S)-NZM-NSZ-NKGSETTALKONRETU2.本题使用依附自定义函数实现依附自定义函数方式SETTALKOFFCLEACLEAALLINPUT"INPUTANUMBERTOTOR:"TOXINPUT"INPUTANUMBERTOTOr:"TOy?AREA(X)-AREA(Y)SETTALKONRETUFUNCTIONAREAPARARRETUPI()*R*RENDFUNC子程序方式*主程序MAIN.PRGSETTALKOFF CLEACLEAALLINPUT"INPUTANUMBERTOTOR:"TOXINPUT"INPUTANUMBERTOTOr:"TOy?AREA(X)-AREA(Y)SETTALKONRETU*子程序AREA.PRGPARARRETUPI()*R*RRETU6平行四边形打印(本程序有若干种不同的实现方式,行列数可以自己改动)SETTALKOFFCLEACLEAALL?SPACE(7)FORI=1TO12??"*"ENDFORFORI=1TO6?SPACE(7-I)+"*"+SPACE(10)+"*"ENDFOR?FORI=1TO11??"*"ENDFORSETTALKONRETU7.假设表已经存在。SETTALKOFFCLEACLEAALLUSEN_LISTFORI=1TO20INPUT"ANUMBERTOX:"TOXAPPEBLANREPLDATAWITHXENDFORINDEXONDATATAGDATADESCGOTOP?"TheMAXNUMBERIS:",DATAGOBOTT?"TheMINNUMBERIS:",DATA USESETTALKONRETU程序部分课外补充题目:1.已知数列前两项分别为1,1,从第三项起,每项的值为其紧邻前两项的和,求第40项的值。此题实际是求非波纳契数列的第40项。方法一:数组实现SETTALKOFFCLEACLEAALLDIMEA(40)A(1)=1A(2)=1FORI=3TO40A(I)=A(I-1)+A(I-2)ENDFOR?A(40)SETTALKONRETU方法二:变量倒换法SETTALKOFFCLEACLEAALLS1=1S2=1FORI=3TO40S3=S1+S2S1=S2S2=S3ENDFOR?S3SETTALKONRETU2.求1!+2!+3!+。。。+10!基本方法SETTALKOFFCLEACLEAALLS=0FORI=1TO10JC=1FORJ=1TOIJC=JC*JENDFOR S=S+JCENDFOR?SSETTALKONRETU改进方法SETTALKOFFCLEACLEAALLS=0JC=1FORI=1TO10JC=JC*IS=S+JCENDFOR?SSETTALKONRETU1.从键盘任意输入正数负数或零,分别求出所有正数个数,负数个数,全部数的和,输入0则结束。利用循环实现。SETTALKOFFCLEACLEAALLNZS=0NFS=0L_SUM=0DOWHILE.T.INPUT"INPUTANUMBERTOX:"TOXIFX=0EXITENDIFL_SUM=L_SUM+XIFX>0NZS=NZS+1ELSENFS=NFS+1ENDIFENDDO?L_SUM,NZS,NFSSETTALKONRETU2.从键盘输入一个正数,求小于该数的所有奇数和。SETTALKOFFCLEACLEAALL DOWHIL.T.&&控制必须输入整数,否则循环输入INPUT"INPUTANUMBERTOX:"TOXIFX=0EXITENDIFL_SUM=0FORI=1TOXSTEP2L_SUM=L_SUM+IENDF?L_SUMENDDOSETTALKONRETU1.从键盘任意输入10个数,求最大和最小,不用数组。SETTALKOFFCLEACLEAALLINPUT"INPUTANUMBERTOX:"TOXMAXNUM=XMINNUM=XFORI=1TO9INPUT"INPUTANUMBERTOX:"TOXIFX>MAXNUMMAXNUM=XENDIFIFXA(I,K)K=JENDIFENDFOR&&以上循环结束后,A(I,K)为第I行上的最大元素B=.T.FORR=1TO3IF(A(R,K)IB=.F.EXITENDIFENDFORIFB?"第"+STR(I)+"行第"+STR(K)+"列的元素"+STR(A(I,K))+"符合要求"ENDIFENDFORSETTALKONRETU2.从键盘输入密码,不在屏幕上显示输入的密码。判断正确与否,最多3次机会。利用SETCONSOLEOFF/ON实现SETTALKOFFCLEACLEAALLZQKL="1234"&&THERIGHTPASSWORDFORI=1TO3?"请输入正确口令:" SETCONSOLEOFFACCETOPASSWORDSETCONSOLEONIFPASSWORD==ZQKL?"恭喜您,答对了!"EXITELSEIFI<3?"您还有"+STR(3-I)+"次机会,再试一次吧!"ELSE?"抱歉,您没有机会了。。。"EXITENDIFENDIFENDFORSETTALKONRETU1.数据表中有”成绩”和”评估”字段,根据成绩决定评估等第。小于60分不及格;60分到70分及格;70分到80分中等;80分到90分良好;90分以上优秀。利用CASE语句实现SETTALKOFFCLEACLEAALLUSECOMPUTERDOWHILENOTEOF()DOCASECASE成绩<60REPLACE评估WITH‘不及格’CASE成绩<70REPLACE评估WITH‘及格’CASE成绩<80REPLACE评估WITH‘中等’CASE成绩<90REPLACE评估WITH‘良好’CASE成绩<=100REPLACE评估WITH‘优秀’ENDCASESKIPENDDOCLSOEALLSETTALKONRETU2.某中学招收高中一年级新生12个班,学生入学成绩已登记在STUDENT.DBF自由表中,表中含姓名(C型,已输入数据)、总分(N型,已输入数据)、班级(N型,未输入数据)字段。编程,根据总分将学生均匀搭配到12个班中,并把该学生的班级字段填写其班级序号,最后再将同班的记录分别拷贝到CLASS1.DBF,CLASS2.DBF,……,CLASS12.DBF中。分配班级时,按照巡回折转的顺序进行(如,总分第一名给1班,第二名给2班,…………,第12名给12班,第13名给12班,第14名给11班,…………….依次类推)。 SETTALKOFFCLEACLEAALLUSESTUDENTSINDEXON-总分 TAG总分(或INDEXON总分 TAG总分DESC)GOTOPDOWHILENOTEOF()FORI=1TO12REPL班级WITHISKIPIFEOF()EXITENDIFENDFORFORI=1TO12STEP—1REPL班级WITHISKIPIFEOF()EXITENDIFENDFORENDDOFORI=1TO12T=ALLTRIM(STR(I,2))COPYTOCLASS&TFOR班级=IENDFORCLEAALLSETTALKONRETU1.已知某单位有一个工资票额数据表GZPM.DBF,表中包括的字段为:工号,姓名,实发工资(N,7,2),一百元(N,2),五十元(N,2),二十元(N,2),十元(N,2),五元(N,2),二元(N,2),一元(N,2)等。并假设工号、姓名和实发工资字段都已经输入了数据,且实发工资中不含角分值。编程工资分票程序,计算并显示该单位发放工资时所需要的各种票面张数(也就是计算实际发放工资时每人需要的各种面额人名币张数)。利用自程序实现(本程序票面优先发大额票面,如60元分成一个50和一个10元,而不是三个20元或6个10)SETTALKOFFCLEACLEAALLUSEGZPMDOWHILENOTEOF()F100=INT(实发工资/100)&&100的票面张数B=实发工资%10&&工资中个位数的值C=INT((实发工资F100*100-B)/10)&&工资中十位数的值F50=0&&50的票面张数F20=0&&20的票面张数F10=0&&10的票面张数F5=0&&5的票面张数 F2=0&&2的票面张数F1=0&&1的票面张数DOPWITHC,F50,F20,F10DOPWITHB,F5,F2,F1REPL壹百元WITHF100,伍拾元WITHF50,贰拾元WITHF20,拾元WITHF10,伍元WITHF5,贰元WITHF2,壹元WITHF1SKIPENDDOCLOSEALLSETTALKONRETUPROCEDUREPPARAK,X,Y,ZX=INT(K/5)Y=INT((K-X*5)/2)Z=K-X*5-Y*2ENDPROC第五章实验教程补充习题1.选择题(1)C(2)B(3)D(4)A(5)A(6)C(7)C(8)D(9)A(10)A(11)B(12)C(13)D(14)A(15)A(16)D(17)D(18)B(19)C(20)D2.填空题(1)试考级等机算计(2)EXIT(3)循环(4)PROCEDURE或FUNCTION(5)P=P*I,S=S=9(6)NOTEOF()、SKIP(7)0,1,j,1/mul(8)子程序中输出的结果:i=2j=3k=4主程序的输出结果:i=2j=1k=1(9)对象(10)封装、继承、多态'