选择题:阅读以下说明和C代码,将应填入(n)处的字句写在的对应栏内。 【说明】 在一个简化的绘图程序中,支持

  • 题目分类:软考中级
  • 题目类型:选择题
  • 查看权限:VIP
题目内容:
阅读以下说明和C代码,将应填入(n)处的字句写在的对应栏内。

【说明】

在一个简化的绘图程序中,支持的图形种类有点(point)和圆(circle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape t、 point t和circle t分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。

【C代码】

typedef enum { point,circle } shape type; /* 程序中的两种图形:点和圆 */

typedef struct { /* 基本的图形类型 */

shape_type type; /* 图形中类标识:点或者圆*/

void (*destroy) (); /* 销毁图形操作的函数指针*/

void (*draw) (); /* 绘制图形操作的函数指针*/

} shape_t;

typedef struct { shape_t common; int x; iht y; } point_t; /* 定义点类

型, x, y为点坐标*/

void destroyPoint (point_t* this) { free (this); printf ("Point destoryed!

\n"); } ) /* 销毁点对象*/

void drawPoint(point_t* this) { printf("P(%d,%d)", this->x, this->y); }

/* 绘制点对象*/

shape_t* createPoint (va_list* ap) (/* 创建点对象,并设置其属性*/

point_t* p_point;

if ( (p_point= (point_t*)malloc (sizeof (point_t)) ) ==NULL) returnNULL;

p_point->common, type = point; p_point->common, destroy = destroyPoint;

p_point->common.draw = drawPoint;

p_point->x = va_arg(*ap, int); /* 设置点的横坐标*/

p_point->y = va_arg(*ap, int); /* 设置点的纵坐标*/

return (shape_t*)p_ooint; /*返回点对象指针*/

}

typedef struct { /*定义圆类型*/

shape_t common;

point_t 4center; /*圆心点*/

int radius; /*圆半径*/

} circle_t;

void destroyCircle(circle_t* this){

free((1)); free(this); printf("Circle destoryed!\n");

}

void drawCircle(circle_t* this) {

print f ("C (");

(2).draw(this->center); /*绘制圆心*/

printf(",%d) ", this->radius);

}

shape_t* createCircle(va_list4 ap) { /*创建一个圆,并设置其属性*/

circle_t4 p circle;

if ((p_circle = (circle_t4)malloc (sizeof (circle_t)) ) ==NULL ) return NULL;

p_circle->common.type = circle; p_circle->common.destroy = destroy

Circle;

p_circle->common.draw = drawCircle;

(3) = createPoint(ap); /* 设置圆心*/

p_circle->radius = va_arg(*ap, int); /* 设置圆半径*/

return p_circle;

}

shape_t* createShape(shape_type st, "') { /* 创建某一种具体的图形*/

va_list ap; /*可变参数列表*/

&nbs




参考答案:

阅读下列说明和Java代码,将应填入(n)处的字句写在对应栏内。【说明】 已知某企业的采购审批是分级进

阅读下列说明和Java代码,将应填入(n)处的字句写在对应栏内。【说明】 已知某企业的采购审批是分级进

查看答案

长期服用最易造成胃肠道损害,溃疡出血不良反应的药物是A . P-内酰胺类抗生素 B .氨基糖苷类抗生素 C .喹诺酮类抗菌药 D .糖皮质激素类药物 E.非甾体抗炎药

长期服用最易造成胃肠道损害,溃疡出血不良反应的药物是 A . P-内酰胺类抗生素 B .氨基糖苷类抗生素 C .喹诺酮类抗菌药 D .糖皮质激素类药物 E.非甾体抗炎药

查看答案

A. 50%葡萄糖注射液湿敷B. 50%硫酸镁溶液口服C. 25%硫酸镁注射液稀释后静脉注射D. 5%氯化钙注射液静脉滴注E. 50%硫酸镁溶液湿敷

A. 50%葡萄糖注射液湿敷 B. 50%硫酸镁溶液口服 C. 25%硫酸镁注射液稀释后静脉注射 D. 5%氯化钙注射液静脉滴注 E. 50%硫酸镁溶液湿敷患者,男,36岁,在静脉滴注复方氨基酸注射液过程中,穿刺部位出现水肿,可选用的治疗方法是( )

查看答案

在该水电站安全监测系统中,数据采集任务(Collect_task)把所采集的数据送入一单缓冲区,计算任务(C

在该水电站安全监测系统中,数据采集任务(Collect_task)把所采集的数据送入一单缓冲区,计算任务(C

查看答案

是空腹血浆中的主要脂蛋白,可将胆固醇运输到肝外组织的为()

是空腹血浆中的主要脂蛋白,可将胆固醇运输到肝外组织的为()A:三酰甘油酯 B:血清总胆固醇 C:低密度脂蛋白胆固醇 D:极低密度脂蛋白胆固醇 E:高密度脂蛋白胆固醇

查看答案