1988年度高级程序员级下午试题
| 从下面 5 道试题( 试题一~试题五 )中任选 3 道解答。如果解答的试题超过 3 道,则解答的前 3 道试题有效。 |
阅阅读下列说明及流程图
A 和 B,回答问题 1 至问题 3,把解答填入答卷的对应栏内。
[说明]
某公司所属各厂生产甲型、乙型、丙型三种型号的同类产品。各厂每日向公司提供各种型号的日生产量数据,数据格式如下;
| 厂代码 | 甲型产品日产量 | 乙型产品日产量 | 丙型产品日产量 |
公司每日生成日产量文件 A 和以厂代码为序( 递增 )的日产量报表。在必要时可生成月( 年 )产量文件 B ( 文件 C )和月( 年 )产量报表。处理过程如流程图 A 所示。
利用文件 A ( 文件 B、文件 C ) 可·生成下面所示的日( 月、年 )产量名次表。

在名次表中对每一种型号的产品,各厂以产量递降的顺序排列,产量相同的厂按厂代码递增顺序排列。处理过程如流程图 B 所示。其中,处理 8 是把欲排名次的文件( A 或 B 或 C )分割成各厂各种型号产量的记录,记录格式如下
| 厂代码 | 厂 名 | 产品型号代码 | 产 量 |
处理 12 编辑并输出日( 月,年 )产量名次表,但不作分类工作。
[向题1]
① 指出错误清单中应有哪两方面的出错信息。
② 简要说明处理2的处理内容。
③ 指出文件A(日产量文件)的记录格式。
④ 指出在流程图 A 中引入文件 B ( 月产量文件 )有何好处。
⑤
分别指出处理 4 和处理 6 的最少执行频度。
·[问题2]
① 写出处理 9 中分类的关键项的顺序,以及各关键项的升降顺序。
②
简要叙述处理 10,处理 11 的处理内容。
[问题3]
按流程图 B 的处理过程,为了在名次表的右边输出总产量,应在处理 8 中增加哪些处理。总产量是指各·厂的甲、乙、丙三种型号产量的合计。
| [流程图 A ] | [流程图 B ] |

试题二
阅读下列说明和流程图,回答问题 1 和问题 2,把解答填入答卷的对应栏内。
[说明]
(1) 流程图对某电业局内所有电厂的某些生产和经济数据作统计处理。
(2) 该电业局约有 500 个电厂,各电厂分属若干管辖部门。按电厂的管辖部门划分,电厂分为部属厂,省(市)属厂,地(县)属厂和企业(农村)自备厂等。
(3) 流程图c中的“属性文件”存贮电厂的属性信息,其记录格式如下:
| 电厂代码 | 所属部门代码 | 年计划发电量 |
其中电厂代码采用全局统尸编码。
(4) 流程图中利用“属性更改数据’更改电厂的属性。
(5> 电厂的“月生产数据”的输入格式如下
| 电厂代码 | 月发电量 | 月煤耗量 |
(6) 每月产生两种表格。
① 部门生产情况明细表。其格式如下所示:
|
部门生产情况明细表 部门名称________ |
||||
| 电厂名称 | 月发电量 | 年累计发电量 | 计划发电量 | 月煤耗量 |
| -——— | -——— | -——— | -——— | -——— |
| -——— | -——— | -——— | -——— | -——— |
| 部门总计 | -——— | -——— | -——— | -——— |
②局生产情况汇总表。其格式如下所示:
|
局生产·情况汇总表 |
|||||
| 部门代码 | 部门名称 | 月发电量 | 年累计发电量 | 计划发电量 | 月煤耗量 |
| —— | —— | —— | —— | —— | —— |
| —— | —— | —— | —— | —— | —— |
(7) 流程图中的处理 5 和处理 6 是编辑并输出报表,不作数据汇总工作。
[问题1]
① 指出综合数据文件的记录中必需包含哪些数据项?
② 流程图C中的处理4中分类的主、副关键项是什么?
③“属性更改处理”按属性更改数据作以下三种处理:
更改某厂的年计划发电量,更改某厂的所属部门,登记新电厂。
试设计出属性更改数据的输入格式,并要求输入的属性更改数据的数据量尽可能少。
[问题2]
若电厂代码采用下列形式:
|
所属部门代码 2位数字 |
部门内电厂序号 2位数字(≤90) |
其中部门内电厂序号从 1 开始编号。
① 流程图中的处理 1 至处理 4,有哪些处理可省略。
② 由于各部门的总计数据也存放在·综合数据文件中,·试为“部门总计”设计代码( 流程图中的有关处理将把它看作电厂代码 )。
[流程图]

试题三
阅读下列说明和流程图,回答问题 1~问题 4,把答案填入答卷的对应栏内。
[说明]
某工厂有粗加工设备和精加工设备各一台,用于加工若干个不同的零件。每个零件均需依次经过祖加工和精加工两道工序。粗加工设备可无等待地对要求加工的零件进行粗加工,但每个零件都只有在完成粗加工后才能进行精加工。所以对应于不同的加工顺序,精加工设备的等待时间也可能不同。
|
从第一个零件交付粗加工的时刻开始到最后一个零件精加工结束所需的时间称为总加工时间( 从粗加工到精加工的切换时间忽略不计,并且不能中断正在加工的零件 )。因此,总加工时间的长短取决于加工的顺序。 · 确定加工顺序的一种方法是以零件的粗、精加工所需时间为依据,粗加工时间短的零件先进行粗加工和精加工,精加工时间短的零件后进行粗加工和精加工。例如,对于如右表所示三种零件,加工顺序为J2,J3,J1。流程图D的实现算法叙述如下: |
|
设有 n 个零件 J1,J2,…,Jn,零件 Ji 的粗加工时间为 Ai,精加工时间为 Bi( i=1,2,…,n ),它们按 A1,B1,A2,B2,…,An,Bn 的次序存放在数组 X 中。 另设有 n 个元素的数组 S,其中 S[l],S[l+1],…,S[r] 为尚未排定加工顺序的零件号,其余为巳排定加工顺序的零件号。r 和 S 的初值分别为 l=1,r=n,S[i]=i(i=1,2,…,n)。在与S[l],S[l+1],…,S[r] 对应的所有 Ai 和 Bi 中找出最小值,如果此最小值是粗加工时间 Am,则将 s[m] 与 S[l] 互换,并调整 l,表示该零件先加工;如果此最小值是精加工时间 Bi, 则将 S[m] 与 S[r] 互换,并调整 r,表示该零件后加工。重复上述过程,直到所有零件都排定加工顺序为止。此时 S 便指出了零件的加工顺序。
|
[问题1] 现有五个零件,各零件的加工时间如右表所示。
根据上述算法,求出这五个零件的加工顺序。 |
|
填充流程图中的
①~⑤,使之成为完整的流程图( 每处只填一个“a→b”或“a:b”型的字句
)。
[问题3]
若 Ai
和 Bi 的存放次序为 A1A2…AnB1B2…Bn,则流程图中(Ⅰ), (Ⅱ), (Ⅲ).(Ⅳ)四处应如何修改?
[问题4]
当零件个数为 n 时,流程图中(Ⅱ)处共执行多少次( 用 n 回答 )?
[流程图]
试题四
阅读下列说明及流程图
E 和 F,回答问题1至问题3,把解答填入答卷的对应栏内。
[说明]
流程图 E 和流程图 F 分别给出两种查找 P 是否是 S 的子序列的方法,对于两个长度分别为 m 和 n( n≥m>O )的字符序列
P=P0Pl…pm-1
S=SOS1…Sn-1
当 P 是 S 的子序列时,输出 P 在 S 中首次出现的起始位置,否则输出“失败”信息。
流程图 E 的查找方法是将 P 与 S 左端对齐,自左至右逐个比较 P与 S 的对应字符。如不相同,P 就向右移动一个字符位置。
流程图 F 的查找方法是将 P 与 S 左端对齐,自右至左逐个比较 P 与 S 的对应字符。如不相同,P 就向右移动 D[Sk]个字符位置。其中,Sk 是发现不相同时,与字符 Pm-l 对应的 S 中的那个字符。
数组 D[字符] 的值用以下流程图所示的算法确定:
|
|
例如:当 P 为 book 时,m=4,D 的值如下表所示·:
若
S 为 ipokebookw,则查找过程如下:
|
[问题1]
填充流程图
E 和流程图 F 中的 ①~⑥,使之成为完整的流程图(每处只填一个“a→b”或“a:b”型的字句)。
[问题2]
在查找失败时,流程图
E 中(Ⅰ)处的字符比较次数最少是多少?最多是多少?( 用 m 和 n
表示 )。
[问题3]
在查找失败时,S
和 P 必须满足什么条件,才能使流程图 F 中(Ⅱ)处字符比较的次数为
n/m(取整)?
[流程图]
| 流程图 E | 流程图 F |

试题五
阅读下列说明和流程图,回答问题
1 至问题 3 ,把答案填入答卷的对应栏内。
[说明]
流程图是一种奇特的用二分法求实系数多项式 P(x) 在区间 [a,b] 上的实根的流程图。精度为 eps(eps>0)。设
P(x)=a1xn+a2xn-1+·…·+anx+an+1(
n>O )
[问题1]
假定
P(x) 在 [a,b] 上有实根,且 P(a)*P(b)<0,填充流程图 G 中的 ①~⑦,使之成为完整的流程图(
每处只填一个“a→b”或“a:b”型的字句 )。
[问题2]
假定
P(x) 在 [a,b] 上没有实根,由流程图 G 输出的 x 的值是什么?
[问题3]
假定 P(x) 在 [a,b]上有实根,在什么情况下流程图 G 输出的根是不正确的?

注:cps是精度要求
试题六 略 (CAP-14汇编)
| 从下列试题 7 至试题 9 中任选 l 道解答。 如果解答的试题数超过 1 道,则解答的前 1 道有效。 |
试题七~九 略(FORTRAN、PASCAL、COBOL)