主题:小学信息竞赛题,望高人解答
1、DIM b(10)
FOR i = 10 TO 20
y = i MOD 10: x = INT(x / 10)
IF x> y THEN GOTO 30
x = i * i: j = 11
10 IF x = 0 THEN GOTO 20
j = j - 1: b(j) = x MOD 10: x = INT(x / 10)
GOTO 10
20 y = 0
FOR x = j TO 9
IF b(x) > b(x + 1) THEN y = 1
NEXT x
IF y = 0 THEN PRINT i, i * i
30 NEXT i
END
输出结果:
2、DIM a(100)
INPUT n
FOR i = 1 TO n
INPUT x
a(x) = a(x) + 1
NEXT i
FOR i = 100 TO 1 STEP -1
DO WHILE a(i) <>0
PRINT i;
a(i) = a(i) - 1
LOOP
NEXT i
END
输入:10
23,17,26,14,15,39,47,81,29,44
输出结果是:
3、INPUT x, y
x0 = x: y0 = y
DO WHILE x<> y
IF x > y THEN
x = x - y
ELSE
y = y - x
END IF
LOOP
y = INT(x0 * y0 / x)
PRINT x, y
END
输入:108,81
输出结果是:
4、DIM a(10, 10)
INPUT n
a(1, 0) = 0: a(1, 1) = 1: a(1, 2) = 0
FOR i = 2 TO n
a(i, 0) = 0
FOR j = 1 TO i
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
NEXT j
a(i, i + 1) = 0
NEXT i
FOR i = 1 TO n
PRINT a(n, i);
NEXT i
END
输入:7
输出:
5、DIM b(3, 10)
READ n
FOR i = 1 TO 10
READ b(1, i): b(2, i) = 1: b(3, i) = 0
NEXT i
FOR i = n - 1 TO 1 STEP -1
l = 0: k = 0
FOR j = i + 1 TO n
IF (b(1, i) <= b(1, j)) AND (l < b(2, j)) THEN
l = b(2, j)
k = j
END IF
NEXT j
IF l > 0 THEN
b(2, i) = 1 + l
b(3, i) = k
END IF
NEXT I
j = 1
FOR i = 2 TO n
IF b(2, i) > b(2, j) THEN j = i
NEXT i
PRINT b(2, j)
DO WHILE j<> 0
PRINT b(1, j);
j = b(3, j)
LOOP
END
DATA 10,23,18,21,45,61,104,71,83,91,87
输出结果是:
6、
10 FOR J=3 TO 100
20 A=FIX(SQR(J)) : T=1 :B=0
30 FOR X=2 TO A
40 IF J/X =INT(J/X) THEN T=0 : GOTO 70
50 NEXT X
60 IF T=1 THEN B=B+1 :Y(B)=J
70 NEXT J
80 I=0 : J=0
85 WHILE I<=B
90 I=I+1 : IF Y(I)>70 THEN PRINT Y(I),
100 J=J+1 : I=J
110 WEND
120 END
输出:
7、
10 CLS
20 N=20
30 DIM A(N)
40 INPUT K
50 L=K : J=1
60 IF K<J THEN 90
70 A(J)=J : K=K-J : J=J+1
80 GOTO 60
90 L=J-1
100 IF K=0 THEN 130
110 A(L)=A(L)+1 : K=K-1 : L=L-1
120 GOTO 100
130 FOR I=1 TO J-1
140 PRINT A(I);
150 NEXT I
160 END
输入:39 输出:
8、
10 DATA 35,87,65,36
15 P=0
20 READ X,Y
30 GOSUB 1000
40 P=P+Z
50 READ X,Y
60 GOSUB 1000
70 P=P+Z
80 PRINT “P=”; P
90 END
1000 IF X>Y THEN T=X :X=Y :Y=T
1005 W=0
1010 WHILE X<>0
1020 IF X MOD 2<>0 THEN W=W+Y
1030 Y=Y*2 :X=X\2
1040 WEND
1050 Z=W
1060 RETURN
输出:
【完善程序】
1、输入N个任意数,将其中重复的数删得只剩下一个。
INPUT “N=”; N
FOR I = 1 TO N
INPUT A(I)
NEXT I
______
DO
X = I + 1
DO
IF A(I) = A(X) THEN
FOR J =______
______
NEXT J
______
ELSE
X = X + 1
END IF
LOOP UNTIL X > N
_______
LOOP UNTIL I >= N
FOR I = 1 TO N
PRINT A(I);
NEXT I : END
2、键入N,表示行数(1<N<20),打印如下形式的三角形。
如:N=7
1
232
34543
4567654
567898765
67890109876
7890123210987
10 INPUT “N=”; N
20 FOR I = 1 TO N
30 PRINT TAB(20-I);
40 X = I
50 FOR J = 1 TO I
60 IF X > 9 THEN______
70 PRINT CHR$(X+48);
80 X = X + 1
90 NEXT
100 X =______:IF______ THEN 160
110 FOR J = 1 TO I - 1
120 IF______THEN X = X + 10
130 PRINT CHR$(X+48);
140 X = X – 1 : 150 NEXT J : 160______: 170 NEXT I
3、调用子程序,求以下四个数的最大公约数
FOR I = 1 TO 4
READ A(I)
NEXT
DATA 147, 210, 315, 735
FOR I = 1 TO____
_______
NEXT I
PRINT “GCD=______”;
END
10 DO
Q = A(I) \ A(I+1)
R =_______
IF R = 0 THEN RETURN
______: A(I+1) = R
LOOP
4、以下程序能完成下列三项功能:
1)读入20个大写英文单词,统计单词IS出现的次数T;
2)测试这20个英文单词的平均长度;
3)将这20个英文单词按字典顺序排列输出,并打印原来的序号
N = 0 : T = 0 : X$= “IS”
_______
FOR I = 1 TO 20
PRINT “<”; I; “>”;
INPUT A$(I)
B(I) = I
NEXT I
FOR I = 1 TO 20
N =______
IF______THEN T = T + 1 :
NEXT I
PRINT “单词IS出现的次数=”;T, “单词的平均长度=”; N/20
FOR I = 1 TO ______:FOR J = I + 1 TO 20
IF______THEN_______:______
NEXT J, I
FOR I = 1 TO 20
PRINT “[“;I;”]”; A$(I); “——>”; _______
NEXT I
END
5、有一些分子、分母都是两位数的真分数,且分子的个位数与分母的十位数字相同,若将该分数的分子(用变量M表示)的个位数字和分母(N)的十位数字同时划去,所得到的结果正好等于原分数约分后的结果。例如,16/64=1/4就是其中的一个。找出所有满足条件的真分数。
10 FOR I = 1 TO 9 :FOR J = 1 TO 9 :______
20 IF ______THEN 60
30 M = _______:N = ______
40 IF ______ THEN 60
50 IF ______THEN PRINT J*10+I; “/”; I*10+K
60 NEXT K, J, I : END
6、 【问题描述】从1,2,……,N这N个自然数中,任取R个数进行组合,(4≤N≤8,1≤R<N)然后列出全部组合。
例如:当N=5,R=3时,列出的全部组合如下:
1 2 3 1 2 4 1 2 5
1 3 4 1 3 5 1 4 5
2 3 4 2 3 5 2 4 5
3 4 5
S=10
【程序说明】对任给出的R和N,则
第一个组合为1,2,……,R
然后变化第R位;
第二个组合为1,2,……,R+1
继续变化第R位,可以变到N;然后再变化第R-1位,R-2位,……,直至第1位的变化。
用数组B(20)记录组合,S记录组合总数。
【程序清单】
CLS
DIM B(20)
INPUT N,R
①______
FOR I = 0 TO R
B(I)=I
NEXT I
DO WHILE ②______
S=S+1
FOR I = 1 TO R
PRINT B(I);“ ”;
NEXT I
J=R
DO WHILE ③______
J=J-1
LOOP
B(J)=B(J)+1
FOR I = J+1 TO R
B(I)=B(I-1)+1
NEXT I
LOOP
PRINT “S=”;S
END
7、 对50位同学的数学成绩按100、90-99、80-89、70-79、60-69、50-59、0-49进行分段统计(成绩随机产生)。
10 ________:FOR I = 1 TO 50
20 A(I) = INT(______) :NEXT I
30 FOR I = 1 TO 50 :A = _______
40 S(A) = S(A) + 1 :NEXT I
50 PRINT “100分:”;_______
60 FOR I = 9 TO______STEP_______
70 PRINT _______;S(I)
80 NEXT I :PRINT “0-49:”;_______
90 END
8、 下图中的九个数字分成三段,按顺时针方向组成一个两位数、一个三位数、一个四位数,且满足等式:两位数×三位数=四位数
10 A$ = “13857964213857964”
20 FOR I = 1 TO 9
30 B$ = MID$(A$,______)
40 C$ = MID$(A$, I+2, 3)
50 D$ = MID$( A$,______ )
60 B = VAL(B$) :C = VAL(C$) :D = VAL(D$)
70 IF _______THEN PRINT B; “*”; C; “=”; D
80 NEXT I
9、连队共有103人(含连长、副连长),连长要选派一人去完成一项艰巨的任务,许多人都在争此任务,副连长也想去,于是他给连长出了个主意,让全体指战员排成一列,由连长在队外进行1、2报数,凡报到单数者退出,余者再1、2报数,单数退出……直到剩下一人即被选中执行任务。聪明的副连长应站在哪个位置才能被选中?
10 DIM ______
15 J = J + 1 :P = P + 1
20 IF A(P)=1 THEN ______:GOTO 30
25 IF J MOD 2 <> 0 THEN A(P) = 1 :______
30 IF S = 101 THEN 50
35 IF P = 102 THEN _______ :J = 0
40 GOTO 15
50 FOR I = 1 TO 102 :IF ______THEN PRINT I,
60 NEXT I
10、将输入字串中的连续空格压缩为一个空格后送到另一个字串中输出。
10 INPUT “A$=”; A$ :B$=”” :N=______
20 FOR I = 1 TO N :FOR J = ______
30 IF ______ <> ” “ THEN 50
40 NEXT J
50 IF _______THEN B$ = B$ + “______“
60 B$=B$+______ :I= ______
70 NEXT I :PRINT “B$=”; B$ :END
麻烦大家了,我们当家长不称职啊,计算机、奥数这些都不懂的,不知道怎么教小孩,在外面上课也是一知半解的,哎[em10][em10][em10]。我的邮箱decemberine@hotmail.com,谢谢大家了