您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 2002年东莞市小学生计算机程序设计竞赛
12002年东莞市小学生计算机程序设计竞赛复赛试题说明:请将答案填在答题卡上,只交答题卡,时间9:00--11:00。一、选择题:(每题1分,共5分)1、市政府号召大力发展IT产业,你知道IT指什么吗?①加工业②制造业③信息技术④计算机2、鼠标是一种①存储器②输出设备③输入设备④运算器3、世界第一台电子计算机是年研制成功。①1900②1946③1956④19584、字符“3”的ASCII码为51,则字符“9”的ASCII值为①56②9③57④585、下列QBASIC语句会出错的是①X=Y=2②Y=X+2=Y③2=X=Y④X=2=Y二、判断题:(每题1分,共5分,答对√、错×)1、要重启动计算机可同时按CapsLock、Alt、Del键()2、二进制数1101对应的十进制数为13()3、将公用电脑上的系统文件或他人文件删除,这是违反公共道德标准的行为()4、只要有了杀毒软件,就不怕计算机被病毒感染()5、用QBASIC语言编写的程序文件扩展名是QB()三、运行结果:(每题5分,共40分)2、CLSINPUTNI=0:k=0DIMA(N)10I=I+1:k=k+IA(I)=kIFINTHEN10PRINTA(5)ENDRUNN=10结果:1、10INPUTA,B,C20S=(A+B+C)/330X1=S-A:X2=S-B:X3=S-C40S=X1*X2+X2*X3+X3*X150PRINT“S=”;S60ENDRUN10,20,30结果:25、i=3:n=1:m=1IFnmTHEN10i=i+1:n=n+2M=I+N+MIFn=mTHEN10i=i-1:n=n+2M=I+N+M10PRINTM=;MEND3、CLSDIMA(5),B(5)FORI=1TO5READA(I),B(I)DATA15,25,20,15,10DATA5,25,40,10,10NEXTIFORI=1TO4SWAPA(I),A(I+1)SWAPB(I),B(I+1)NEXTIPRINTA(I)+B(I)END说明:SWAPX,Y的功能是交换X,Y两个变量的值。4、FORI=1TO6READA$(I)NEXTIX=0FORJ=1TO6IFLEN(A$(J))7THENX=X+1NEXTJPRINTXENDDATAminute,zuantai,waitfly,waitdown,alreadyfly,alreadydown6、CLSDIMA(10)FORI=4TO20n=INT(I/2)+1FORK=2TOnIFINT(I/K)=I/KTHENA(K)=A(K)+1NEXTKNEXTIPRINTA(2)END3四、程序填空:(每空2分,共50分)1、验证如下猜想:从任一大于1的自然数N开始,若N为偶数(能被2整除的数称为偶数,否则为奇数),则将其除以2,N改为商的值,若N为奇数,则将N改为3N+1。不断重复上述步骤,最后必有N为1。例如:若N=20,则有20--10--5--16--8--4--2--1程序:10INPUTN=;N20IFN2ORNINT(N)THEN1025PRINTN;30IFN/2=INT(N/2)THEN①:GOTO5040②50PRINT--;N;60IFN1THEN③70END8、5CLS10N=10:M=220DIMST(N)30FORI=1TON:ST(I)=0:NEXTI40FORP=1TOM50READI,J60FORL=ITON-JSTEPI70ST(L+J)=ST(L+J)+190NEXTL100NEXTP110FORI=1TON120IFST(I)=MTHENPRINTI:I=N130NEXTI140DATA2,1,3,2150END7、CLSDATA4,2,5,7,5,1,6,7,4,7DIMa(10)FORi=1TO10:READa(i):NEXTiFORi=1TO9FORj=i+1TO10IFa(i)=a(j)THEN70w=a(i):a(i)=a(j):a(j)=w70NEXTj,iFORi=1TO7STEP3s=s+a(i)+a(i+1)NEXTiPRINTS=;sEND42、圣经《新约全书》写道:耶稣他们说:“把刚才打的鱼拿几条来。”西门.彼得就去把网拉到岸上。那网网满了大鱼,共一百五十三条;鱼虽这样多,网却没有破。因此,人们把153叫做“圣经数”。153具有一个有趣的性质:任写一个3的倍数,把各位数字的立方(一个数的立方=三个该数相乘的结果,如53=5*5*5=125)相加,得出和,再把和的各位数字立方相加,如此反复进行,最后则必然出现153。例如:24是3的倍数,按照上述规则,进行变换的过程是:24→23+43→72→73+23→351→33+53+13→153153出现了!程序:任意输入一个数,按以上要求变换,最后得到153。10INPUTn/3=;n20n=n*330IF①THEN11040m=050PRINTn;-;60IFn=0THEN②:GOTO3070t=nMOD1080n=INT(n/10)90③100GOTO60110PRINTn120END运行:N/3=824→72→351→1533、投两个骰子,可以出现2至12点,每个点数的出现次数并不相等(因为1+6=2+5=3+4=4+3=5+2=6+1,7点的出现次数为6次),编程统计各点数出现的次数,并输出出现次数最多的点数。DIMA(12)FORI=1TO6FORJ=1TO6①NEXTJNEXTIX=0:Y=0FORI=2TO125IF②THENX=I:③NEXTIPRINTX,YEND4、纸牌游戏:随意将1-13张纸牌(可以相同点数)背放在十三个格子中,然后从第一格开始翻开纸牌,若纸牌是5,则跳到第五格,并翻开第五格的纸牌,如此重复下去,若回到纸牌已翻开的格子,则输出翻开纸牌点数的和。10DIMA(13)20S=0:X=130FORI=1TO1340A(I)=INT(RND*13)+150NEXTI70①80Y=X85②90A(Y)=0100IF③THENGOTO70110PRINT“S=”;S120END5、狼追兔子:兔子躲进了10个环形分布的洞的某一个中,狼在第1个洞第1个洞中没找到兔子,就间隔1个洞,到第3个洞去找,也没有找到兔子,就间隔2个洞,到第6个洞中去找。以后狼每次多隔1个洞去找兔子,……。这样狼一直找不到兔子,请问兔子可能躲在那个洞中?说明:1、Q为间隔的洞数,P是当前狼所找洞编号。因为只有10个洞而且是环形,所以当Q或P超过10时可以取其除10的余数,即当P=11时相当P=1。2、找过的洞标记为1,即CAVE(I)=1代表第I个洞已找过,CAVE(I)=0代表没找过,即可能是兔子藏身的洞。4123567891063、从第一次,第一个洞开始,当Q,P回到起始数(P=1,Q=1)时,即结束搜索。10N=1020DIMCAVE(N)25P=1:Q=130①40Q=Q+1:P=P+Q50P=P-INT((P-1)/N)*N60Q=Q-INT(Q/N)*N70IF②THEN3075PRINT80PRINTNO:;90FORI=1TON100IF③THENPRINTI;;110NEXTI120END6、圆周率π是圆周长与直径的比值(即圆周长/直径)。我国南北朝时期的数学家祖冲之计算出π的真值在3.1415926-3.1415927之间,其后有很多数学家将π的值不断精确,1872年英国学者威廉.向克斯把π的值算到了小数点后707位,又过了若干年,数学家法格逊对向克斯的计算结果产生怀疑,他猜测在π的数值中各数码(0—9)出现的次数应相等,而向克斯给出的π中,各数码的出现相差较大,经过一年的计算,他发现:向克斯π的707位小数中,只有前527位是正确的。下面程序统计π中各数码的出现次数(只取π值的部分数据进行统计,而且π值是模拟数据,非正确值)。10DIMa$(4),b(10)20FORi=1TO430READa$(i)40①50FORj=1TOL60num=VAL(MID$(a$(i),j,1))70IFnum=0THENnum=1080②90NEXTj100③110FORi=1TO10120PRINTi;b(i)130NEXTi140END7DATA31415926347589303246743086835983612347648809232135346396565623123040549DATA45897349856986745674512403122351341490767437112352645233213265446432321DATA32863586507856711124600653847694769847694527435345983750123656456465432DATA121654465468784564654065465465456465456132132465487878321321887887983417、零钱问题:单位发放工资时,根据各人的工资,计算需要各种面值的货币数,然后直接从银行提取必需的零钱,例如,374元=3张一百元+1张五十元+2张十元+4张一元,下面程序实现以上功能,输出各种币值的张数。(假设该单位职工20人,而且工资以元为单位,无小数)。10CLS:DIMa(20),b(7),c(7)20FORi=1TO7:READb(i):NEXTi30FORi=1TO20:①:NEXTi40FORi=1TO2050FORj=1TO760C(J)=C(J)+②70a(i)=a(i)-INT(a(i)/b(j))*b(j)80j=j+190NEXTj100NEXTi110FORi=1TO7120PRINTb(i);:;③130NEXTi140DATA100,50,20,10,5,2,1150DATA374,566,1200,500,717,865,1324,823,923,568160DATA568,342,678,674,533,744,545,666,723,9228、中国传统上用“干支纪年法”来表示年份,比如:2002年是“壬午年”,壬称天干,午称地支。其中天干有十个:甲,乙,丙,丁,戊,己,庚,辛,壬,癸。地支有十二个:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥。由十天干和十二地支组成的“六十甲子表”如下:1、甲子11、甲戌21、甲申31、甲午41、甲辰51、甲寅2、乙丑12、乙亥22、乙酉32、乙未42、乙巳52、乙卯3、丙寅13、丙子23、丙戌33、丙申43、丙午53、丙辰4、丁卯14、丁丑24、丁亥34、丁酉44、丁未54、丁巳5、戊辰15、戊寅25、戊子35、戊戌45、戊申55、戊午6、已巳16、已卯26、已丑36、已亥46、已酉56、已未7、庚午17、庚辰27、庚寅37、庚子47、庚戌57、庚申88、辛未18、辛巳28、辛卯38、辛丑48、辛亥58、辛酉9、壬申19、壬午29、壬辰39、壬寅49、壬子59、壬戌10、癸酉20、癸未30、癸巳40、癸卯50、癸丑60、癸亥历法上,公元4年的干支正是农历甲子年,因而将公元数减去3,再除以60(六十甲子周期数),剩下的余数即为年干支序数,可以用六十甲子序数表查出公元该年的干支。例:2002年干支纪年法这样计算(2002-3)/60=33…余19,19查表得“壬午”,故2002年为“壬午年”。下面程序实现输入公元年份,算出相应干支年。CLSDIMA$(10),B$(12),C$(60)FORI=1TO10READA$(I)NEXTIFORI=1TO12READB$(I)NEXTIFORI=1TO60X=IMOD10:IFX=0THEN①Y=IMOD12:IFY=0THENY=12C$(I)=②NEXTIINPUT“年份=”;YEARYEAR=③:IFYEAR=0THENYEAR=60PRINT“该年为”;④;“年”DATA甲,乙,丙,丁,戊,己,庚,辛,壬,癸DATA子,丑,寅,卯,辰,巳,午,未,申,酉,戌,
本文标题:2002年东莞市小学生计算机程序设计竞赛
链接地址:https://www.777doc.com/doc-3105710 .html