‘96 上海市青少年计算机程序设计竞赛试题
竞赛注意事项:
1. 上机竞赛在 2 小时内完成,可以不经书编程,直接输入计算机调试。
2. 试题一~五的程序完成后,分别以 A、B、C、D、E 文件名存入磁盘。
3. 每完成一题后即填写完成时间,以备机器故障时给予处理。
4. 竞赛的程序以运行结果作为主要评分依据,人为判断、直接打印者不给分。
5. 测试数据将有多套,运行速度 的快慢将作为评分依据之一。
一、如下图,有 I 种货物将存放在 N 个仓库里(I=N,I<=20)。假设各种货物由同一种车辆运输,一种货物
存放在一个仓库,而且每个仓库都足够大。现在已知货物 1 的存储量为 M1 吨,周转周期为 D1 天(即在 D1
天里,有 M1 吨货物 1 运进,并运出。),货物 2 的存储量为 M2 吨,周转周期为 D2 天,…,货物 I 的存储量
为 Mi 吨,周转周期为 Di 天。问怎样安排仓库储存,可使运输的车公里数为最少?(15 分)
原始数据由正文文件输入,文件第一行是一个数字 I,表示 I 种货物,第二行为 I 种货物的存储量,
第三行为 I 种货物的周转周期,同一行中各数字间以空格分隔。输入数据均不需判错。
由屏幕打印运行结果,第一行是仓库的编号,第二行为对应货物的编号。
例对右图的正文文件,输入输出格式如下:
Enter : TEST1-1.TXT TEST1-1.TXT
7
N1 N2 N3 N4 N5 N6 N7 12 7 38 109 64 580 1088
Ix Ix Ix Ix Ix Ix Ix 30 23 8 14 5 42 113
二、求 N!的精确值(N<100。N!为 1*2*3*4*5……*N)。(15 分)
输入输出格式为:
INPUT N = 23
23! = 258526640000
三、编写一个整理 TURBO PASCAL 源文件的程序,它先输入要整理的源文件标识符,然后逐个字符读取该
文件的所有内容,经适当改造后再存入目标文件标识符。程序应能自动地将源文件中的所有 TURBO PASCAL
的保留字改成大写,将每个单词的首字母改成大写,其余的改成小写。但不影响字符串和注释语句中的大
小写。(20 分)
程序运行时输入、输出格式:
Enter source :源文件标识符
Enter target :目标文件标识符
输入数据均不需判错。
附 TURBO PASCAL 52 个保留字:
ABSOLUTE AND ARRAY BEGIN CASE CONST CONSTRUCTOR
DESTRUCTOR DIV DO DOWNTO ELSE END EXTERNAL FILE FOR
FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INLINE
INTERFACE INTERRUPT LABEL MOD NIL NOT OBJECT OF OR PACKED
PROCEDURE PROGRAM RECORD REPEAT SET SHL SHR STRING THEN
TO TYPE UNIT UNTIL USES VAR VIRTUAL WHILE WITH XOR
四、在 N 线×N 线的围棋盘上(N 为奇数,且 6<N<30),布满了黑子及白子。请编程输出黑棋及白棋各有几
块?每块各有几子?(20 分)
原始数据由正文文件输入,文件第一行是一个数字 N,表示棋盘的大小,其下 N 行为该方阵,其中 1
表示黑子,2 表示白子。同一行中各数字间以空格分隔。输入数据均不需判错。
由屏幕打印运行结果,先黑棋,后白棋。各块棋从大到小排序输出。
例对右图的正文文件,输入输出格式如下: TEST4-1.TXT
Enter : TEST4-1.TXT 7
Black: 1 1 1 1 2 2 2