VisualFoxpro实用教程课本及辅导教材参考答案第三版新.docx
- 文档编号:2874951
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:25
- 大小:22.55KB
VisualFoxpro实用教程课本及辅导教材参考答案第三版新.docx
《VisualFoxpro实用教程课本及辅导教材参考答案第三版新.docx》由会员分享,可在线阅读,更多相关《VisualFoxpro实用教程课本及辅导教材参考答案第三版新.docx(25页珍藏版)》请在冰点文库上搜索。
VisualFoxpro实用教程课本及辅导教材参考答案第三版新
VisualFoxpro实用教程课本(第三版)及实验教材部分课后题答案
说明:
1。
本材料仅供学习参考,不代表任何考试题目意向;
2。
所给定的题目答案只是常规解法,不一定是最佳答案。
刘乃文
第一章:
课本习题一P10
一.单选题1.B2.A3.C4.D5.C6.B7.A
实验教程补充习题P1
1.选择题
(1)A
(2)B(3)B(4)D(5)C(6)D(7)D(8)C(9)B(10)B(11)D(12)B
2.填空题
(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.2232
4.
(1)2000.01.18
(2)D(3)3(4)C(5)8(6)8(7)71(8)52
5.
(1).F.
(2).T.(3).F.(4)7(5)_管理_87计算中心管理
实验教程补充习题P3
1.选择题
(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)D
2.填空题
(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
实验教程补充习题P21
1.选择题
(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)D
2.填空题
(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)GO8
DELETENEXT8
PACK
(14)数据表名(15)主索引(16)LISTFOR婚否=.T.
(17)数据库(18)CONTINUE(19)默认值(20).dbf
第四章:
课本习题四P129
二.选择题1.D2.A3.C4.A
三.填空题1union2.NULL.3逻辑AVG、SUM5INTOCURSOR
实验教程补充习题P36
1.选择题
(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)B
2.填空题
(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.用两种语句格式实现
●用IF实现:
SETTALKOFF
CLEAALL
CLEA
INPUT“INPUTANUMBERTOX:
”TOX
INPUT“INPUTANUMBERTOY:
”TOY
INPUT“INPUTANUMBERTOZ:
”TOZ
IFX>Y
IFY>Z
?
X,Y,Z
ELSE
IFX>Z
?
X,Z,Y
ELSE
?
Z,X,Y
ENDIF
ENDIF
ELSE&&X IFY ? Z,Y,X ELSE IFX>Z ? Y,X,Z ELSE ? Y,Z,X ENDIF ENDIF ENDIF SETTALKON RETU ●用CASE实现(此种要求有若干种实现方式,只给出一种): SETTALKOFF CLEAALL&&清自定义变量,关闭和本程序不相关的其他文件 CLEA&&清屏 INPUT“INPUTANUMBERTOX: ”TOX INPUT“INPUTANUMBERTOY: ”TOY INPUT“INPUTANUMBERTOZ: ”TOZ DOCASE CASEX>Y DOCASE CASEY>Z ? X,Y,Z CASEX>Z ? X,Z,Y OTHER ? Z,X,Y ENDCASE OTHER&&X DOCASE CASEX>Z ? Y,X,Z CASEY>Z ? Y,Z,X OTHER ? Z,Y,X ENDCASE ENDCASE SETTALKON RETU 2.求0-999的水仙花数 SETTALKOFF CLEA CLEAALL FORI=0TO999 A=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 ? I ENDIF ENDFOR SETTALKON RETU 3.利用循环和CASE语句实现 SETTALKOFF CLEA CLEAALL DOWHILE.T. INPUT"INPUTANUMBERTOX: "TOX IFX=0 EXIT ENDIF DOCASE CASEX=1 ? '壹' CASEX=2 ? '贰' CASEX=3 ? '叁' CASEX=4 ? '肆' CASEX=5 ? '五' CASEX=6 ? '陆' CASEX=7 ? '柒' CASEX=8 ? '捌' CASEX=9 ? '玖' ENDCASE ENDDO SETTALKON RETU 4.注意ASC码的判别 SETTALKOFF CLEA CLEAALL ACCE'INPUTASERIALOFCHARACTERSTOS: 'TOS NZM=0&&字母个数 NSZ=0&&数字个数 NKG=0&&空格个数 FORI=1TOLEN(S) C=UPPER(SUBSTR(S,I,1)) IFASC(C)<91ANDASC(C)>64 NZM=NZM+1 ENDIF IFASC(C)<58ANDASC(C)>47 NSZ=NSZ+1 ENDIF IFASC(C)=32 NKG=NKG+1 ENDIF ENDFOR ? '字母个数为: ',NZM ? '数字个数为: ',NSZ ? '空格个数为: ',NKG ? '其他字符个数为: ',LEN(S)-NZM-NSZ-NKG SETTALKON RETU 5.本题使用依附自定义函数实现 依附自定义函数方式 SETTALKOFF CLEA CLEAALL INPUT'INPUTANUMBERTOTOR: 'TOX INPUT'INPUTANUMBERTOTOr: 'TOy ? AREA(X)-AREA(Y) SETTALKON RETU FUNCTIONAREA PARAR RETUPI()*R*R ENDFUNC 子程序方式 *主程序MAIN.PRG SETTALKOFF CLEA CLEAALL INPUT'INPUTANUMBERTOTOR: 'TOX INPUT'INPUTANUMBERTOTOr: 'TOy ? AREA(X)-AREA(Y) SETTALKON RETU *子程序AREA.PRG PARAR RETUPI()*R*R RETU 6平行四边形打印(本程序有若干种不同的实现方式,行列数可以自己改动) SETTALKOFF CLEA CLEAALL ? SPACE(7) FORI=1TO12 ? ? "*" ENDFOR FORI=1TO6 ? SPACE(7-I)+"*"+SPACE(10)+"*" ENDFOR ? FORI=1TO11 ? ? "*" ENDFOR SETTALKON RETU 7.假设表已经存在。 SETTALKOFF CLEA CLEAALL USEN_LIST FORI=1TO20 INPUT'ANUMBERTOX: 'TOX APPEBLAN REPLDATAWITHX ENDFOR INDEXONDATATAGDATADESC GOTOP ? 'TheMAXNUMBERIS: ',DATA GOBOTT ? 'TheMINNUMBERIS: ',DATA USE SETTALKON RETU 程序部分课外补充题目: 1.已知数列前两项分别为1,1,从第三项起,每项的值为其紧邻前两项的和,求第40项的值。 此题实际是求非波纳契数列的第40项。 方法一: 数组实现 SETTALKOFF CLEA CLEAALL DIMEA(40) A (1)=1 A (2)=1 FORI=3TO40 A(I)=A(I-1)+A(I-2) ENDFOR ? A(40) SETTALKON RETU 方法二: 变量倒换法 SETTALKOFF CLEA CLEAALL S1=1 S2=1 FORI=3TO40 S3=S1+S2 S1=S2 S2=S3 ENDFOR ? S3 SETTALKON RETU 2.求1! +2! +3! +。 。 。 +10! 基本方法 SETTALKOFF CLEA CLEAALL S=0 FORI=1TO10 JC=1 FORJ=1TOI JC=JC*J ENDFOR S=S+JC ENDFOR ? S SETTALKON RETU 改进方法 SETTALKOFF CLEA CLEAALL S=0 JC=1 FORI=1TO10 JC=JC*I S=S+JC ENDFOR ? S SETTALKON RETU 3.从键盘任意输入正数负数或零,分别求出所有正数个数,负数个数,全部数的和,输入0则结束。 利用循环实现。 SETTALKOFF CLEA CLEAALL NZS=0 NFS=0 L_SUM=0 DOWHILE.T. INPUT'INPUTANUMBERTOX: 'TOX IFX=0 EXIT ENDIF L_SUM=L_SUM+X IFX>0 NZS=NZS+1 ELSE NFS=NFS+1 ENDIF ENDDO ? L_SUM,NZS,NFS SETTALKON RETU 4.从键盘输入一个正数,求小于该数的所有奇数和。 SETTALKOFF CLEA CLEAALL DOWHIL.T.&&控制必须输入整数,否则循环输入 INPUT'INPUTANUMBERTOX: 'TOX IFX=0 EXIT ENDIF L_SUM=0 FORI=1TOXSTEP2 L_SUM=L_SUM+I ENDF ? L_SUM ENDDO SETTALKON RETU 5.从键盘任意输入10个数,求最大和最小,不用数组。 SETTALKOFF CLEA CLEAALL INPUT'INPUTANUMBERTOX: 'TOX MAXNUM=X MINNUM=X FORI=1TO9 INPUT'INPUTANUMBERTOX: 'TOX IFX>MAXNUM MAXNUM=X ENDIF IFX MINNUM=X ENDIF ENDF ? MAXNUM,MINNUM SETTALKON RETU 6.从键盘人数输入20个数,放在数组中,输入完毕,求出最小数的下标。 思路: 在输入数据的同时即进行最小判断,输入结束,最小的数的位置号存放的K中。 SETTALKOFF CLEA CLEAALL DIMENUM(20) INPUT'ANUMBERTOX: 'TONUM (1) K=1&&最小数的序号,起初假设第一个最小 FORI=2TO20 INPUT'INPUTANUMBER: 'TONUM(I) IFNUM(I) (1) K=I ENDIF ENDF ? K,NUM(K) SETTALKON RETU 7.求二维数组中行上最大、列上最小的数(本题以3行3列数组为例) SETTALKOFF CLEA CLEAALL DIMEA(3,3) FORI=1TO9 INPUT'INPUTANUMBERTOARRAY: 'TOA(I) ENDFOR FORI=1TO9 ? ? STR(A(I)) IFI%3=0 ? ENDIF ENDFOR FORI=1TO3 K=1&&假设每一行的第一个最大 FORJ=2TO3&&求每一行上的最大 IFA(I,J)>A(I,K) K=J ENDIF ENDFOR &&以上循环结束后,A(I,K)为第I行上的最大元素 B=.T. FORR=1TO3 IF(A(R,K)I B=.F. EXIT ENDIF ENDFOR IFB ? '第'+STR(I)+'行第'+STR(K)+'列的元素'+STR(A(I,K))+'符合要求' ENDIF ENDFOR SETTALKON RETU 8.从键盘输入密码,不在屏幕上显示输入的密码。 判断正确与否,最多3次机会。 利用SETCONSOLEOFF/ON实现 SETTALKOFF CLEA CLEAALL ZQKL='1234'&&THERIGHTPASSWORD FORI=1TO3 ? '请输入正确口令: ' SETCONSOLEOFF ACCETOPASSWORD SETCONSOLEON IFPASSWORD==ZQKL ? '恭喜您,答对了! ' EXIT ELSE IFI<3 ? '您还有'+STR(3-I)+'次机会,再试一次吧! ' ELSE ? '抱歉,您没有机会了。 。 。 ' EXIT ENDIF ENDIF ENDFOR SETTALKON RETU 9.数据表中有”成绩”和”评估”字段,根据成绩决定评估等第。 小于60分不及格;60分到70分及格;70分到80分中等;80分到90分良好;90分以上优秀。 利用CASE语句实现 SETTALKOFF CLEA CLEAALL USECOMPUTER DOWHILENOTEOF() DOCASE CASE成绩<60 REPLACE评估WITH‘不及格’ CASE成绩<70 REPLACE评估WITH‘及格’ CASE成绩<80 REPLACE评估WITH‘中等’ CASE成绩<90 REPLACE评估WITH‘良好’ CASE成绩<=100 REPLACE评估WITH‘优秀’ ENDCASE SKIP ENDDO CLSOEALL SETTALKON RETU 10.某中学招收高中一年级新生12个班,学生入学成绩已登记在STUDENT.DBF自由表中,表中含姓名(C型,已输入数据)、总分(N型,已输入数据)、班级(N型,未输入数据)字段。 编程,根据总分将学生均匀搭配到12个班中,并把该学生的班级字段填写其班级序号,最后再将同班的记录分别拷贝到CLASS1.DBF,CLASS2.DBF,……,CLASS12.DBF中。 分配班级时,按照巡回折转的顺序进行(如,总分第一名给1班,第二名给2班,…………,第12名给12班,第13名给12班,第14名给11班,…………….依次类推)。 SETTALKOFF CLEA CLEAALL USESTUDENTS INDEXON-总分 TAG总分(或INDEXON总分 TAG总分DESC) GOTOP DOWHILENOTEOF() FORI=1TO12 REPL班级WITHI SKIP IFEOF() EXIT ENDIF ENDFOR FORI=1TO12STEP—1 REPL班级WITHI SKIP IFEOF() EXIT ENDIF ENDFOR ENDDO FORI=1TO12 T=ALLTRIM(STR(I,2)) COPYTOCLASS&TFOR班级=I ENDFOR CLEAALL SETTALKON RETU 11.已知某单位有一个工资票额数据表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) SETTALKOFF CLEA CLEAALL USEGZPM DOWHILENOTEOF() F100=INT(实发工资/100)&&100的票面张数 B=实发工资%10&&工资中个位数的值 C=INT((实发工资F100*100-B)/10)&&工资中十位数的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxpro 实用教程 课本 辅导 教材 参考答案 第三