vfp程序改错.docx

上传人:牧羊曲112 文档编号:3168626 上传时间:2023-03-11 格式:DOCX 页数:31 大小:46.79KB
返回 下载 相关 举报
vfp程序改错.docx_第1页
第1页 / 共31页
vfp程序改错.docx_第2页
第2页 / 共31页
vfp程序改错.docx_第3页
第3页 / 共31页
vfp程序改错.docx_第4页
第4页 / 共31页
vfp程序改错.docx_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《vfp程序改错.docx》由会员分享,可在线阅读,更多相关《vfp程序改错.docx(31页珍藏版)》请在三一办公上搜索。

1、vfp程序改错Visual Foxpro程序改错 第1题(练习题所在文件夹:163) *题目:该程序完成口令检验功能。输入三次不正确退出。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF CLEAR ass1=AbCdEf TT=1 DO WHILE TT4 10,20 SAY 请输入口令: SET CONSOLE OFF ACCEPT TO ass SET CONSOLE ON *FOUND* IF ass1=ass CLEAR ?欢迎使用本系统! *FOUND* LOOP ELSE *FOUND* TT=TT-1 CLEAR ?口令错,按任意键再输入一次

2、! WAIT ENDIF ENDDO RETURN 答案: 1). IF UPPER(ass1)=UPPER(ass) 或 IF UPPER(ass1)=UPPER(ass) 2). EXIT 3). TT=TT+1 或 TT=1+TT 第4题(练习题所在文件夹:500) *题目:ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名 * (C 8)、性别(C 2)、政治面貌(C 4)、出生日期(D 8)等字 * 段。性别用字符串男或女表示,政治面貌用字符串 * 党员、团员或群众表示。此文件已按政治面貌建立 * 了索引,索引文件名是ZHG_ZHZH.IDX。 * 程序功能是:显示输出所

3、有政治面貌为群众的女职工的 * 姓名和出生日期在屏幕上 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 set talk off clear *FOUND* USE ZHG SEEK 群众 *FOUND* DO WHILE !EOF IF 性别=女 DISP 姓名,出生日期 *FOUND* ENDD SKIP ENDDO USE SET TALK ON 答案: 1). USE ZHG INDEX ZHG_ZHZH 2). DO WHILE政治面貌=群众 或 DOWHILE政治面貌=群众 或 DOWHILE政治面貌=群众 3). ENDIF 第5题(练习题所在文件夹:105) *题目:

4、在RSH.dbf 中,查找职工赵红的工资,如果工资小于200元, * 则增加100元;如果工资大于等于200元且小于500元时,则增 * 加50元;否则增加20元。最后显示赵红的姓名和工资。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 CLEAR USE RSH *FOUND* LOCATE FOR 姓名 =赵红 DO CASE CASE 工资 200 REPLACE 工资 WITH 工资+ 100 CASE 工资 500 REPLACE 工资 WITH 工资+ 50 OTHERWISE REPLACE 工资 WITH 工资+ 20 ENDCASE *FOUND* LIST 姓名

5、,工资 USE 答案: 1). LOCATE FOR 姓名=赵红 或 LOCA FOR 姓名=赵红 或 LOCA FOR 姓名=赵红 或 LOCATE FOR 姓名=赵红 或 LOCA FOR 姓名=赵红 或 LOCATE FOR 姓名=赵红 2). DISP 姓名,工资 或 ?姓名,工资 或 DISPLAY 姓名,工资 第6题(练习题所在文件夹:174) *题目:计算S=2+4+6+.+98+100的程序。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 store 0 to s,i *FOUND* do i=99 *FOUND* i=i+1 s=s+i enddo ?s=,s 答

6、案: 1). do while i=99 或 do while i100 或 dowhilei=98 或 dowhilei0 *FOUND* X1=(X2+1)/2 X2=X1 *FOUND* DAY=DAY+1 ENDDO ? 第一天摘下,X1,个桃子 SET TALK ON 答案: 1). X2=1 2). X1=(X2+1)*2 3). DAY=DAY-1 第8题(练习题所在文件夹:175) *题目:打开XSDB.DBF数据表, 分别统计男、女生的人数。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 USE XSDB STOR 0 TO B,G DO WHILE .NOT.E

7、OF *FOUND* IF 性别男 B=B+1 *FOUND* ENDIF G=G+1 ENDIF SKIP ENDDO ?男生人数是:+STR(B) ?女生人数是:+STR(G) 答案: 1). IF 性别=男 或 IF 性别女 2). ELSE 第9题(练习题所在文件夹:188) *题目:显示XSDB.DBF中每个学生的姓名、计算机成绩和等级;等 * 级划分如下:计算机成绩大于等于90显示优秀;60到89 * 之间显示及格;60分以下显示补考。 * 如显示:张丽娜 90 优秀 。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 USE XSDB DO WHIL .NOT. EOF

8、 *FOUND* LIST 姓名,计算机 DO CASE CASE 计算机=90 ?优秀 CASE 计算机=60 ?及格 OTHERWISE ?补考 ENDCASE *FOUND* GO NEXT ENDDO USE 答案: 1). ? 姓名,计算机 或DISPLAY姓名,计算机 2). SKIP 或 SKIP 1 第10题(练习题所在文件夹:191) *题目:从键盘上输入5个数,将其中奇数求和,偶数求积。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 S1=0 *FOUND* S2=0 FOR I=1 TO 5 INPUT 请输入第+STR(I,1)+ 数 TO M *FOUND

9、* IF INT(M/2)=0 S1=S1+M ELSE S2=S2*M ENDIF ENDFOR ? 奇数和是,S1 ? 偶数积是,S2 答案: 1). S2=1 或 STOR 1 TO S2 2). IF MOD(M,2)0 或 IF MOD(M,2)#0 或 IF INT(M/2)M/2 或 IF INT(M/2)#M/2 或 IF M%2 0 或 IF M%2!=0 或 IF M%2#0 第11题(练习题所在文件夹:182) *题目:在XSDB.DBF中查找学生徐秋实的记录, 如果找到则将该记录 * 的系别、姓名,两科科目名称和对应的成绩显示在屏幕上,否则 * 显示:查无此人!。 *注

10、意:不可以增加或删除程序行,也不可以更改程序的结构。 USE XSDB *FOUND* FIND FOR 姓名=徐秋实 IF .NOT.FOUND ?查无此人! ELSE *FOUND* ?系别,姓名, 计算机=+计算机, 英语=+英语 ENDIF USE RETURN 答案: 1). LOCATE FOR姓名=徐秋实 或 LOCATE AL LFOR姓名=徐秋实 2). ? 系别,姓名,计算机=+STR(计算机),英语=+STR(英语) 或 ?系别,姓名,计算机=,计算机, 英语=,英语 第13题(练习题所在文件夹:161) *题目:从键盘输入一个表名,打开该表文件,移动记录指针到 * 文件

11、头,输出当前记录号;在移动记录指针到文件尾, * 输出当前记录号。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF ACCEPT TO A *FOUND* FIND A GO TOP *FOUND* NEXT ? RECNO( ) GO BOTTOM *FOUND* NEXT -1 ? RECNO( ) USE SET TALK ON 答案: 1). USE(A) 或 USE&A 2). SKIP-1 3). SKIP 或 SKIP 1 第14题(练习题所在文件夹:162) *题目:从键盘输入一个表文件名,打开该表, 查找姓名是 * 张东的记录,并显示该记录

12、, 最后输出姓名是张 * 东的记录个数。(设被打开的表中有固定字段姓名) *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF ACCEPT TO A USE &A *FOUND* N=1 SCAN FOR 姓名= 张东 *FOUND* LIST N=N+1 ENDSCAN *FOUND* ? 记录个数是,N USE SET TALK ON 答案: 1). N=0 或 Store0ToN 2). DISPLAY 或 DISP 3). ? 记录个数是,N 或 ? 记录个数是,str(N) 第16题(练习题所在文件夹:92) *题目:求X =1+2+3+ +100,并

13、同时求出 1到100 之间的奇数之和Y, * 而且显示输出这两个和。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 CLEAR STORE 0 TO I , X , Y *FOUND* DO WHILE I=100 I = I+1 X =X+I IF I/2 = INT(I/2) *FOUND* EXIT ENDIF Y=Y+I ENDDO ?X,Y RETURN 答案: 1). DO WHILE I100 或 DO WHILE I=99 2). LOOP 第17题(练习题所在文件夹:501) *题目:STUDENT.DBF是一个学生信息文件,包含学号(C 8)、 * 姓名(C 8

14、)、性别(C 2)、政治面貌(C 4)、班级(C 5) * 等字段;其中性别用字符串男或女表示,政治面貌 * 用字符串党员、团员或群众表示。 * 程序的功能是:显示输出所有政治面貌为群众的男生姓 * 名和班级。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 set talk off clear USE STUDENT LOCATE FOR 政治面貌=群众 *FOUND* DO WHILE .not. FOUND IF 性别=女 CONTINUE *FOUND* break ENDIF ? 姓名,班级 *FOUND* skip ENDDO USE SET TALK ON 答案: 1)

15、. DO WHILE FOUND 或DO WHIL .not.eof 2). LOOP 3). CONTINUE x第19题(练习题所在文件夹:148) *题目:从键盘上输入任意一串字符,判断是否回文。 * 例如:MUM、456654,MADAM。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF ACCEPT A= TO A L=LEN(A) FLAG=1 I=1 *FOUND* DO WHILE FLAG=1 OR I=INT(L/2) *FOUND* IF SUBS(A,I,1)SUBS(A,L-I,1) FLAG=0 ENDIF I=I+1 ENDDO

16、 *FOUND* IF FLAG=0 ? 是回文 ELSE ? 不是回文 ENDIF CANCEL 答案: 1). DO WHILE FLAG=1 AND I=INT(L/2) 2). IF SUBSTR(A,I,1)SUBSTR(A,L-I+1,1) 3). IF FLAG=1 第20题(练习题所在文件夹:189) *题目:从键盘输入一个数X,当X大于0、Y的值为1;当X等于0、Y的 * 值为0;当X小于0、Y的值为-1, 然后输出Y的值。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 INPUT 输入一个数X: TO X *FOUND* IF X0 IF X0 Y=1 ELSE

17、 Y=0 ENDIF ELSE Y=-1 ENDIF *FOUND* ?Y=Y 答案: 1). IF X=0 或 IF 0=X 2). ? Y=,Y 或? Y=+STR(Y) 第22题(练习题所在文件夹:505) *题目:计算并显示输出数列1,-1/2, 1/4, -1/8, 1/16 的 * 前10项之和。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 set talk off clear Y=0 STORE 1 TO I,C *FOUND* DO WHILE I=10 Y=Y+(-1)(C+1)/I *FOUND* I=-I*2 C=C+1 *FOUND* ENDIF ? 数列

18、前10项之和为:,Y SET TALK ON RETURN 答案: 1). DO WHILE C=10 或 DO WHILE C11 2). I=I*2 或 I=-I*(-2) 3). ENDD 或 ENDDO 第23题(练习题所在文件夹:156) *题目:求1+5+9+13+97的和。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF S=0 *FOUND* N=0 DO WHILE N10 P=p*I *FOUND* If int(i/2)=i/2 T=t+p Endif I=I+1 Enddo ?t=,t 答案: 1). t=0 2). do while

19、 i10 3). != 或 或 # 第25题(练习题所在文件夹:168) *题目:查找RSH.dbf 中女职工的最高工资,并显示其姓名和工资。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 *FOUND* OPEN RSH MGZ = 0 DO WHILE .NOT.EOF *FOUND* IF 性别=女,MGZ工资 MGZ=工资 MXM=姓名 ENDIF *FOUND* CONT ENDDO ?MXM,MGZ USE 答案: 1). USERSH 2). IF 性别=女.and. MGZ工资 3). SKIP x第26题(练习题所在文件夹:154) *题目:以下程序输出如下图所示

20、的图形。 * !$! * !$!$!$ * !$!$! * !$!$!$!$!$ *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF I=4 DO WHILE I10 *FOUND* IF INT(I/2)=I/2 I=I*2 ELSE I=I-1 ENDIF FOR J=1 TO I *FOUND* IF J/2=0 ? ! ELSE ? $ *FOUND* ENDDO ENDFOR ? ENDDO RETURN 答案: 1). IF INT(I/2)I/2或 IF MOD(I,2)=1 或 IF I%2=1 2). IF J%2=1 或 IF mod(j,2

21、)=1 3). ENDIF 或 ENDI 第27题(练习题所在文件夹:190) *题目:计算出1到50以内能被2和3整除的数之和。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 STOR 0 TO X ,Y *FOUND* DO WHILE NOT EOF X=X+1 DO CASE *FOUND* CASE MOD(X,2)=0 or MOD(X,3)=0 Y=Y+X CASE X50 EXIT ENDCASE ENDDO ?Y 答案: 1). DO WHILE .T. 2). and 3). LOOP 第29题(练习题所在文件夹:196) *题目:分别统计化学系的男、女生总人数

22、并显示出来。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 USE XSDB STOR 0 TO RS1,RS2 *FOUND* FIND FOR 系别=化学 DO WHILE .NOT.EOF *FOUND* IF 性别男 RS1=RS1+1 ELSE RS2=RS2+1 ENDIF CONT ENDDO ? 男生人数=,RS1 ? 女生人数=,RS2 USE 答案: 1). LOCATE FOR系别=化学 或 LOCATE ALL FOR系别=化学 2). IF 性别=男 或 IF 性别女 第30题(练习题所在文件夹:187) *题目:从键盘输入十个非零整数,统计能被3整除的数

23、的个数。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 STORE 0 TO I,A *FOUND* DO WHILE I=10 INPUT 请输入一个整数: TO N *FOUND* IF MOD(N/3)=0 A=A+1 ENDIF I=I+1 ENDDO ?A 答案: 1). DO WHILE I10 或 DO WHILE I=9 2). IF MOD(N,3)=0 或 I N%3=0 或 IF INT(N/3)=N/3 第31题(练习题所在文件夹:152) *题目:从键盘上输入5个数,统计其中奇数的个数。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET T

24、ALK OFF A=0 FOR J=1 TO 5 *FOUND* ACCEPT 请输入第+STR(J,2)+ 数 TO M *FOUND* IF INT(M/2)=M/2 A=A+1 ENDIF ENDFOR *FOUND* ?奇数个数是,A CANCEL 答案: 1). INPUT 请输入第+STR(J,2)+ 数 TO M 2). IF INT(M/2)#M/2 或 IF INT(M/2)!=M/2 或 IF INT(M/2)M/2 3). ? 奇数个数是,A 或 ? 奇数个数是,str(A) 第32题(练习题所在文件夹:157) *题目:求2!+4!+6!+10!的和。 *注意:不可以增

25、加或删除程序行,也不可以更改程序的结构。 SET TALK OFF S=0 *FOUND* T=0 FOR N=2 TO 10 *FOUND* T=T*(T-1) IF N%2=0 *FOUND* S=S+N ENDIF ENDFOR ? S 答案: 1). T=1 2). T=T*N 或 T=N*T 3). S=S+T 或 S=T+S 第33题(练习题所在文件夹:46) *题目:计算并在屏幕上显示出九九乘法表,显示格式如下 *111 *212 224 *313 326 339 * *919 9872 9981 *程序中共有2个错误,请修改下面一条语句的错误,并调试运行。 *注意:不可以增加或

26、删除程序行,也不可以更改程序的结构。 X=1 DO WHILE X=9 Y=1 *FOUND* DO WHILE Y=9 ?STR(X,1)+STR(Y,1)+=+STR(X*Y,2)+ Y=Y+1 ENDDO *FOUND* disp X=X+1 ENDDO 答案: 1). DO WHILE Y=Y 2). ? 第34题(练习题所在文件夹:153) *题目:表XSDA.DBF结构为:学号,姓名, * 性别,入学成绩。 * 本程序实现按学号查找记录,直到输入#为止。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF USE XSDA *FOUND* ACCEP

27、T 请输入要查找的学号 ON XH DO WHILE XH!= # *FOUND* LOCATE FOR 学号=CJ IF FOUND ?学号,姓名,入学成绩 ELSE ? 无此学号 ENDIF ACCEPT 请继续输入要查找的学号 TO XH *FOUND* ENDFOR ?谢谢使用本查找系统 USE SET TALK ON 答案: 1). ACCEPT 请输入要查找的学号 TO XH 或 ACCEPT 请输入要查找的学号 TO XH 或 ACCEPT 请输入要查找的学号 TO XH 2). LOCATE FOR 学号=XH 或 LOCA FOR 学号=XH 3). ENDDO 第35题(练

28、习题所在文件夹:166) *题目:计算出1-30以内能被5整除的数之和。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 CLEAR SET TALK OFF X=0 *FOUND* Y=1 DO WHILE .T. X=X+1 DO CASE CASE MOD(X,5)=0 Y=Y+X CASE X30 *FOUND* LOOP ENDCASE ENDDO ?Y SET TALK ON 答案: 1). Y=0 或 STORE0TOY 2). LOOP 3). EXIT 或 Quit 第37题(练习题所在文件夹:186) *题目:接收键盘输入的任意5个整数(不超过3位数), 找出其中

29、的最 * 大数并显示。程序中共有2个错误。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 INPUT 请输入第一个数: TO X STORE X TO MA N=5 *FOUND* DO WHILE N=5 INPUT 请输入下一个数: TO X IF MA=2 或 DO WHIL N1 2). ?最大数=+STR(MA,3) 或 第38题(练习题所在文件夹:151) *题目:本程序计算1!3!9!的乘积。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 SET TALK OFF M=1 *FOUND* S=0 DO WHILE M=9 I=1 P=1 *FOUND* D

30、O WHILE M=9 P=P*I I=I+1 ENDDO S=S*P *FOUND* M=M+3 ENDDO ? 1!3!9!=,S SET TALK ON RETURN 答案: 1). S=1 2). DO WHILE I=I 3). M=M*3 第39题(练习题所在文件夹:180) *题目:用循环程序计算XSDB.DBF中法律系学生的计算机平均成绩、 * 英语平均成绩和奖学金总额。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 USE XSDB STORE 0 TO JSJ,YY,JXJ,RS LOCA FOR 系别=法律 *FOUND* DO WHILE FIND JSJ=

31、JSJ+计算机 YY=YY+英语 JXJ=JXJ+奖学金 RS=RS+1 CONT ENDDO *FOUND* ?JSJ,YY,JXJ 答案: 1). do while FOUN 或 do while .NOT.EOF 或 do while !EOF 或 do while NOT EOF 或 do while FOUND 2). ?JSJ/RS,YY/RS,JXJ 第41题(练习题所在文件夹:504) *题目:ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名 * (C 8)、性别(C 1)、基本工资(N 8.2)等字段。其中的性 * 别用代码M表示男、F表示女。 * 程序功能是:

32、按基本工资由高到低的顺序显示输出所有职 * 工的姓名、性别和基本工资,每行输出一个职工的信息,其 * 中性别输出汉字男或女。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 Set talk off Clear Use ZHG INDEX ON 基本工资 To ZHG_GZ.IDX USE ZHG INDEX ZHG_GZ *FOUND* GO TOP DO WHILE .NOT.BOF ? 姓名+ *FOUND* ? IF 性别M THEN 女 ? ,基本工资 *FOUND* SKIP ENDDO USE SET TALK ON 答案: 1). GOBOTTOM 2). ? IIF

33、(性别M,女,男) 或 3). SKIP-1 第42题(练习题所在文件夹:185) *题目:将200到300之间的所有能被3整除或被5整除的数求和并统计个数。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 STORE 0 TO S,C I=200 DO WHILE I=300 *FOUND* IF INT(I/3)=INT(I/5) S=S+I *FOUND* C=C+I ENDIF I=I+1 ENDDO ?200到300之间的所有能被3整除或被5整除的数之和=+STR(S,6) ?200到300之间的所有能被3整除或被5整除的数的个数=+STR(C,6) 答案: 1). IF INT(I/3)=I/3 .OR. INT(I/5)=I/5或 IF MOD(I,5)=0 .OR. MOD(I,3)=0 2). C=1+C 或 C=C+1 第43题(练习题所在文件夹:57) *题目:计算1!+3!+9!的结果并输出。 *注意:不可以增加或删除程序行,也不可以更改程序的结构。 S=0 *FOUND* M=0 DO WHILE M=9 STOR 1 TO I P=1 *FOUND*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号