程序改错和填空题选
F2=0 ENDIF ENDFOR
IF __________ F1=1 AND F2=1 S=S+1 ENDIF ENDFOR ? S RETURN
\运行结果:9\
73、整数60的质因数共有4个:2、2、3、5,求103385的最大有质因数。[ 算法提示:按小学介绍的分解质因数的方法 ] SET TALK OFF CLEAR A=103385 MAX=1
_____ B=2 DO WHILE A>1 IF MOD(A,B)=0 MAX=B
A=INT(A/B)
_______ LOOP ENDIF B=B+1 ENDDO ? MAX
SET TALK ON RETURN
\运行结果:31\
74、求等比数列1、2、4、8、16、? 的前若干项累加和S,使S的值首次大于100000。 SET TALK OFF CLEAR T=1
____ S=1
DO WHILE S<=100000 ______ 2=2*T S=S+T ENDDO ? S
SET TALK ON RETURN 131071
75、求S=1/1!+1/2!++1/3!+?+1/10!的值(按四舍五入方式保留两位小数)。 (注:自然数N的阶乘记为N!,即1*2*3*?*N)。 SET TALK OFF CLEAR
_____ T=1 S=0
FOR N=1 TO 10 T=T/N
_______ S=S+T ENDFOR
? ROUND(S,2) SET TALK ON RETURN
运行结果:1.72
76、已知数列{F(N)}:F(1)=1,F(2)=1,当N>2时F(N)=F(N-2)+F(N-1)。试求此数列的第15项至第25项共11项之和。 SET TALK OFF CLEAR
DIMENSION F(25),S(25)
21
程序改错和填空题选
F(1)=1 F(2)=1
_______ S(2)=F(1)+F(2) FOR N=3 TO 25
_______________ F(N)=F(N-1)+F(N-2) S(N)=S(N-1)+F(N) ENDFOR
? S(25)-S(14) SET TALK ON RETURN
运行结果:195431
77、已知数列:1、2、4、7、11、16、?,其特点是:相邻两项之差恰好构成自然数列:1、2、3、4、5、?。求此数列的前200项中能被4整除的项之和。 SET TALK OFF CLEAR
______ A=1 S=0
FOR N=2 TO 200 A=A+N-1
_________ IF MOD(A,4)=0 S=S+A ENDIF ENDFOR ? S
SET TALK ON RETURN
\运行结果:333300\
78、设A=234,B=567,求A/B的精确值中小数点后30位数字之和。(提示:基于人工计算的思想) SET TALK OFF CLEAR A=234 B=547 S=0
FOR K=1 TO 30
A=________ A=A*10 Q=INT(A/B)
________ S=S+Q A=MOD(A,B) ENDFOR ? S
SET TALK ON RETURN
运行结果:142
79、求满足条件A*B=1234567且使A+B的值最小的自然数对A、B中较大的一个数。(提示:设A<=B,当A越大时A+B越小) SET TALK OFF CLEAR C=1234567
K=INT(SQRT(C)) FOR A=1 TO K
________ B=INT(C/A) IF A*B=C MAX=B ENDIF ENDFOR
? ______ MAX SET TALK ON RETURN
\运行结果:9721\
80、一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出10到1000之间所有的完数之和。
22
程序改错和填空题选
SET TALK OFF CLEAR S=0
FOR X=10 TO 1000 M=0
FOR K=1 TO X-1 IF MOD(X,K)=0 _______ M=M+K ENDIF ENDFOR
_______ IF X=M S=S+X ENDIF ENDFOR ? S
SET TALK ON RETURN
\运行结果:524\
81、求在1,2,3,?,20这20个数中任选两个不同的数的所有组合中,两数和是偶数的组数。 SET TALK OFF CLEAR
_____ N=0 FOR A=1 TO 19 FOR B=A+1 TO 20
___________ IF MOD(A+B,2)=0 N=N+1 ENDIF ENDFOR ENDFOR ? N
SET TALK ON RETURN
\运行结果:90\
82、求最长边为15的所有边长为自然数的三角形的个数(两短边交换只算一个)。 SET TALK OFF CLEAR N=0 C=15
FOR A=1 TO C
_____________ FOR B=1 TO A ________ IF A+B>C N=N+1 ENDIF ENDFOR ENDFOR ? N
SET TALK ON RETURN
\运行结果:64\
83、 百钱百鸡古题:用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,求出共有几种买法(要求每种鸡至少要买1只)。 SET TALK OFF CLEAR N=0
FOR X=1 TO 19 FOR Y=1 TO 33 Z=100-X-Y
IF ____________ X*5+Y*3+Z/3=100 _______ N=N+1 ENDIF ENDFOR
23
程序改错和填空题选
ENDFOR ? N
SET TALK ON RETURN
运行结果:3
84、百马驮百瓦古题:大马、小马和马驹共100匹,共要驮100瓦,大马一驮三,小马一驮二,马驹二驮一,三种马都驮,共有多少种组合? SET TALK OFF CLEAR N=0
FOR X=1 TO 33 FOR Y=1 TO 50
Z=__________ 100-X-Y
IF _____________ X*5+Y*3+Z/3=100 N=N+1 ? X,Y,Z ENDIF ENDFOR ENDFOR ? N
SET TALK ON RETURN
运行结果:6
85、求出[750,950]内不含数字6和8的所有整数之和(注意AT()函数和STR()函数的功能)。 SET TALK OFF CLEAR S=0
FOR X=750 TO 950
IF AT('6',STR(X))=0 _____________ AND AT('8',STR(X))=0 ____________ S=S+X ENDIF ENDFOR ? S
SET TALK ON RETURN
运行结果:
86、求出[1234,4321]内中间两位数字之和等于首尾两位数字之积的数的个数。 SET TALK OFF CLEAR N=0
FOR X=1234 TO 4321 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=B+C N=N+1 ENDIF ENDFOR ? N
SET TALK ON RETURN
运行结果:125
87、 设有用26个字母表示的26个表达式:A=1,B=1/(A+1),C=1/(B+2),?,Z=1/(Y+25),试求出字母Z的值(要求按四舍五入的方式精确到小数点后第二位)。 SET TALK OFF CLEAR _____ A=1
FOR K=2 _______ TO 26 A=1/(A+K-1) ENDFOR
24
程序改错和填空题选
? ROUND(A,2) SET TALK ON RETURN
运行结果:0.04
88、 一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的4/5倍。试求出此球从开始下落至第10次着地时在垂直方向所经过的总路程是多少米(将第1位小数四舍五入,只保留整数)。 SET TALK OFF CLEAR H=100 S=H
__________ FOR I=2 TO 10 H=H*4/5
________ S=S+2*H ENDFOR
? ROUND(S,0) SET TALK ON RETURN
\运行结果:793\
89、已知数列:1,2,4,7,11,16,?,其规律是相邻两项之差依次是1,2,3,4,5,?。试求出此数列的前30项的和。
SET TALK OFF CLEAR A=1
____ S=1 FOR N=2 TO 30
_____ A=A+N-1 S=S+A ENDFOR ? S
SET TALK ON RETURN
\运行结果:4525\
90、求方程X^3-4X-5=0在区间[2,3]内的解。要求按四舍五入的方式精确到小数点后第二位。[算法提示:一般地,在给定区间内使得方程左边的绝对值最小的X0即为近似解。] SET TALK OFF CLEAR X0=2
F0=ABS(2^3-4*2-5)
FOR X=2 TO 3 STEP 0.01
__________ FX=ABS(X^3-4*X-5) IF F0>FX
____ F0=FX X0=X ENDIF ENDFOR ? X0
SET TALK ON RETURN
\运行结果:2.46\
91、求S=1-1/2+1/3-1/4+?+1/99-1/100的值(将小数点后第3位四舍五入,只保留2位小数)。 SET TALK OFF CLEAR
_______ S=0
FOR N=1 TO 100 STEP 2
S=S+_________ 1/N-1/(N+1) ENDFOR
? ROUND(S,2) SET TALK ON RETURN
运行结果:0.69
25