回 帖 发 新 帖 刷新版面

主题:[讨论]给我点题目(附上答案),加分!!

要考试了,给我点可能考的题目。

回复列表 (共9个回复)

沙发

考试?考什么?

板凳

江苏省信息夏令营么?

3 楼

嗯,南京“信息与未来”

4 楼

我是南京的,也是参加这个比赛的!!

5 楼

2005年江苏省"信息与未来"小学生夏令营活动
计算机操作项目之一:程序设计试题
1,    【回文数个数】
如果一个正整数从左向右读与从右向左读均是一样,则称其为回文数。例如3、121、3223、12021都是回文数。
输入:任意给定的一个正整数n(0<n<=100000)
输出:一个正整数,表示[1,n]之间的回文数的个数。
【输入格式】键盘输入 ,无须合法性检验.
【输出格式】输出到屏幕 。
【样例】
输入                              输出
 325                             41

2、   【对应关系】
给定两个长度相同的字符串A$和B$,如果A$中的一字符与B$中的一字符出现次数相同,则说此二字符是对应的;如果A$中所有字符分别对应于B$中所有字符,则说二字符串之间存在一个对应关系;要求算出两串之间存在的所有对应关系的个数(若无对应关系,则输出为0)。
例如: A$=”abac”,  B$=”3132”,那么它们之间存在2个对应关系, 分别是:
a    3        a    3
b    1        b    2
c    2        c    1
【输入格式】键盘输入。只有两行,每行给出一个字符串,每个字符串全部由小写字母或数字组成,串的长度不超过20,而且串中最多出现10种不同字符。不必对输入做正确性检查。
【输出格式】一个正整数,表示输入字符串之间存在对应关系的个数。
【样例】
输入:                      输出
abad                     2
1231
CLS
DO: INPUT Y
IF Y = -1 THEN EXIT DO
OPEN " F:\DATA\2005\05T2\JS20" + LTRIM$(STR$(Y MOD 10)) + ".IN" FOR INPUT AS #1
INPUT #1, A$
INPUT #1, B$
REDIM A(20), A$(10), B(20), B$(10), SA(20), SB(20)
CLOSE
IA = 0
L = LEN(A$)
FOR I = 1 TO L
AA$ = MID$(A$, I, 1)
FOR J = 1 TO IA
IF AA$ = A$(J) THEN EXIT FOR
NEXT J
IF J = IA + 1 THEN IA = IA + 1: A$(IA) = AA$: A(IA) = 1 ELSE A(J) = A(J) + 1
NEXT I
'FOR I = 1 TO IA: PRINT A$(I); "=====>"; A(I): NEXT I: PRINT

IB = 0
FOR I = 1 TO L
BB$ = MID$(B$, I, 1)
FOR J = 1 TO IB
IF BB$ = B$(J) THEN EXIT FOR
NEXT J
IF J = IB + 1 THEN IB = IB + 1: B$(IB) = BB$: B(IB) = 1 ELSE B(J) = B(J) + 1
NEXT I
'FOR I = 1 TO IB: PRINT B$(I); "=====>"; B(I): NEXT I: PRINT

FOR I = 1 TO IA
SA(A(I)) = SA(A(I)) + 1
IF MI < A(I) THEN MI = A(I)
NEXT I
FOR I = 1 TO IB
SB(B(I)) = SB(B(I)) + 1
IF MI < B(I) THEN MI = B(I)
NEXT I

S = 1
FOR K = 1 TO MI
IF SA(K) <> SB(K) THEN PRINT "0": GOTO 1
IF SA(K) = 0 THEN 10
P = 1
FOR T = 1 TO SA(K): P = P * T: NEXT T
S = S * P
10 NEXT K
PRINT S
1 LOOP
END
3   【进制数】
给出一个正整数n(1≤N≤1023),将其化为10位二进制数,然后计算出二进制数中的“1”的个数,若1的个数为奇数,则在最高位前加上一个1,否则加上一个0,最后将在此基础上形成的11位二进制数,用3个十六进制数输出。
 例  如:输入 23   化为二进制数为: 0000010111
         因为1的个数是4个,在最高位前加0,得到:00000010111
          输出:0H,1H,7H
 再例如:输入 453   化为二进制数为: 0111000101
                因为1的个数是奇数,所以在最高位前加1,得到:10111000101
          输出:5H,CH,5H        
   【输入格式】键盘输入。一个正整数n。
【输出格式】根据形成的11位二进制数,用3个十六进制数输出。
【样例】
输入:                      输出
       453                      5H,CH,5H
CLS
INPUT N
FOR I=1 TO 10
Y=N MOD 2:N=N\2
X$=LTRIM$(STR$(Y))+X$
IF Y=1 THEN S=S+1
NEXT I
IF S MOD 2=0 THEN X$="0"+X$ ELSE X$="1"+X$
FOR I=LEN(X$) TO 1 STEP -1
B=VAL(MID$(X$,LEN(X$)+1-I,1))
W=W+B*2^(I-1)
NEXT I
FOR I=1 TO 3
Y=W MOD 16:W=W\16
IF Y>9 THEN E$=CHR$(55+Y)+"H,"+E$ ELSE E$=LTRIM$(STR$(Y))+"H,"+E$
NEXT I
PRINT LEFT$(E$,LEN(E$)-1)
END
4    【走迷宫】
       小明与许多同学一起参加了今年的“信息与未来”小学生夏令营活动。夏令营的组织者设计安排了许多有趣的活动,走迷宫就是其中的一项。
       迷宫由N*N个方格组成,每个方格均被组织者事先标上了“0”或“1”(左上角第一个方格和右下角最后一个方格一定是“0”)。当你进入左上角的第一个方格中时,看到相邻的方格是“0”时则可以进入,而如果是“1”时则表示此路不通。
      小明被告之:从迷宫的左上角第一个方格的入口处准备进入时,你可得到一个记有N*N分值的记分表,每经过一个标有“0”的方格,记分表将自动扣去1分,当走到右下角最后一个方格的出口处时,将显示你手中的记分表剩余的分值。
      夏令营的组织者将只奖励所有参加此项活动中,记分表剩余的分值最多的营员。
【输入格式】你应当从指定的文件中读取相关数据。
              每个文件的第一行是一个整数N(3≤N≤40),接下来有N行,每行均有N个由0 和1组成的数据
【输出格式】输出至屏幕,一个整数(记分表剩余的分值)
【样例】
    输入                          输出
       4                          9
       0011
       1000
       0001
       1000

OPEN " F:\DATA\2005\05T4\IN1.IN" FOR INPUT AS #1
INPUT #1, N
DIM X(500), Y(500), Z(500), A(N, N), V(4, 2)
CLS
X0 = 1: Y0 = 1
XE = N: YE = N
FOR I = 1 TO N
INPUT #1, M$
FOR J = 1 TO N
A(I, J) = VAL(MID$(M$, J, 1))
NEXT J, I
FOR I = 1 TO 4: FOR J = 1 TO 2
READ V(I, J)
NEXT J, I: DATA 1,0,0,1,0,-1,-1,0
P = 1: X(P) = X0: Y(P) = Y0: I = 0
WHILE P > 0
I = I + 1
IF I <= 4 THEN
X = X(P) + V(I, 1): Y = Y(P) + V(I, 2)
IF X > 0 AND X <= N AND Y > 0 AND Y <= N THEN
IF A(X, Y) = 0 THEN
P = P + 1: X(P) = X: Y(P) = Y: Z(P) = I: A(X, Y) = 2: I = 0
IF X = XE AND Y = YE THEN PRINT N * N - P
END IF
END IF
ELSE
I = Z(P): P = P - 1
END IF
WEND
END

6 楼

4楼的,我们应该会见面。

7 楼

5楼程序烦!

8 楼

5楼的程序可以简化

9 楼


是可以简化,我题目答案都是在网上搜到的

我来回复

您尚未登录,请登录后再回复。点此登录或注册