1、计算机水平考试初级程序员 2006 年下半年下午真题及答案解析(总分:120.00,做题时间:150 分钟)一、试题一至试题三是必答题(总题数:3,分数:45.00)1.试题一(共 15 分) 阅读以下说明和算法,完善算法并回答问题,将解答写在答题纸的对应栏内。 说明 假设以二维数组 G1m,1n表示一幅图像各像素的颜色,则 Gi,j表示区域中点(i,j)处的颜色,颜色值为 0 到 k 的整数。 下面的算法将指定点(i0,j0)所在的同色邻接区域的颜色置换为给定的颜色值。约定所有与点(i0,j0)同色的上、下、左、右可连通的点组成同色邻接区域。 例如,一幅 89 像素的图像如图 1-1 所示。
2、设用户指定点(3,5),其颜色值为 0,此时其上方(2,5)、下方 (4,5)、右方(3,6)邻接点的颜色值都为 0,因此这些点属于点(3,5)所在的同色邻接区域,再从上、下、左、右四个方向进行扩展,可得出该同色邻接区域的其他点(见图 1-1 中的阴影部分)。将上述同色区域的颜色替换为颜色值 7 所得的新图像如图 1-2 所示。 (分数:15.00)_2.试题二(共 15 分) 阅读以下说明和 C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。 说明 某单位准备进行一次选举,对指定的 n 名(nprintTicket(); ; class HeadDecorator : public D
3、ecorator public: HeadDecorator(SalesTicket *t): (2) void printTicket() cout = 1 class SalesTicket public: (1) printTicket() cout printTicket(); ; class HeadDecorator : public Decorator public: HeadDecorator(SalesTicket *t): (2) void printTicket() cout “这是票据的台头!“ endl; Decorator:printTicket(); ; clas
4、s FootDecorator :public Decorator public: FootDecorator(SalesTicket *t): (3) void printTicket() Decorator:printTicket(); cout “这是票据的脚注!“ endl; ; void main(void) SalesTicket t; FootDecorator f( HeadDecorator h( (4) ); h.printTicket(); cout “-“ endl; FootDecorator a(NULL); HeadDecorator b( (5) ); b.pr
5、intTicket(); (分数:15.00)_正确答案:((1) virtual void (2) Decorator(t) (3) Decorator(t) (4) public class Decorator extends SalesTicket SalesTicket ticket; public Decorator(SalesTicket t) ticket = t; public void printTicket() if(ticket != null) ticket.printTicket(); public class HeadDecorator extends Decora
6、tor public HeadDecorator(SalesTicket t) (1) ; public void printTicket() System.out.println(“这是票据的台头!“); super.printTicket(); public class FootDecorator extends Decorator public FootDecorator(SalesTicket t) (2) ; public void printTicket() super.printTicket(); System.out.println(“这是票据的脚注!“); public class Main public static void main(String args) T = new HeadDecorator( (3) ); T. (4) ; System.out.println(“-“); T = new FootDecorator( (5) ); T.printTicket(); (分数:15.00)_正确答案:((1) super(t) (2) super(t) (3) new FootDecoratro (new SalesTicket() (4) printTicket() (5) new HeadDecorator (null)解析: