为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

二级考试程序题目

2011-11-27 19页 doc 120KB 173阅读

用户头像

is_463327

暂无简介

举报
二级考试程序题目 题号 试题 程序 参考答案 1 * 某单位规定电费收费标准为:60度电以内每度收0.33元,60到100度范围内的电每度收费0.66元,超过100度的,每度收费1.65元。填空完成程序。(保留小数两位) SET TALk OFF CLEA S=2 F1=1 F2=1 I=2 DO WHILE I77777720 ______ ENDIF ENDDO ? S RETU 479001600 * 求100—999的水仙花数(一个数的值正好为自身各位立方之和,如:153=1^3+5...
二级考试程序题目
题号 程序 参考 1 * 某单位规定电费收费标准为:60度电以内每度收0.33元,60到100度范围内的电每度收费0.66元,超过100度的,每度收费1.65元。填空完成程序。(保留小数两位) SET TALk OFF CLEA S=2 F1=1 F2=1 I=2 DO WHILE I<=____ F=F1+F2 S=S+F F1=F2 F2=F I=______ ENDD ? S RETU 3524577 2 * 求1×2×3×4×5…,当积大于77777720时退出循环。(保留整数位) SET TALK OFF CLEAR I=0 S=1 DO WHILE .T. I=I+1 S=S_____ IF S>77777720 ______ ENDIF ENDDO ? S RETU 479001600 * 求100—999的水仙花数(一个数的值正好为自身各位立方之和,如:153=1^3+5^3+3^3)的个数。填空完成程序。(保留整数位) clea for i=100 to 999 a=int(i/100) b=int((i-a*100)/10) c=mod(i,10) n=____ Return 4 4 * 求100到14000以内能被4和9整除的整数的和,填空完成程序。(保留整数位) SET TALK OFF CLEA I=100 S=0 DO WHILE I<=14000 IF INT(I/4)=I/4.AND.INT(I/9)=I/9 ________ ENDI I=_____ ENDD ?S RETU 2716668 * 求所有数字的和为13的四位数的个数,填空完成程序。(保留整数位) set talk off for i=1000 to 9999 j=alltrim(str(i)) a=left(j,1) c=subs(______) d=right(______) if val(a)+val(b)+val(c)+val(d)=13 t=t+1 endif return 405 * 设S是[1,100]之间的前若干个可被23整除的正整数之和,求使S>2000时的最小和数S。填空完成程序。(保留整数位) SET TALK OFF CLEA DO WHILE .T. IF INT(I/23)=I/23 ENDIF IF S>2000 ENDDO SET TALK ON 2093 * 完成程序填空,求S=14!+15!+16!+17!+18!。(保留整数位) I=14 _________ J=1 DO WHILE J<=I T=T*J J=J+1 ENDDO S=_______ I=I+1 ?S SET TALK ON 6780378776371200 8 * 下列程序的功能是求6到280之间的所有偶数的平方和并显示结果。请填空来实现上述功能。(保留整数位) SET TALK OFF CLEAR Sum=0 x=6 DO WHILE x<=280 Sum=___________ ENDDO ?Sum 3697940 * 下列程序的功能是求i,其中i是一个四位整数,它的九倍恰好是其反序数(反序数就是将整数的数字倒过来形成的数,例如1234的反序数为4321)。填空完成该程序。(保留整数位) N = INT(N/10) N = INT(N/10) IF A + B+ C + D = I * 9 ENDDO SET TALK ON 1089 * 下列程序解百马百瓦问题。大马、小马和马驹共100匹,大马一驮三,小马一驮二,马驹二驮一,共100片瓦一次驮完,三种马都驮,共有多少种组合,填空完成程序。(保留整数位) SET TALK OFF CLEA MJ=100-DM-XM S=______ XM=XM+1 DM=DM+1 RETU 6 * 下列程序求能被3整除且有一位数字为5的三位数的个数,填空完成程序。(保留整数位) CLEA IF A=5.OR.B=5.OR.C=5 ? S 85 * 下列程序求三位数中,个位数字与十位数字之和除以10所得的余数是百位数字的偶数的个数,填空完成程序。(保留整数位) SET TALK OFF DO WHILE X<=999 ? S 45 * 下面程序的功能是判断2123年是否为闰年。若是闰年,输出“YES”,否则输出“NO”。请根据功能填空。 SET TALK OFF S="" DO SUB WITH Y, ANS ?ANS SUB IF Y % 4=0 .AND. (Y % 100<>0 .OR. Y % 400=0) ENDIF ETURN NO * 下面程序求在1,2,3,4,…,1000这1000个数中的任意选两个不同的数,要求它们的和能被2整除的数的总对数(注意:像3+5和5+3被认为是同一对数)。请完成程序填空。(保留整数位) DO WHILE I<=1000 J=1 DO WHILE J=3.5 exit && loop 改为 exit endif endfor ? n-1 set talk on return && 结果为:18 4. 求100以内最大的自然数n,使得从1开始的连续n个自然数的平方和小于5000。 set talk off clear s=0 for n=1 to 100 s=s+n*2 && 改为s=s+n**2 if s>=5000 exit endif endfor ? n && 改为 ? n-1 set talk on return && 结果为:24 10 求出50以内最小的自然数n,使得从101开始的连续n个奇数之和大于3000。 set talk off clear s=0 for n=1 to 50 a=101+2*n && a=101+2*n 改为 s=s+99+2*n s=s+a && 去掉 s=s+a if s>3000 exit endif endfor ? s && ? s 改为 ? n set talk on retur && 结果为:25 11. 求出100以内使得算式1*2+2*3+…+n*(n+1)的值小于5000的最大的自然数n。 set talk off clear s=0 for n=1 to 100 a=n*(n+1) s=s+a if s<5000 && s<5000 改为 s>=5000 exit endif endfor ? n && ? n 改为 ? n-1 set talk on return && 结果为:23 12. 求出100以内使得算式1+(1+2)+…+(1+2+…+n)的值小于1000的最大的自然数n。 set talk off clear s=0 t=0 for n=1 to 100 s=s+n t=t+s if t<1000 && t<1000 改为 t>=1000 exit endif endfor ? n && ? n 改为 ? n-1 set talk on return && 结果为:17 13 某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。 set talk off clear s=1 for n=2001 to 2100 s=s*1.03 if s=2 && s=2 改为 s>2 loop && loop 改为 exit endif endfor ? n set talk on return && 结果为:2024 14. 设等比数列:1,2,4,8,…。求使得此数列的前n项之和大于100000的最小的自然数n。 set talk off clear a=1 s=1 && s=1 改为 s=0 for n=1 to 100 s=s+a && 在 s=s+a 前加 a=2^(n-1) if s>100000 exit endif a=2+a && 去掉 a=2+a 该句 endfor ? n set talk on return && 结果为:17 15 求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。 set talk off clear a=45678 n=0 for b=3 to a step 2 if mod(b,a)=0 && mod(b,a) 改为 mod(a,b) n=n+1 endif endfor ? b && ? b 改为 ?n set talk on return && 结果为:7 16. 求出203267的所有真因子(即小于它本身的约数)中最大的因子数。 set talk off clear a=203267 n=0 for b=1 to a if mod(a,b)=0 && mod(b,a)=0 改为 mod(a,b)=0 && 加 if b=a && 加 exit && 加 endif max=a && max=a 改为 max=b endif endfor ? a && ?a 改为 ? max set talk on return && 结果为:6557 17. 求出20677和42067的最大公约数。 set talk off clear a=20677 b=42067 for d=1 to a if mod(a,d)=0 and mod(b,d)=0 max=d && max=b 改为 max=d endif endfor ? max && ?d 改为 ? max set talk on return && 结果为:713 18. 求559399的所有非平凡因子(即除1和它本身以外的约数)中最小的。 set talk off clear a=559399 for n=2 to a if mod(a,n)=0 loop && loop 改为 exit endif endfor return && 结果为:73 19 求9269和8671的最小公倍数。 set talk off clear a=9269 b=8671 for k=a to a*b step a if mod(k,b)<>0 loop endif && 加 exit endfor ? k set talk on return && 结果为:2668801 20. 已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。试求出此数列中大于5000的最小的项。 set talk off clear a=1 for n=0 to 1000 a=a+n if a>5000 loop && loop 改为 exit endif endfor ? n && ?n 改为 ?a set talk on return && 结果为:5051 21. 求出100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于88888。 set talk off clear s=0 for n=1 to 100 a=n*3 && a=n*3 改为 a=n^3 s=s+a if s>88888 exit endif endfor ? a && ?a 改为 ?n set talk on return && 结果为:24 22. 设一数列{f(n)}:f(1)=1,当n>1时f(n)=1/(f(n-1)+1)。试求出此数列的前20项中大于0.618的项数。 set talk off clear f=1.00000000 n=0 for k=2 to 20 f=1/f+1 && f=1/f+1 改为 f=1/(f+1) if f>0.618 n=n+1 endif endfor ? N && ?n 改为 ? n+1 set talk on return && 答案:15 23 设有用26个字母表示的26个表达式:a=1,b=1/(a+1),c=1/(b+2),…,z=1/(y+25)。试求出这26个字母中其值小于0.1的字母个数。 set talk off clear lett=1 n=0 for k=1 to 26 && 26 改为 25 lett=1/(lett+k) if lett<0.1 n=n+1 endif endfor ? N set talk on return && 答案:16 24 设一个数列的前3项都是1,从第4项开始,每一项都是其前3项之和。试求出此数列的前25项中大于54321的项数。 set talk off clear store 1 to f1,f2,f3 n=0 for k=1 to 25 && k=1 改为 k=4 f=f1+f2+f3 if f>54321 n=n+1 endif f1=f2 f2=f3 f3=f1 && f3=f1 改为 f3=f endfor ? n set talk on return && 答案:5 25 已知一个由分数组成的数列:1/2,3/5,8/13,21/34,…,其特点是:从其中第2个数起,每个分数的分子都是前一分数的分子分母之和。而其分母都是其分子与前一分数的分之和。试求出此数列的前25项中其值大于0.618的项数。 set talk off clear f1=1 f2=2 n=0 for k=1 to 25 f=f1/f2 if f>0.618 n=n+1 endif f1=f2 && f1=f2 改为 f1=f1+f2 f2=f1 && f2=f1 改为 f2=f1+f2 endfor ? n set talk on return && 答案:20 26 回文指的是正读和反读都一样的一串字符,如121、1221。试求出[1421,4112]内所有回文数的和。 set talk off clear s=0 for x=1421 to 4112 a=x/1000 && 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 改为 s=s+x endif endfor ? s set talk on return && 答案:74250 27. 若一个自然数恰好等于某个整数的平方,则称此数为完全平方数。如144是完全平方数,因为它等于12的平方。求[1000,3000]内所有完全平方数的和。 set talk off clear s=0 for x=1000 to 3000 y=sqrt(x) && y=sqrt(x) 改为 y=int(sqrt(x)) if x=y*y s=s+x endif endfor ? x && x 改为 s set talk on return && 答案:43539 28. 若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求[2,99999]内所有自同构数之和。(提示:若x是m位同构数,则x的平方除以10的m次方的余数就是x) set talk off clear s=0 for x=2 to 99999 y=x*x m=len(ltrim(str(x))) if mod(y,10*m)=x s=s+x endif endfor ? y set talk on return && 答案:101114 29. 求满足条件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 if a*b=c max=a endif endfor ? max set talk on return && 答案:953 30 设a=123,b=541,求a/b的精确值中小数点后40位数字中数字1的个数。(提示:基于人工计算的思想) set talk off clear a=123 b=541 n=0 for k=1 to 40 a=a+0 q=int(a)/b if q=1 n=n+1 endif a=mod(a,b) endfor ? n set talk on return && 答案:3 31. 求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法) set talk off clear a=98765432 p=2 do while a>0 r=mod(a,p) if r=1 n=1 endif a=int(a/p) enddo ? N set talk on return && 答案:13 32. 求出将十进制整数99887766554等值转换为十六进制形式表示后其中字母C的个数。(提示:模拟人工计算的“16除取余”法) set talk off clear a=99887766554 p=16 n=0 do while a=0 r=mod(a,p) if r=11 n=n+r endif a=int(a/p) enddo ? n set talk on return && 答案:2 33 已知数列{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) f(1)=1 f(2)=1 s=0 for n=3 to 25 f(n)=f(n-2)+f(n-1) if n<=11 s=f(n) endif endfor ? s set talk on return    && 答案:195431 34 求出将十进制小数0.987654321等值转换为二进制形式表示后前25位小数中数字0的个数。(提示:使用“2乘取整”法) set talk off clear x=0.987654321 n=0 for k=1 to 25 x=2**x z=int(x) x=x-z if z=1 n=n+z endif endfor ? n set talk on return && 答案: 8 35 对自然数A、B、C,若A方案
共有多少种? set talk off clea n=0 for yi=1 to 60 for wu=1 to 20 er=20 if yi+er*2+wu*5=100 n=n+1 endif endfor endfor ? n set talk on return 答案:11 39、设某四位数的各位数字的平方和等于198,问满足这种条件的最大数和最小数之和是多少? set talk off clea min1=9999 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int((x-a*1000)/100) c=int((x-b*100-a*1000)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=198 if max1x min1=x endif endif endfor ? max1+min1 set talk on return 答案:12749 40、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求两位数中最大的绝对素数与最小绝对素数之差。 set talk off clea min=100 max=0 for i=10 to 99 j=mod(i,10)*10+int(i/10) f1=1 for k=2 to i-1 if mod(i,k)=0 f1=0 endif endfor f2=1 for k=2 to j-1 if mod(j,k)=0 f2=0 endif endfor if f1=1 and f2=1 if min>i min=i endif max=i endif endfor ? max-min Return 答案:86 41、"水仙花数"是指这样的数,其各位数字的立方和等于该数本身,如:153=1^3+5^3+3^3。编写程序,计算从100年开始到3000年为止,最大的水仙花数年号为多少? set talk off clea s=100 for i=100 to 3000 a=int(i/1000) b=int((i-a*1000)/100) c=int(mod(i,100)/10) d=mod(i,10) if a**3+b**3+c**3+d**3=i if s
/
本文档为【二级考试程序题目】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索