VFP详解及题目(专升本专用) 下载本文

N1=N T=MOD(M,N) DO WHILE T<>0 M=N N=T

T=MOD(M,N)

ENDDO

?\ 最大公约数为\

?\ 最小公倍数为\

17. 输出100 至 200之间所有能被5 或 7整除的整数,并输出它们的和。 SUM=0

FOR I=100 TO 200

IF MOD(I,5)=0 OR MOD(I,7)=0 SUM=SUM+I ?I ENDIF ENDFOR

?“SUM=”,SUM

18. 求 1*2+3*4+5*6+??+21*22 SUM=0

FOR I=1 TO 21 STEP 2

SUM=SUM+I*(I+1) ENDFOR

?\19. 求 N的阶乘。(N的值由键盘输入,应小于20 ) INPUT TO N P=1

FOR I=1 TO N

P=P*I ENDFOR

?N,”!=”,P

20. 打印ASCII中所有可打印字符(一行打印10个字符,字符间留三个空) CLEAR N=0

FOR I=33 TO 126

IF MOD(N,10)=0

?SPACE(3)+CHR(I) ELSE

??SPACE(3)+CHR(I) ENDIF N=N+1 ENDFOR

21. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,如:6=1+2+3,故6是完数。

编程输出1000以内的所有完数。

FOR I=2 TO 1000 S=0 FOR J=1 TO I-1 IF MOD(I,J)=0 S=S+J ENDIF ENDFOR

IF S=I

?I,\是完数\

ENDIF ENDFOR

22. 输入一个字符串,判断其中有多少个大写字母、小写字母、数字字符、空格字符以及其他

特殊字符?

CLEAR

STORE 0 TO UPPER,LOWER,DIGIT,SPACE,SPECIAL INPUT “输入一个字符串” TO ST L=LEN(ST) FOR I=1 TO L CH=SUBST(ST,I,1)

DO CASE

CASE ASC(CH)>=65 AND ASC(CH)<=90

UPPER=UPPER+1

CASE ASC(CH)>=48 AND ASC(CH)<=57 DIGIT=DIGIT+1

CASE ASC(CH)>=97 AND ASC(CH)<=122 LOWER=LOWER+1 CASE ASC(CH) =32 SPACE=SPACE+1 OTHERWISE

SPECIAL=SPECIAL+1

ENDCASE ENDFOR

? “字符串中大写字母的个数是”, UPPER ? “字符串中小写字母的个数是”, LOWER ? “字符串中数字字符的个数是”, DIGIT ? “字符串中空格字符的个数是”, SPACE ? “字符串中其他字符的个数是”,SPECIAL 23. 求如下级数前N项之和(X和N的值由键盘输入)

234n1?x?S=1

x2?x3?x4????????xn

INPUT TO X INPUT TO N

FOR I=1 TO N-1 S=S+X^I/I

ENDFOR

?”SUM=”,S

24. 输入一个大于2的整数,判断是否为素数? INPUT “请输入一个大于2的整数” TO J M=J-1

FLAG=.T.

FOR I=2 TO M IF MOD(J,I)=0

FLAG=.F. EXIT ENDIF ENDFOR IF FLAG

? J,”是素数” ELSE

?J,”不是素数”

ENDIF

25. 输出3到100之间所有的素数,并求其总和。 SUM=0

FOR J=3 TO 100 STEP 2

M=INT(SQRT(J))

FLAG=.T.

FOR I=2 TO M

IF MOD(J,I)=0

FLAG=.F. EXIT ENDIF ENDFOR IF FLAG

? J

SUM=SUM+J ENDIF ENDFOR

?”素数之和为”,SUM

26. 输入一个字符串,按其倒序输出。

INPUT \L=LEN(ST)

FOR I=L TO 1 STEP -1

??SUBSTR(ST,I,1) ENDFOR ?

RETURN

27. 从键盘输入一个二进制数,将其转换成等值的十进制数。

(1001001)B=1*2+1*2+1*2=64+8+1=73

SET TALK OFF CLEAR S=0

ACCEPT \L=LEN(N) FOR I=1 TO L

S=S+VAL(SUBSTR(N,I,1))*2**(L-I) ENDFOR ?\SET TALK ON CANCEL

630