程序改错和填空题选
92、将大于1000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。 SET TALK OFF CLEAR S=0 K=0 X=1000
DO WHILE K<=20 改正:DO WHILE K<20 X=X+1 SET TALK OFF CLEAR S=0 K=0 X=1000
DO WHILE K<=20 改正:DO WHILE K<20 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 ENDIF ENDDO ? S
SET TALK ON RETURN X=X-1
IF MOD(X,4*6)=0 S=S+X K=K+1 ENDIF ENDDO ? S
SET TALK ON RETURN
\运行结果:20610\
93、求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较大的一个数。(提示:设A<=B,当A越大时A+B越小) SET TALK OFF CLEAR C=54321
K=INT(SQRT(C)) FOR A=1 TO K
B=INT(C)/A 改正:B=INT(C/A) IF A*B=C
MAX=A 改正:MAX=B ENDIF ENDFOR ? MAX
SET TALK ON RETURN
\运行结果:953\
94、下面程序求在1,2,3,4,?,500这500个数中的任意选两个不同的数,要求它们的和能被2整除的数的总对数(注意:像3+5和5+3被认为是同一对数)。请完成程序填空。(保留整数位) SET TALK OFF CLEAR N=0 I=1
DO WHILE I______ <=500 J=1
DO WHILE J____
26
程序改错和填空题选
ENDDO I=I+1 ENDDO ?N
SET TALK ON RETURN
\运行结果:62250\
95、下面程序是求2203年各月份中的15日有几天是星期二。填空完成程序。(保留整数位) SET TALK OFF S=1 M=1 N=0
DO WHILE M<=______ 12 S=LTRIM(STR(M))+\IF DOW(CTOD(S))=3
N=_______ N+1 ENDI M=M+1 ENDD ?N RETU
\运行结果:3\
96、下列程序的功能是求I,其中I是一个四位整数,它的九倍恰好是其反序数(反序数就是将整数的数字倒过来形成的数,例如1234的反序数为4321)。填空完成该程序。(保留整数位) SET TALK OFF I=1002
DO WHILE I<=1111 N = I
A = MOD(N,10)*1000 N = INT(N/10)
B = MOD(N,10) * 100 N = INT(N/10)
C =______ MOD(N,10)*10 D = INT(N/10)
IF A + B+ C + D = I * 9 ?I ENDIF
______ I=I+1 ENDDO
SET TALK ON RETURN
运行结果:1089
97、下面程序的功能是判断2123年是否为闰年。若是闰年,输出“YES”,否则输出“NO”。请根据功能填空。 SET TALK OFF CLEAR ANS=\Y=2123
DO SUB WITH Y, ANS ?ANS
SET TALK ON RETURN
PROCEDURE SUB
PARAMETER __________ Y,ANS ANS=\
IF Y % 4=0 .AND. (Y % 100<>0 .OR. Y % 400=0) ANS=\ENDIF RETURN
\运行结果:NO\
98、下面程序求在1,2,3,4,?,1000这1000个数中的任意选两个不同的数,要求它们的和能被4整除的数的总对数(注意:像3+5和5+3被认为是同一对数)。请完成程序填空。(保留整数位)
27
程序改错和填空题选
SET TALK OFF CLEAR N=0 I=1
DO WHILE I<=1000 J=1
DO WHILE J
N=________ N+1 ENDIF J=J+1 ENDDO
________ I=I+1 ENDDO ?N
SET TALK ON RETURN
运行结果:124750
99、 已知S1=1,S2=1+2,S3=1+2+3,?SN=1+2+3+?+N,求S1,S2,S3,?S2200中有多少个能被6或11整除的数。填空完成程序。(保留整数位) SET TALK OFF CLEA I=1 N=0
DO WHILE I<=2200 S=0 J=1
DO WHILE J______ <=I S=_______ S+J J=J+1 ENDDO
IF INT(S/6)=S/6.OR.INT(S/11)=S/11 N=N+1 ENDIF I=I+1 ENDDO ? N
SET TALK ON RETURN
运行结果:1001
100、完成程序填空,求S=14!+15!+16!+17!+18!。(保留整数位) SET TALK OFF CLEAR S=0 I=14
DO WHILE I<=18 _________ T=1 J=1
DO WHILE J<=I T=T*J J=J+1 ENDDO
S=_______ S+T I=I+1 ENDDO ?S
SET TALK ON RETURN
运行结果:6780378776371200
28