VFP程序题.docx
- 文档编号:9505034
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:68
- 大小:28.66KB
VFP程序题.docx
《VFP程序题.docx》由会员分享,可在线阅读,更多相关《VFP程序题.docx(68页珍藏版)》请在冰豆网上搜索。
VFP程序题
程序设计题选
1、求100以内最大的自然数N,使得从1开始的连续N个自然数的倒数之和小于。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
S=(S+1)/N改正:
S=S+1/N
IFS>=
LOOP改正:
EXIT
ENDIF
ENDFOR
N-1
SETTALKON
RETURN
"运行结果:
18"
2、求100以内最小的自然数N,使得从1开始的连续N个自然数的倒数之和大于。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
S=S+1/N
IFS<=改正:
IFS>
LOOP改正:
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
21"
3、求50以内最大的自然数N,使得从102开始的连续N个偶数之和小于3000。
SETTALKOFF
CLEAR
S=0
FORN=1TO50
A=100+2*N
S=S*A改正:
S=S+A
IFS>=3000
LOOP改正:
EXIT
ENDIF
ENDFOR
N-1
SETTALKON
RETURN
"运行结果:
23"
4、求50以内最小的自然数N,使得从102开始的连续N个偶数之和大于2000。
SETTALKOFF
CLEAR
S=0
FORN=1TO50
A=102+2*N改正:
A=100+2*N
S=S+A
IFS>2000
LOOP改正:
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
17"
5、求出100以内使得算式1*2+2*3+…+N*(N+1)的值小于5000的最大的自然数N。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
A=N*(N+1)
S=S+A
IFS<5000改正:
IFS>5000
EXIT
ENDIF
ENDFOR
N改正:
N-1
SETTALKON
RETURN
"运行结果:
23"
6、求出100以内使得算式1*2+2*3+…+N*(N+1)的值大于6000的最小的自然数N。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
A=N*(N+1)
S=S+A
IFS<=6000改正:
IFS>6000
LOOP改正:
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
26"
7、求出100以内使得算式1+(1+2)+…+(1+2+…+N)的值小于1000的最大的自然数N。
SETTALKOFF
CLEAR
S=0
T=0
FORN=1TO100
S=S+N
T=T+S
IFT<1000改正:
IFT>1000
EXIT
ENDIF
ENDFOR
N改正:
N-1
SETTALKON
RETURN
"运行结果:
17"
8、求出100以内最大的奇数N使得算式(1-1/2)+(1/3-1/4)+…+(1/N-1/(N+1))的值小于。
SETTALKOFF
CLEAR
S=0
FORN=1TO100STEP2
A=1/N-1/(N+1)
S=S+A
IFS<改正:
IFS>
EXIT
ENDIF
ENDFOR
N-2
SETTALKON
RETURN
"运行结果:
35"
9、某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。
SETTALKOFF
CLEAR
S=1
FORN=2001TO2100
S=S*
IFS=2改正:
IFS>=2
LOOP改正:
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
2024"
9、设等比数列:
1,2,4,8,…。
求使得此数列的前N项之和大于100000的最小的自然数N。
SETTALKOFF
CLEAR
A=1
S=1改正:
S=0
FORN=1TO100
S=S+A
IFS>100000
EXIT
ENDIF
A=2+A改正:
A=A*2
ENDFOR
N
SETTALKON
RETURN
"运行结果:
17"
10、设等比数列:
1,2,4,8,…。
求使得此数列的前N项之和小于2345678的最大的自然数N。
SETTALKOFF
CLEAR
A=1
S=0
FORN=1TO100
S=S+A
IFS>=2345678
EXIT
ENDIF
A=2+A改正:
A=A*2
ENDFOR
N改正:
N-1
SETTALKON
RETURN
"运行结果:
21"
11、求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。
SETTALKOFF
CLEAR
A=45678
N=0
FORB=3TOASTEP2
IFMOD(B,A)=0改正:
IFMOD(A,B)=0
N=N+1
ENDIF
ENDFOR
B改正:
N
SETTALKON
RETURN
"运行结果:
7"
12、求出20677和42067的最大公约数。
SETTALKOFF
CLEAR
A=20677
B=42067
FORD=1TOA
IFMOD(A,D)=0ANDMOD(B,D)=0
MAX=B改正:
MAX=D
ENDIF
ENDFOR
D改正:
MAX
SETTALKON
RETURN
"运行结果:
713"
13、求前[1,100]内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
IFMOD(N,6)=0ANDMOD(N,8)=0改正:
IFMOD(N,6)=0ORMOD(N,8)=0
S=SQRT(S+N)改正:
S=S+SQRT(N)
ENDIF
ENDFOR
ROUND(S,0)
SETTALKON
RETURN
"运行结果:
162"
14、求所有符合算式AB*BA=2701的最小的两位数AB(即A*10+B)。
其中A、B是1~9之间的一位整数。
SETTALKOFF
CLEAR
FORX=11TO99
A=X/10改正:
A=INT(X/10)
B=MOD(X,10)
Y=10*A+B改正:
Y=10*B+A
IFX*Y=2701
EXIT
ENDIF
ENDFOR
X
SETTALKON
RETURN
"运行结果:
37"
15、已知数列:
1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。
试求出此数列中大于5000的最小的项。
SETTALKOFF
CLEAR
A=1
FORN=0TO1000
A=A+N
IFA>5000
LOOP改正:
EXIT
ENDIF
ENDFOR
N改正:
A
SETTALKON
RETURN
"运行结果:
5051"
16、已知数列:
1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。
试求出此数列中小于6000的最大的项。
SETTALKOFF
CLEAR
A=0改正:
A=1
FORN=0TO1000
IFA+N<6000改正:
IFA+N>6000
EXIT
ENDIF
A=A+N
ENDFOR
A
SETTALKON
RETURN
"运行结果:
5996"
17、已知数列{F(N)}:
F
(1)=1,F
(2)=4,当N=3,4,5,…时,F(N)=3*F(N-1)-F(N-2)。
试求出100以内最小的自然数N使得此数列的第N项大于。
SETTALKOFF
CLEAR
DIMENSIONF(100)
F
(1)=1
F
(2)=4
FORN=3TO100
F(N)=3*F(N-1)-F(N-2)
IFF(N)<=改正:
IFF(N)>
LOOP改正:
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
20"
18、求出100以内最大的自然数N,使得从1开始的连续N个自然数的立方之和小于999999。
SETTALKOFF
CLEAR
S=0
FORN=1TO100
A=N*N*N
S=S+A
IFS<999999改正:
IFS<999999
EXIT
ENDIF
ENDFOR
N改正:
N-1
SETTALKON
RETURN
运行结果:
44
19、一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最小的自然数N,使得此球从开始下落至第N次着地时在垂直方向所经过的总路程超过678米。
SETTALKOFF
CLEAR
H=100
S=0改正:
S=100
FORN=2TO100
H=H*3/4
S=S+H改正:
S=S+2*H
IFS>678
EXIT
ENDIF
ENDFOR
N
SETTALKON
RETURN
运行结果:
13
20、设有用26个字母表示的26个表达式:
A=1,B=1/(A+1),C=1/(B+2),…,Z=1/(Y+25)。
试求出这26个字母中其值小于的字母个数。
SETTALKOFF
CLEAR
LETT=1
N=0
FORK=1TO26改正:
FORK=1TO25
LETT=1/LETT+K改正:
LETT=1/(LETT+K)
IFLETT<
N=N+1
ENDIF
ENDFOR
N
SETTALKON
RETURN
运行结果:
16
21、求所有符合算式AB*BA=3627的最大的两位数AB(即A*10+B)。
其中A、B是1~9之间的一位整数。
SETTALKOFF
CLEAR
FORX=11TO99
A=INT(X/10)
B=MOD(X,10)
Y=A*10+B改正:
Y=A+10*B
IFX*Y=3627
EXIT
ENDIF
ENDFOR
X改正:
Y
SETTALKON
RETURN
“运行结果:
93"
22、设一个数列的前3项都是1,从第4项开始,每一项都是其前3项之和。
试求出此数列的前25项中大于54321的项数。
SETTALKOFF
CLEAR
STORE1TOF1,F2,F3
N=0
FORK=1TO25改正:
FORK=4TO25或FORK=1TO22
F=F1+F2+F3
IFF>54321
N=N+1
ENDIF
F1=F2
F2=F3
F3=F1改正:
F3=F
ENDFOR
N
SETTALKON
RETURN
“运行结果:
5"
23、已知一个由分数组成的数列:
1/2,3/5,8/13,21/34,…,其特点是:
从其中第2个分数起,每个分数的分子都是前一分数的分子分母之和而其分母都是其分子与前一分数的分母之和。
试求出此数列的前25项中其值大于的项数。
SETTALKOFF
CLEAR
F1=1
F2=2
N=0
FORK=1TO25
F=F1/F2
IFF>
N=N+1
ENDIF
F1=F2改正:
F1=F1+F2
F2=F1改正:
F2=F1+F2
ENDFOR
N
SETTALKON
RETURN
"运行结果:
20"
24、回文指的是正读和反读都一样的一串字符,如121、1221。
试求出[1421,4112]内所有回文数的和。
SETTALKOFF
CLEAR
S=0
FORX=1421TO4112
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
IFA=DANDB=C
S=S*X改正:
S=S+X
ENDIF
ENDFOR
S
SETTALKON
RETURN
"运行结果:
74250"
25、求出[1234,6789]内中间两位数字之和等于首尾两位数字之积的数的个数。
SETTALKOFF
CLEAR
N=0
FORX=1234TO6789
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
IFB+C=A*D
N=N+1
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
175"
26、将大于1000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。
SETTALKOFF
CLEAR
S=0
K=0
X=1000
DOWHILEK<=20改正:
DOWHILEK<20
X=X+1
IFMOD(X,4*6)=0改正:
IFMOD(X,4)=0ORMOD(X,6)=0
S=S+X
K=K+1
ENDIF
ENDDO
S
SETTALKON
RETURN
"运行结果:
20610"
27、若一个自然数恰好等于某个整数的平方,则称此数为完全平方数。
如144是完全平方数,因为它等于12的平方。
求[1000,9999]内所有完全平方数的和。
SETTALKOFF
CLEAR
S=0
FORX=1000TO3000
Y=SQRT(X)改正:
Y=INT(SQRT(X))或改下一语句为IFX=INT(Y)*INT(Y)
IFX=Y*Y
S=S+X
ENDIF
ENDFOR
X改正:
S
SETTALKON
RETURN
"运行结果:
43539"
28、若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。
如5和76都是自同构数,因为它们的平方分别是25和5776。
求[2,99999]内所有自同构数之和。
(提示:
若X是M位同构数,则X的平方除以10的M次方的余数就是X)
SETTALKOFF
CLEAR
S=0
FORX=2TO99999
Y=X*X
M=LEN(LTRIM(STR(X)))&&设X是M位数
IFMOD(Y,10*M)=X改正:
IFMOD(Y,10**M)=X
S=S+X
ENDIF
ENDFOR
Y改正:
S
SETTALKON
RETURN
运行结果:
101114
29、求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较大的一个数。
(提示:
设A<=B,当A越大时A+B越小)
SETTALKOFF
CLEAR
C=54321
K=INT(SQRT(C))
FORA=1TOK
B=INT(C)/A改正:
B=INT(C/A)
IFA*B=C
MAX=A改正:
MAX=B
ENDIF
ENDFOR
MAX
SETTALKON
RETURN
"运行结果:
953"
30、设A=123,B=541,求A/B的精确值中小数点后40位数字中数字1的个数。
(提示:
基于人工计算的思想)
SETTALKOFF
CLEAR
A=123
B=541
N=0
FORK=1TO40
A=A+0改正:
A=A*10
Q=INT(A)/B改正:
Q=INT(A/B)
IFQ=1
N=N+1
ENDIF
A=MOD(A,B)
ENDFOR
N
SETTALKON
RETURN
"运行结果:
3"
31、求出将十进制整数等值转换为二进制形式表示后其中数字1的个数。
(提示:
模拟人工计算的“2除取余”法)
SETTALKOFF
CLEAR
A=
P=2
N=0(增加一条)
DOWHILEA>0
R=MOD(A,P)
IFR=1
N=1改正:
N=N+1
ENDIF
A=INT(A/P)
ENDDO
N
SETTALKON
RETURN
运行结果:
13
32、4087求出将十进制整数等值转换为二进制形式表示后其中数字0的个数。
(提示:
模拟人工计算的“2除取余”法)
SETTALKOFF
CLEAR
A=
P=2
N=0
DOWHILEA=0改正:
DOWHILEA>0
R=MOD(A,P)
IFR=0
N=P+1改正:
N=N+1
ENDIF
A=INT(A/P)
ENDDO
N
SETTALKON
RETURN
运行结果:
14
33、求出将十进制整数554等值转换为十六进制形式表示后其中字母C的个数。
(提示:
模拟人工计算的“16除取余”法)
SETTALKOFF
CLEAR
A=554
P=16
N=0
DOWHILEA=0
R=MOD(A,P)
IFR=11改正:
IFR=12
N=N+R改正:
N=N+1
ENDIF
A=INT(A/P)
ENDDO
N
SETTALKON
RETURN
"运行结果:
2"
34、对自然数A、B、C,若A
试求出弦为25000的勾股弦数组的个数。
SETTALKOFF
CLEAR
C=25000
N=1改正:
N=0
FORA=1TOC
B=INT(SQRT(C*C-A*A))
IFA*A+B*B=C*C改正:
IFA*A+B*B=C*CANDA
N=N+A改正:
N=N+1
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
5"
35、4094对自然数A、B、C,若A
试求出弦为1300的勾股弦组数。
SETTALKOFF
CLEAR
C=1300
N=0
FORA=1TOC
B1=SQRT(C*C-A*A)
B=INT(B1)
IFB=B1改正:
IFB=B1ANDA
N=N+B改正:
N=N+1
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
7"
40、求方程3X-7Y=1在条件|X|<100且|Y|<40下的整数解的个数。
SETTALKOFF
CLEAR
N=0
FORX=-99TO99
Y=INT((3*X-1)/7)
IF3*X-7*Y=1ORABS(Y)<40改正:
IF3*X-7*Y=1ANDABS(Y)<40
N=N+X改正:
N=N+1
ENDIF
ENDFOR
N
SETTALKON
RETURN
"运行结果:
26"
41、求方程3X-7Y=1在条件|X|<100且|Y|<40下的所有整数解的|X|+|Y|的最大值。
SETTALKOFF
CLEAR
MAX=140改正:
MAX=0
FORX=-99TO99
Y=INT((3*X-1)/7)
Z=ABS(X+Y)改正:
Z=ABS(X)+ABS(Y)
IF3*X-7*Y=1ANDABS(Y)<40ANDMAX>Z改正:
IF3*X-7*Y=1ANDABS(Y)<40ANDMAX MAX=Z ENDIF ENDFOR MAX SETTALKON RETURN 运行结果: 127 42、求100-1000内的第10个素数。 (素质是指只能被1和本身整除的数) SETTALKOFF CLEA N=0 K=0 FORI=100TO1000 F=1 FORJ=2TOI改正: FORJ=2TOI-1 IFMOD(I,J)=0 F=0 EXIT ENDIF ENDFOR IFF=1 N=I K=K+I改正: K=K+1 IFK=10 EXIT ENDIF ENDIF ENDFOR N RETURN 运行结果: 149 43、对自然数A、B、C,若A 试求出弦为2500的勾股数组中A+B+C的值最大为多少。 SETTALKOFF CLEAR C=2500 MAX=0 FORA=1TOC B=INT(SQRT(C*2-A*2))改正: B=INT(SQRT(C**2-A**2)) IFA*A+B*B=C*CANDA IFMAX>A+B+C改正:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 程序