您好,欢迎来到九壹网。
搜索
您的当前位置:首页浙江财经学院vfp改错题题目

浙江财经学院vfp改错题题目

来源:九壹网


25、本程序在屏幕上显示如下图形: 1 1 2 1 2 3

1 2 3 4 1 2 3 4 5

SET TALK OFF CLEA K=1

DO WHIL K<=5 C=1

******1****** DO WHIL C<=5 ******2****** ? C C=C+1 ENDDO ?

******3****** K=K-1 ENDDO

SET TALK ON

24.本程序用于输入一个表名,若表存在则打开表,并显示其各个字段名。

说明:******N******标注的下一句有错,改正错误并调试运行。不能删除******N******。 SET TALK OFF CLEAR

DO WHILE .T.

ACCEPT \"请输入表名:(不含扩展名)\" TO FNAME ******1******

IF .NOT.FILE(FNAME) WAIT \"此表不存在!\" ELSE

USE &FNAME ZDSM=FCOUNT() ******2******

? \"此表中的字段有:\"+ZDSM+\"个\" FOR I=1 TO ZDSM ? STR(I)+\" \" ******3****** ?? NAME(I) ENDFOR ENDIF

WAIT \"继续否?(Y/N)\" TO YN IF UPPER(YN)=\"N\" EXIT ENDIF ENDDO

SET TALK ON

23、本程序实现指定表指定条件的任意查询功能。 SET TALK OFF CLEAR

ACCEPT \"请输入表名:(扩展名略)\" TO FNAME ******1******

IF .NOT.FILE(FNAME) WAIT \"此表不存在!\" ELSE

USE (FNAME) ZDSM=FCOUNT()

? \"此表中的字段有:\"+STR(ZDSM)+\"个\" FOR I=1 TO ZDSM ? STR(I)+\" \" ?? FIELD(I) ******2****** ENDDO ENDIF

ACCEPT \"请输入显示表信息的条件表达式:\" TO EXP ******3****** LIST FOR EXP USE

SET TALK ON

22、本程序实现:从键盘输入学生的学号,计算该生的平均成绩,并说明成绩的档次(优、良、中、及格和不及格)。 SET TALK OFF CLEAR USE 成绩

C=\"不及格 及格 中 良 优\" ******1******

INPUT \"输入学号=\" TO XH LOCATE FOR 学号=XH IF FOUND()

******2******

TOTAL 成绩 TO CJ IF CJ<60 R=0

ELSE

R=INT(CJ/10)-5 ENDIF

******3****** DC=STR(C,6) ? XH,CJ,DC ELSE

? '查无此人!' ENDIF USE

SET TALK ON

21、本程序用于计算S=1+2+3+„+N的和。 SET TALK OFF CLEAR

******1******

ACCEPT “N=” TO N S=0 I=0

******2****** DO WHILE I<=N I=I+1 S=S+I ENDDO

******3******

? “1+2+3+„+”+N+”=”+S SET TALK ON

20.、本程序将成绩表中成绩小于60分的学号、课程号及成绩显示出来。 SET TALK OFF CLEAR USE 成绩

? '------------------------------------------' ? ' 不及格学生名单 ' ? '------------------------------------------' ? '学号 课程号 成绩' ******1****** GO BOTTOM

DO WHILE .NOT.EOF() IF 成绩<60

******2******

? 学号+SPACE(5)+课程号+SPACE(5)+成绩 ENDIF SKIP

ENDDO

? '---------------------------------------------' ******3******

? '当前日期'+CTOD(DATE()) USE

SET TALK ON 19、本程序实现:输入3个正数,判定是否构成一个三角形,如果构成一个三角形,则返回.T.,否则返回.F.。另外通过参数的引用将三角形的面积传回。 *主程序

SET TALK OFF CLEAR

INPUT 'X1=' TO X1 INPUT 'X2=' TO X2 INPUT 'X3=' TO X3 ******1******

? TARER(X1,X2,X3)

?\"三角形面积为:\"+ALLTRIM(STR(X1,19,2)) SET TALK ON *自定义函数

FUNCTION TARER ******2****** PARAMETERS A,B ******3****** IF A>B>C

S=(A+B+C)/2

A=SQRT(S*(S-A)*(S-B)*(S-C)) RETURN .T. ELSE A=0

RETURN .F. ENDIF

18、本程序比较从键盘输入的若干个数的大小,并输出其中的最大数和最小数。 SET TALK OFF CLEAR

INPUT ‘请输入一个数:' TO M ******1***** STORE 0 TO D,X DO WHILE .T.

INPUT '请再输入一个数:' TO N IF DIF X>N X=N ENDIF YN='A'

******2*****

DO WHILE UPPER(YN)

WAIT '是否继续(Y/N)' TO YN ENDDO

******3****** IF LOWER(YN)='Y' EXIT ENDIF ENDDO

? '最大的数是:', D ? '最小的数是:', X SET TALK ON

17、本程序实现:对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码1的个数为2)。 SET TALK OFF CLEAR

INPUT '输入数值=' TO M INPUT '输入数码=' TO N YSM=M S=0

DO WHILE .T. ******1****** Y=MOD(M/10) IF Y=N S=S+1 ENDIF

******2****** M=INT(M/N) IF M=0

******3****** LOOP ENDIF ENDDO

?ALLTRIM(STR(YSM,19))+\"中包含数码\"+STR(N,1)+\"共\"+ALLTRIM(STR(S,19))+\"个。\" SET TALK ON

16、本程序输出一个对角线上元素为0,其它元素为1的6*6阶方阵。输出时每个元素占2个字符。

SET TALK OFF CLEAR

******1****** FUNCTION A(6,6) FOR I=1 TO 6

FOR J=1 TO 6 ******2****** IF I=J A(I,J)=0 ELSE

A(I,J)=1 ENDIF ENDFOR ENDFOR

FOR I=1 TO 6

FOR J=1 TO 6 ******2****** ?A(I,J) ENDFOR ?

ENDFOR

SET TALK ON

15、对任意一个正数值型数据(该数可有小数若干位,整数部分不超过12位)自动进行小数部分四舍五入取2位,并将其转换为中文大写金额. SET TALK OFF CLEAR

C1=\"零壹贰叁肆伍陆柒捌玖\"

C2=\"分角元拾佰仟万拾佰仟亿拾佰仟\" INPUT '输入一个正数=' TO Y ******1****** Y=STR(Y,2) Y=Y*100 I=1

D=SPACE(0) DO WHILE Y>0 P=MOD(Y,10) ******2******

D=SUBSTR(C1,2*P-1,2)+SUBSTR(C2,2*I-1,2)+D I=I+1

******3****** Y=INT(Y,10) ENDDO

?\"转换的结果是:\"+D SET TALK ON

14、将给定的正整数的值分解因子,并输出各个质数因子(如24的质数因子有2、2、2和3)(如果一个质数是某个数的约数,那么这个质数是这个数的质数因子) SET TALK OFF CLEAR

******1******

ACCEPT 'M=' TO M

IF INT(M)!=M OR ABS(M)!=M ? '输入的数据不符合题目要求!' ******2****** ENDIF I=2

? STR(M)+'的质数因子有:' DO WHILE I<=M IF M%I=0 ?? STR(I,6) ******3****** M=INT(M,I) LOOP ENDIF I=I+1 ENDDO ENDIF

SET TALK ON

13、本程序是在屏幕上打印如下图形: 9 8 7 6 5 4 3 9 8 7 6 5 9 8 7 9

SET TALK OFF CLEAR K=1

DO WHILE K<=4 C=1

******1****** DO WHILE C<=4

?? STR(10-C,3) C=C+1 ENDDO

******2****** C=C+1 K=K+1 ******3****** ENDFOR

SET TALK ON

12、对成绩.DBF(其中包含\"学号\"字段,并且以\"学号\"为关键字建立了索引标识“学号”)中学号相同的重复记录进行逻辑删除。 SET TALK OFF CLEAR

SET DELETED ON ******1****** USE 成绩

DO WHILE NOT EOF() XH=学号 SKIP

******2******

DO WHILE .NOT.EOF() DELETE

******3****** CONTINUE ENDDO ENDDO LIST USE

SET TALK ON

11、本程序输入一个一位数值(0-9),并把它转化为中文大写数字。 SET TALK OFF CLEAR

X='零壹贰叁肆伍陆柒捌玖' ******1******

DO WHILE NOT EOF() INPUT 'N=' TO N ******2****** S=STUFF(X,N,2) ?STR(N,1)+\"--->\"+S

WAIT '是否继续(Y/N)' TO T ******3******

IF UPPER(T)='n' EXIT ENDIF ENDDO

SET TALK ON

10、本程序求S=K!+„+M!(KINPUT 'K=' TO K INPUT 'M=' TO M STORE 0 TO S,A I=K

DO WHILE I<=M ******1****** DO SUB

******2****** S=S+P I=I+1 ENDDO ? S

SET TALK ON PROC SUB PARA P,N

STOR 1 TO P,L ******3****** DO WHILE L<=I P=P*L L=L+1 ENDDO RETU

9.本程序用以判断输入的字符串是否是回文(回文是从左到右和从右到左读时都一样的一个字符串,不论大小写字母)。 SET TALK OFF CLEAR

C=SPACE(0)

ACCEPT '请输入字符串=' TO ST ******1****** I=LEFT(ST,1) J=1

DO WHILE J<=I Q=SUBST(ST,J,1) ******2******

C=C+Q J=J+1 ENDDO

******3****** IF ST=C

? ST,'是回文' ELSE

? ST,'不是回文' ENDIF

SET TALK ON

8.求3→200之间的素数。 SET TALK OFF CLEAR

FOR M=3 TO 200 ******1****** FOR N=1 TO M ******2****** IF M/2=INT(M/2) EXIT ENDIF ENDFOR ******3****** IF N>M ?? M ENDIF ENDFOR

SET TALK ON

7.本程序显示下列的九九乘法表 1 2 3 4 5 6 7 8 9 1 2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 9 18 27 36 45 54 63 SET TALK OFF CLEAR

FOR I=1 TO 9 ******1******

72 81 ?I

ENDFOR I=1

DO WHILE I<=9 ?

******2****** FOR J=1 TO 9 ?? STR(I*J,4) ENDFOR I=I+1

******3****** ENDFOR

SET TALK ON

6.程序是显示输出给定行数的对称菱形图案,如下图所示。

SET TALK OFF CLEAR

INPUT \"N=\" TO N &&输入5 FOR I=1 TO N *******1****** ?SPACE(N-I) *******2****** FOR J=1 TO N

??CHR(ASC(\"A\")+I-1) ENDFOR ENDFOR

FOR P=N-1 TO 1 STEP -1 ?SPACE(N-P+1) *******2******

FOR K=1 TO 2*N-1 ??CHR(ASC('A')+P-1) ENDFOR ENDFOR

SET TALK ON

5.统计显示“课程”表中所有不同学期考试课和考查课的总学分数。输出格式如下:

学期 考试课总学分 考查课总学分 *************************************** 1 11 3

   set talk off clear use 课程

index on 开课学期 to kkxq

?\"学期 考试课总学分 考查课总学分\" ?\"*******************************************\" do while .not.eof() xq=开课学期 store 0 to ks,kc *******1****** do while .T. if 考查标志=\"1\" *******2****** kC=kC+学分数 else kc=kc+学分数 endif

*******3****** CONTINUE enddo ?xq+str(ks,19,2)+str(kc,19,2) enddo use

set talk off

4.输出3~M(M为正整数,从键盘输入)之间的素数和素数的个数。 SET TALK OFF CLEAR

INPUT \"M=\" TO M K=0

FOR X=3 TO M FOR N=2 TO X-1 *******1****** IF X/N=0 EXIT ENDIF ENDFOR

*******2****** IF N>X ?? X

*******3****** K=K+X ENDIF ENDFOR

?\"共\"+ALLTRIM(STR(K))+\"个素数\" SET TALK ON

3.用带参调用实现: M!/(M-N)!*N!

SET TALK OFF CLEAR

INPUT \" M=\" TO M INPUT \" N=\" TO N MJ=M

*******1****** DO JC NJ=N

DO JC WITH NJ *******2****** MNJ=0

DO JC WITH MNJ ? \" S=\" ,MJ/(NJ*MNJ) SET TALK ON PROCEDURE JC PARAMETERS X T=1

FOR I=1 TO X T=T*I ENDFOR

*******3****** X=i

RETURN

2.求x1 + x2 + x3 + x4 ++ xn的值。n,x从键盘输入。 set talk off clear

input \"n=\" to n input \"x=\" to x *******1****** s=1 t=1 I=1

DO WHILE I<=n *******2******

t=s*x s=s+t I=I+1

*******3****** endFOR ?\"s=\set talk off

1.求当1!+ 3!+ 5!++ n!的值不超过1020时的临界值及n的值。 set talk off clear s=0 n=1

*******1****** do while I*******2****** t=i*i endfor s=s+t

*******3****** n=n+1 enddo ?\"n=\ set talk on

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务