东莞市小学生计算机程序设计竞赛Word文档下载推荐.docx
《东莞市小学生计算机程序设计竞赛Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《东莞市小学生计算机程序设计竞赛Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
DATAminute,zuantai,waitfly,waitdown,alreadyfly,alreadydown
3、
CLS
DIMA(5),B(5)
FORI=1TO5
READA(I),B(I)
DATA15,25,20,15,10
DATA5,25,40,10,10
FORI=1TO4
SWAPA(I),A(I+1)
SWAPB(I),B(I+1)
PRINTA(I)+B(I)
SWAPX,Y的功能是交换X,Y两个变量的值。
5、
i=3:
n=1:
m=1
IFn<
>
mTHEN10
i=i+1:
n=n+2
M=I+N+M
IFn=mTHEN10
i=i-1:
10PRINT"
M="
;
M
6、
DIMA(10)
FORI=4TO20
n=INT(I/2)+1
FORK=2TOn
IFINT(I/K)=I/KTHENA(K)=A(K)+1
NEXTK
PRINTA
(2)
8、
5CLS
10N=10:
M=2
20DIMST(N)
30FORI=1TON:
ST(I)=0:
NEXTI
40FORP=1TOM
50READI,J
60FORL=ITON-JSTEPI
70ST(L+J)=ST(L+J)+1
90NEXTL
100NEXTP
110FORI=1TON
120IFST(I)=MTHENPRINTI:
I=N
130NEXTI
140DATA2,1,3,2
150END
7、
DATA4,2,5,7,5,1,6,7,4,7
DIMa(10)
FORi=1TO10:
READa(i):
NEXTi
FORi=1TO9
FORj=i+1TO10
IFa(i)<
=a(j)THEN70
w=a(i):
a(i)=a(j):
a(j)=w
70NEXTj,i
FORi=1TO7STEP3
s=s+a(i)+a(i+1)
NEXTi
PRINT"
S="
s
四、程序填空:
(每空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
程序:
10INPUT"
N="
N
20IFN<
2ORN<
INT(N)THEN10
25PRINTN;
30IFN/2=INT(N/2)THEN①:
GOTO50
40②
50PRINT"
--"
N;
60IFN>
1THEN③
70END
2、圣经《新约全书》写道:
耶稣他们说:
“把刚才打的鱼拿几条来。
”西门.彼得就去把网拉到岸上。
那网网满了大鱼,共一百五十三条;
鱼虽这样多,网却没有破。
因此,人们把153叫做“圣经数”。
153具有一个有趣的性质:
任写一个3的倍数,把各位数字的立方(一个数的立方=三个该数相乘的结果,如53=5*5*5=125)相加,得出和,再把和的各位数字立方相加,如此反复进行,最后则必然出现153。
24是3的倍数,按照上述规则,进行变换的过程是:
24→23+43→72→73+23→351→33+53+13→153
153出现了!
任意输入一个数,按以上要求变换,最后得到153。
n/3="
n
20n=n*3
30IF①THEN110
40m=0
50PRINTn;
"
->
"
60IFn=0THEN②:
GOTO30
70t=nMOD10
80n=INT(n/10)
90③
100GOTO60
110PRINTn
120END
运行:
N/3=8
24→72→351→153
3、投两个骰子,可以出现2至12点,每个点数的出现次数并不相等(因为1+6=2+5=3+4=4+3=5+2=6+1,7点的出现次数为6次),编程统计各点数出现的次数,并输出出现次数最多的点数。
DIMA(12)
FORI=1TO6
FORJ=1TO6
①
X=0:
Y=0
FORI=2TO12
IF②THENX=I:
③
PRINTX,Y
4、纸牌游戏:
随意将1-13张纸牌(可以相同点数)背放在十三个格子中,然后从第一格开始翻开纸牌,若纸牌是5,则跳到第五格,并翻开第五格的纸牌,如此重复下去,若回到纸牌已翻开的格子,则输出翻开纸牌点数的和。
10DIMA(13)
20S=0:
X=1
30FORI=1TO13
40A(I)=INT(RND*13)+1
50NEXTI
70①
80Y=X
85②
90A(Y)=0
100IF③THENGOTO70
110PRINT“S=”;
S
5、狼追兔子:
兔子躲进了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代表没找过,即可能是兔子藏身的洞。
3、从第一次,第一个洞开始,当Q,P回到起始数(P=1,Q=1)时,即结束搜索。
10N=10
20DIMCAVE(N)
25P=1:
Q=1
30①
40Q=Q+1:
P=P+Q
50P=P-INT((P-1)/N)*N
60Q=Q-INT(Q/N)*N
70IF②THEN30
75PRINT
80PRINT"
NO:
90FORI=1TON
100IF③THENPRINTI;
110NEXTI
6、圆周率π是圆周长与直径的比值(即圆周长/直径)。
我国南北朝时期的数学家祖冲之计算出π的真值在3.1415926-3.1415927之间,其后有很多数学家将π的值不断精确,1872年英国学者威廉.向克斯把π的值算到了小数点后707位,又过了若干年,数学家法格逊对向克斯的计算结果产生怀疑,他猜测在π的数值中各数码(0—9)出现的次数应相等,而向克斯给出的π中,各数码的出现相差较大,经过一年的计算,他发现:
向克斯π的707位小数中,只有前527位是正确的。
下面程序统计π中各数码的出现次数(只取π值的部分数据进行统计,而且π值是模拟数据,非正确值)。
10DIMa$(4),b(10)
20FORi=1TO4
30READa$(i)
40①
50FORj=1TOL
60num=VAL(MID$(a$(i),j,1))
70IFnum=0THENnum=10
80②
90NEXTj
100③
110FORi=1TO10
120PRINTi;
b(i)
130NEXTi
140END
DATA31415926347589303246743086835983612347648809232135346396565623123040549
DATA45897349856986745674512403122351341490767437112352645233213265446432321
DATA32863586507856711124600653847694769847694527435345983750123656456465432
DATA12165446546878456465406546546545646545613213246548787832132188788798341
7、零钱问题:
单位发放工资时,根据各人的工资,计算需要各种面值的货币数,然后直接从银行提取必需的零钱,例如,374元=3张一百元+1张五十元+2张十元+4张一元,下面程序实现以上功能,输出各种币值的张数。
(假设该单位职工20人,而且工资以元为单位,无小数)。
10CLS:
DIMa(20),b(7),c(7)
20FORi=1TO7:
READb(i):
30FORi=1TO20:
①:
40FORi=1TO20
50FORj=1TO7
60C(J)=C(J)+②
70a(i)=a(i)-INT(a(i)/b(j))*b(j)
80j=j+1
100NEXTi
110FORi=1TO7
120PRINTb(i);
:
③
140DATA100,50,20,10,5,2,1
150DATA374,566,1200,500,717,865,1324,823,923,568
160DATA568,342,678,674,533,744,545,666,723,922
8、中国传统上用“干支纪年法”来表示年份,比如:
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、庚申
8、辛未
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年为“壬午年”。
下面程序实现输入公元年份,算出相应干支年。
DIMA$(10),B$(12),C$(60)
FORI=1TO10
READA$(I)
FORI=1TO12
READB$(I)
FORI=1TO60
X=IMOD10:
IFX=0THEN①
Y=IMOD12:
IFY=0THENY=12
C$(I)=②
INPUT“年份=”;
YEAR
YEAR=③:
IFYEAR=0THENYEAR=60
PRINT“该年为”;
④;
“年”
DATA甲,乙,丙,丁,戊,己,庚,辛,壬,癸
DATA子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥
2002年东莞市小学生计算机程序设计竞赛试题答题卡
学校:
考号:
姓名:
年级:
出生日期:
家庭电话:
家庭地址:
辅导老师:
------○----------○--------○-----------封装线-------------○----------○-----------○-------
总分:
评卷者:
一:
①②③④⑤
二:
三:
1、2、3、4、
5、6、7、8、
四:
1、①2、①
②②
③③
3、①4、①
5、①6、①
②②
③③
7、①8、①
③③④
2002年东莞市小学生计算机程序设计竞赛试题
参考答案
①3②3③2④3⑤3
①×
②√③√④×
⑤×
1、-1002、153、404、4
5、M=166、97、S=258、5
1、①N=N/22、①N=153
②N=N*3+1②N=M
③GOTO30或30③M=M+T*T*T
3、①A(I+J)=A(I+J)+14、①S=S+A(X)
②A(I)>
Y②X=A(X)
③Y=A(I)③A(X)<
0
5、①CAVE(P)=16、①L=LEN(A$(I))
②P<
1ORQ<
1②B(NUM)=B(NUM)+1
③CAVE(I)=0③NEXTI
7、①READA(I)8、①X=10
②INT(A(I)/B(I))②A$(X)+B$(Y)
③C(I)③(YEAR-3)MOD60④C$(YEAR)