VFP程序题(已改).doc

上传人:豆**** 文档编号:33470184 上传时间:2022-08-11 格式:DOC 页数:30 大小:174.50KB
返回 下载 相关 举报
VFP程序题(已改).doc_第1页
第1页 / 共30页
VFP程序题(已改).doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《VFP程序题(已改).doc》由会员分享,可在线阅读,更多相关《VFP程序题(已改).doc(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流VFP程序题(已改)【精品文档】第 30 页程 序 设 计 题 选1、求100以内最大的自然数N,使得从1开始的连续N个自然数的倒数之和小于3.5。SET TALK OFFCLEARS=0FOR N=1 TO 100 S=(S+1)/N 改正:S=S+1/N IF S=3.5 LOOP 改正:EXIT ENDIFENDFOR? N-1SET TALK ONRETURN 运行结果:182、 求100以内最小的自然数N,使得从1开始的连续N个自然数的倒数之和大于3.6。SET TALK OFFCLEARS=0FOR N=1 TO 100S=S+1/NIF S

2、3.6 LOOP 改正:EXITENDIFENDFOR? NSET TALK ONRETURN运行结果:213、求50以内最大的自然数N,使得从102开始的连续N个偶数之和小于3000。SET TALK OFFCLEARS=0FOR N=1 TO 50A=100+2*N S=S*A 改正:S=S+A IF S=3000 LOOP 改正:EXIT ENDIFENDFOR? N-1SET TALK ONRETURN运行结果:234、求50以内最小的自然数N,使得从102开始的连续N个偶数之和大于2000。SET TALK OFFCLEARS=0FOR N=1 TO 50A=102+2*N 改正:A

3、=100+2*NS=S+AIF S2000 LOOP 改正:EXITENDIFENDFOR? NSET TALK ONRETURN运行结果:175、 求出100以内使得算式1*2+2*3+N*(N+1)的值小于5000的最大的自然数N。SET TALK OFFCLEARS=0FOR N=1 TO 100A=N*(N+1)S=S+AIF S5000 EXITENDIFENDFOR? N 改正:? N-1SET TALK ONRETURN运行结果:236、 求出100以内使得算式1*2+2*3+N*(N+1)的值大于6000的最小的自然数N。SET TALK OFFCLEAR S=0FOR N=1

4、 TO 100 A=N*(N+1) S=S+A IF S6000 LOOP 改正:EXIT ENDIFENDFOR? NSET TALK ONRETURN运行结果:267、求出100以内使得算式1+(1+2)+(1+2+N)的值小于1000的最大的自然数N。SET TALK OFFCLEARS=0T=0FOR N=1 TO 100 S=S+N T=T+S IF T1000 EXIT ENDIFENDFOR? N 改正:? N-1SET TALK ONRETURN运行结果:178、 求出100以内最大的奇数N使得算式(1-1/2)+(1/3-1/4)+(1/N-1/(N+1)的值小于0.68。

5、SET TALK OFF CLEAR S=0 FOR N=1 TO 100 STEP 2 A=1/N-1/(N+1) S=S+A IF S0.68 EXIT ENDIF ENDFOR ? N-2 SET TALK ON RETURN 运行结果:359、某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。 SET TALK OFF CLEAR S=1 FOR N=2001 TO 2100 S=S*1.03 IF S=2 改正:IF S=2 LOOP 改正:EXIT ENDIF ENDFOR ? N SET TALK ON RETURN 运行结果:

6、20249、设等比数列:1,2,4,8,。求使得此数列的前N项之和大于100000的最小的自然数N。 SET TALK OFF CLEAR A=1 S=1 改正:S=0 FOR N=1 TO 100 S=S+A IF S100000 EXIT ENDIF A=2+A 改正:A=A*2 ENDFOR ? N SET TALK ON RETURN 运行结果:1710、设等比数列:1,2,4,8,。求使得此数列的前N项之和小于2345678的最大的自然数N。 SET TALK OFF CLEAR A=1 S=0 FOR N=1 TO 100 S=S+A IF S=2345678 EXIT ENDIF

7、 A=2+A 改正:A=A*2 ENDFOR ? N 改正:? N-1 SET TALK ON RETURN 运行结果:2111、求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。 SET TALK OFF CLEAR A=45678 N=0 FOR B=3 TO A STEP 2 IF MOD(B,A)=0 改正:IF MOD(A,B)=0 N=N+1 ENDIF ENDFOR ? B 改正:? N SET TALK ON RETURN 运行结果:712、求出20677和42067的最大公约数。 SET TALK OFF CLEAR A=20677 B=42067

8、 FOR D=1 TO A IF MOD(A,D)=0 AND MOD(B,D)=0 MAX=B 改正:MAX=D ENDIF ENDFOR ? D 改正:MAX SET TALK ON RETURN 运行结果:71313、求前1,100内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。 SET TALK OFF CLEAR S=0 FOR N=1 TO 100 IF MOD(N,6)=0 AND MOD(N,8)=0 改正:IF MOD(N,6)=0 OR MOD(N,8)=0 S=SQRT(S+N) 改正:S= S+SQRT(N) ENDIF ENDFOR

9、? ROUND(S,0) SET TALK ON RETURN 运行结果:16214、求所有符合算式AB*BA=2701的最小的两位数AB(即A*10+B)。其中A、B是19之间的一位整数。 SET TALK OFF CLEAR FOR X=11 TO 99 A=X/10 改正:A=INT(X/10) B=MOD(X,10) Y=10*A+B 改正:Y=10*B+A IF X*Y=2701 EXIT ENDIF ENDFOR ? X SET TALK ON RETURN 运行结果:3715、已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中大

10、于5000的最小的项。 SET TALK OFF CLEAR A=1 FOR N=0 TO 1000 A=A+N IF A5000 LOOP 改正:EXIT ENDIF ENDFOR ? N 改正:? A SET TALK ON RETURN 运行结果:505116、已知数列:1,2,4,7,11,16,,其规律是相邻两项之差依次是1,2,3,4,5,。试求出此数列中小于6000的最大的项。 SET TALK OFF CLEAR A=0 改正:A=1 FOR N=0 TO 1000 IF A+N6000 EXIT ENDIF A=A+N ENDFOR ? A SET TALK ON RETUR

11、N 运行结果:599617、已知数列F(N):F(1)=1,F(2)=4,当N=3,4,5,时,F(N)=3*F(N-1)-F(N-2)。试求出100以内最小的自然数N使得此数列的第N项大于87654321。 SET TALK OFF CLEAR DIMENSION F(100) F(1)=1 F(2)=4 FOR N=3 TO 100 F(N)=3*F(N-1)-F(N-2) IF F(N)87654321 LOOP 改正:EXIT ENDIF ENDFOR ? N SET TALK ON RETURN 运行结果:2018、求出100以内最大的自然数N,使得从1开始的连续N个自然数的立方之和

12、小于999999。 SET TALK OFF CLEAR S=0 FOR N=1 TO 100 A=N*N*N S=S+A IF S999999 改正:IF S678 EXIT ENDIF ENDFOR? NSET TALK ONRETURN运行结果:1320、设有用26个字母表示的26个表达式:A=1,B=1/(A+1),C=1/(B+2),Z=1/(Y+25)。试求出这26个字母中其值小于0.1的字母个数。SET TALK OFFCLEARLETT=1N=0FOR K=1 TO 26 改正:FOR K=1 TO 25 LETT=1/LETT+K 改正:LETT=1/(LETT+K) IF

13、LETT54321 N=N+1 ENDIF F1=F2 F2=F3 F3=F1 改正:F3=FENDFOR? NSET TALK ONRETURN“运行结果:523、已知一个由分数组成的数列:1/2,3/5,8/13,21/34,其特点是:从其中第2个分数起,每个分数的分子都是前一分数的分子分母之和而其分母都是其分子与前一分数的分母之和。试求出此数列的前25项中其值大于0.618的项数。SET TALK OFFCLEARF1=1F2=2N=0FOR K=1 TO 25 F=F1/F2 IF F0.618 N=N+1 ENDIF F1=F2 改正:F1=F1+F2 F2=F1 改正:F2=F1+

14、F2ENDFOR? NSET TALK ONRETURN运行结果:2024、回文指的是正读和反读都一样的一串字符,如121、1221。试求出1421,4112内所有回文数的和。SET TALK OFFCLEARS=0FOR X=1421 TO 4112 A=X/1000 改正:A=INT(X/1000) B=INT(X-A*1000)/100) C=INT(X-A*1000-B*100)/10) D=X-A*1000-B*100-C*10 IF A=D AND B=C S=S*X 改正:S=S+X ENDIFENDFOR? SSET TALK ONRETURN运行结果:7425025、求出12

15、34,6789内中间两位数字之和等于首尾两位数字之积的数的个数。SET TALK OFFCLEARN=0FOR X=1234 TO 6789 A=INT(X/1000) B=INT(X-A*1000)/100 改正:B=INT(X-A*1000)/100) C=INT(X-A*1000-B*100)/10 改正:C=INT(X-A*1000-B*100)/10) D=X-A*1000-B*100-C*10 IF B+C=A*D N=N+1 ENDIFENDFOR? NSET TALK ONRETURN运行结果:17526、将大于1000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后

16、,求前面20个数之和。SET TALK OFFCLEARS=0K=0X=1000DO WHILE K=20 改正:DO WHILE K20 X=X+1 IF MOD(X,4*6)=0 改正:IF MOD(X,4)=0 OR MOD(X,6)=0 S=S+X K=K+1 ENDIFENDDO? SSET TALK ONRETURN运行结果:2061027、若一个自然数恰好等于某个整数的平方,则称此数为完全平方数。如144是完全平方数,因为它等于12的平方。求1000,9999内所有完全平方数的和。SET TALK OFFCLEARS=0FOR X=1000 TO 3000 Y=SQRT(X) 改

17、正: Y=INT(SQRT(X) 或改下一语句为 IF X=INT(Y)*INT(Y) IF X=Y*Y S=S+X ENDIFENDFOR? X 改正:? SSET TALK ONRETURN运行结果:4353928、若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求2,99999内所有自同构数之和。(提示:若X是M位同构数,则X的平方除以10的M次方的余数就是X)SET TALK OFFCLEARS=0FOR X=2 TO 99999 Y=X*X M=LEN(LTRIM(STR(X) & 设X是M位数 IF MOD(Y

18、,10*M)=X 改正:IF MOD(Y,10*M)=X S=S+X ENDIFENDFOR? Y 改正:? SSET TALK ONRETURN运行结果:10111429、求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较大的一个数。(提示:设A0R=MOD(A,P)IF R=1N=1 改正:N=N+1ENDIFA=INT(A/P)ENDDO? NSET TALK ONRETURN运行结果:1332、4087求出将十进制整数98765432等值转换为二进制形式表示后其中数字0的个数。(提示:模拟人工计算的“2除取余”法)SET TALK OFFCLEARA=98765432P

19、=2N=0DO WHILE A=0 改正:DO WHILE A0R=MOD(A,P)IF R=0N=P+1 改正:N=N+1ENDIFA=INT(A/P)ENDDO? NSET TALK ONRETURN运行结果:1433、 求出将十进制整数99887766554等值转换为十六进制形式表示后其中字母C的个数。(提示:模拟人工计算的“16除取余”法)SET TALK OFFCLEARA=99887766554P=16N=0DO WHILE A=0R=MOD(A,P)IF R=11 改正:IF R=12N=N+R 改正:N=N+1ENDIFA=INT(A/P)ENDDO? NSET TALK ON

20、RETURN运行结果:234、对自然数A、B、C,若ABC且A*A+B*B=C*C,则称A,B,C为一组勾股弦数,其中A、B、C分别称为勾、股、弦。试求出弦为25000的勾股弦数组的个数。SET TALK OFFCLEARC=25000N=1 改正:N=0FOR A=1 TO CB=INT(SQRT(C*C-A*A)IF A*A+B*B=C*C 改正:IF A*A+B*B=C*C AND ABN=N+A 改正:N=N+1ENDIFENDFOR? NSET TALK ONRETURN运行结果:535、4094对自然数A、B、C,若ABC且A*A+B*B=C*C,则称A,B,C为一组勾股弦数,其中

21、A、B、C分别称为勾、股、弦。试求出弦为1300的勾股弦组数。SET TALK OFFCLEARC=1300N=0FOR A=1 TO CB1=SQRT(C*C-A*A)B=INT(B1)IF B=B1 改正:IF B=B1 AND ABN=N+B 改正:N=N+1ENDIFENDFOR? NSET TALK ONRETURN运行结果:740、求方程3X-7Y=1在条件|X|100且|Y|40下的整数解的个数。SET TALK OFFCLEARN=0FOR X=-99 TO 99Y=INT(3*X-1)/7)IF 3*X-7*Y=1 OR ABS(Y)40 改正: IF 3*X-7*Y=1 A

22、ND ABS(Y)40N=N+X 改正:N=N+1ENDIFENDFOR? NSET TALK ONRETURN运行结果:2641、求方程3X-7Y=1在条件|X|100且|Y|40下的所有整数解的|X|+|Y|的最大值。SET TALK OFFCLEARMAX=140 改正:MAX=0FOR X=-99 TO 99Y=INT(3*X-1)/7)Z=ABS(X+Y) 改正:Z=ABS(X)+ABS(Y)IF 3*X-7*Y=1 AND ABS(Y)Z 改正:IF 3*X-7*Y=1 AND ABS(Y)40 AND MAXZMAX=ZENDIFENDFOR? MAXSET TALK ONRET

23、URN运行结果:12742、求1001000内的第10个素数。(素质是指只能被1和本身整除的数)SET TALK OFFCLEAN=0K=0FOR I=100 TO 1000F=1FOR J=2 TO I 改正:FOR J=2 TO I-1IF MOD(I,J)=0F=0EXITENDIFENDFORIF F=1N=IK=K+I 改正:K=K+1IF K=10EXITENDIFENDIFENDFOR? NRETURN运行结果:14943、对自然数A、B、C,若ABC且A*A+B*B=C*C,则称A,B,C为一组勾股弦数,其中A、B、C分别称为勾、股、弦。试求出弦为2500的勾股数组中ABC的值

24、最大为多少?。SET TALK OFFCLEARC=2500MAX=0FOR A=1 TO CB=INT(SQRT(C*2-A*2) 改正:B=INT(SQRT(C*2-A*2)IF A*A+B*B=C*C AND AA+B+C 改正:IF MAXX+Y 改正:IF MAXX+YMAX=X+YENDIFENDIFENDFORENDFOR? MAXSET TALK ONRETURN运行结果:4947、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求100,300之间能被其因子数目整除的数的个数。SET TALK OFFCLEAC=0FOR N=

25、100 TO 300S=0FOR I=1 TO N -1 改正:FOR I=1 TO NIF INT(I/10)=0 改正:IF INT(I/10)=I/10 或改为 IF MOD(I,10)=0S=S+1ENDIFENDFORIF MOD(N,S)=0C=C+1ENDIFENDFOR? CSET TALK ONRETURN运行结果:1948、分子分母为正整数,分子小于分母的分数称为真分数。对于分数的分子分母取值范围为 50,90 且分母能被3整除的真分数共有多少个.SET TALK OFFCLEAN=1 改正:N=0FOR A=50 TO 90FOR B=50 TO 90IF MOD(B,3

26、)=0 改正:IF MOD(B,3)=0 AND ABN=N+1ENDIFENDFORENDFOR? NSET TALK ONRETURN运行结果:28749、分子分母为正整数,分子小于分母的分数称为真分数。对于分数的分子分母取值范围为 50,90 且分母能被3整除、分子能被5整除的真分数共有多少个.SET TALK OFFCLEAN=1 改正:N=0FOR A=50 TO 89FOR B=50 TO 90IF MOD(B,3)=0 改正:IF MOD(B,3)=0 AND MOD(A,5)=0 AND A0R=INT(A/B) 改正:R=MOD(A,B)B=R 改正:A=BA=B 改正:B=

27、RENDDO? ASET TALK ONRETURN运行结果:7353、利用分解质因数的方法求出18000中含有质因数的个数(相同的重复计数,例如,180中含有5个质因数:2、2、3、3、5)。SET TALK OFFCLEARX=18000N=0K=1 改正:K=2DO WHILE X1IF MOD(X,K)=0N=N+1X=INT(X/K)EXIT 改正:LOOPENDIFK=K+1ENDDO? NSET TALK ONRETURN运行结果:354、分子分母为正整数,分子小于分母且分子分母无公因数的分数称为最简真分数。对于分数的分母取值范围为 50,90 时的最简真分数共有多少个.SET

28、TALK OFFCLEAN=0FOR A=2 TO 89 &分子FOR B=50 TO 90&分母IF AB 改正:IF ABGYZ=1 &公因子FOR X=2 TO AIF MOD(A,X)=0 改正:IF MOD(A,X)=0 AND MOD(B,X)=0GYZ=XEXITENDIFENDFORIF GYZ=1N=N+1ENDIFENDIFENDFORENDFOR? NSET TALK ONRETURN运行结果:168555、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是四位双平方数。例如: 由于7396=862,且7+3+9+6=25=52,则称7396是四位双平方数。求所有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com