2018 年上半年 程序员 下午试卷 第 3 页 (共 11 页)
试题一
【说明】
设 [a1b1],[a2,b2],...,[an,bn] 是 数 轴 上 从 左 到 右 排 列 的 n 个 互 不 重 叠 的 区 间
(a1<b1<a2<b2...<an<bn).以下流程图将一个新的区间[A,B](A<B)添加到上述区间集,形
成新的从左到右排列的若千个互不重叠的区间(若 A、B 落在原有的两个区间,则以原有区
间最左端点和最右端点为基准,形成新的区间),最后依次输出这些区间的端点。
例 如 , 给 定 区 间 集 :[1,2],[4,6],[8,10],[13,15],[17,20], 添 加 区 间 [5,14] 后 , 依 次 输 出
1,2,4,15,17,20,表示合并后的区间集:[1,2],[4,15],[17,20]。
该流程图采用的算法是:先在 a1,b1,a2,b2,...,an,bn 中扫描定位 A 点,再继续描定位 B 点,
在扫描过程中随时输出已确定的区间的端点值。
【问题 1】
阅读以下说明和 C 代码,填写程序中的空(1) ~(5),将解答写入答题纸的对应栏内。