Visual foxpro程序设计练习题
求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。 答案:236 n=0
for i=10 to 1000
if mod(i,7)=0 or mod(i,9)=0 n=n+1 endi endf ?n
求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。 答案:18630 s=0
for i=101 to 299
if mod(i,2)=0 and mod(i,3)<>0 or mod(i,5)<>0 s=s+i endi endf ?s
3、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。 答案:18 s=0
for i=1 to 100 s=s+1/i if s>=3.5 exit endi endf ?i-1
4、求100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于30000。 答案:25 s=0
for i=1 to 100 s=s+i^3 if s>30000 exit endi endf ?i
5、求出100以内使得算式1*2+2*3+?+n*(n+1)的值小于5000的最大的自然数n。 答案:23 s=0
for i=1 to 100 s=s+i*(i+1) if s>=5000 exit endi endf ?i-1
6、求出100以内使得算式1/(1*1)+1/(2*2)+?+1/(n*n)的值小于1.6的最大的自然数n。 答案:21 s=0
for i=1 to 100 s=s+1/i^2 if s>=1.6 exit endi endf ?i-1
7、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。 答案:18 n=0 x=1
do while x<2 x=x*(1+0.04) n=n+1 enddo ?n
8、设等比数列:1,3,9,27,?。求使得此数列的前n项之和大于2345678的最小的自然数n。 答案:14 s=0 n=0
do while s<=2345678 s=s+3^n n=n+1 enddo ?n
9、求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。 答案:7 n=0 s=45678
for i=3 to 22839 step 2 if mod(s,i)=0 n=n+1
endif endfor ?n
10、求出203267的所有真因子(即小于它本身的约数)中最大的因子数。 答案:6557 s=203267
for i=1 to int(203267/3) if mod(s,i)=0 n=i endif endfor ?n
11、求出20677和42067的最大公约数。 答案:713
for i=20677 to 1 step -1
if mod(20677,i)=0 and mod(42067,i)=0 exit endif endfor ?i
12、求前[1,100]内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。 答案:162 s=0
for i=1 to 100
if mod(i,6)=0 or mod(i,8)=0 s=s+sqrt(i) endif endfor ?round(s,0)
13、求所有符合算式ab*ba=2701的最小的两位数ab(即a*10+b)。其中a、b是1~9之间的一位整数。 答案:37 for a=1 to 9 for b=1 to 9
if (a*10+b)*(b*10+a)=2701 ?a*10+b return endif endfor endfor
14、已知数列:1,2,4,7,11,16,?,其规律是相邻两项之差依次是1,2,3,4,5,?。试求出此数列中大于5000的最小的项。 答案:5051
a=1 n=1
do while a<5000 a=a+n n=n+1 enddo ?a
15、已知数列{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。 答案:20
Dimension f(100) f(1)=1 f(2)=4 n=2
do while f(n)< 87654321 n=n+1
f(n)=3*f(n-1)-f(n-2) enddo ?n
16、一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最大的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程不超过690米。 答案:15 h=100 s=100 n=1
do while s<690 h=h*3/4 s=s+2*h n=n+1 enddo ?n-1
17、设有用26个字母表示的26个表达式:a=1,b=1/(a+1),c=1/(b+2),?,z=1/(y+25)。试求出这26个字母中其值小于0.1的字母个数。 答案:16 a=1 n=0
for i=1 to 25 a=1/(a+i) if a<0.1 n=n+1 endif endfor ?n
相关推荐: