问题 单项选择题

与综合吊装法相比,采用分件吊装法的优点是()。

A.起重机开行路线短,停机点少

B.能为后续工序及早提供工作面

C.有利于各工种交叉平行流水作业

D.可减少起重机变幅和索具更换次数,效率高

答案

参考答案:D

解析:分件吊装法的优点是:可减少起重机变幅和索具的更换次数,从而提高吊装效率,能充分发挥起重机的工作能力,构件供应与现场平面布置比较简单,也能给构件校正、接头焊接、灌筑混凝土和养护提供充分的时间,A、B、C选项均为综合吊装法的优点,D选项为分件吊装法的优点。

填空题

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

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

[C代码]

typedef enumpoint,circle)shape_type; /*程序中的两种图形:点和圆*/

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

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

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

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

shape_t;

typedef struct(shape_t common;int x;int 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)return NULL;

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_point; /*返回点对象指针*/

typedef struct/*定义圆类型*/

shape_t common;

point_t*center; /*圆心点*/

int radius; /*圆半径*/

circle_t;

void destroyCircle(Circle_t* this)

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

void drawCircle(Circle_t* this)

printf<"C<">;

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

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

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

Circle_t* p_circle;

if((p_circle=(circle_t*)malloc(Sizeof(circle_t)))==NULL)return NULL;

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

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; /*可变参数列表*/

shape_t* p_shape=NULL;

(4) (ap,st);

if(st==point)p_shape=createPoint(&ap); /*创建点对象*/

if(st==circle) p_shape=createCircle(&ap); /*创建圆对象*/

va_end(ap);

return p_shape;

int main()

int i; /*循环控制变量,用于循环计数*/

shape_t* shapes[2]; /*图形指针数组,存储图形的地址*/

shapes[0]=createShape(point,2,3);/*横坐标为2,纵坐标为3*/

shapes[1]=createShape(Circle,20,40,10);

/*圆心坐标为(20,40),半径为10*/

for(i=0;i<2;i++)(shapes[i]->draw(shapes[i]);printf("\n");

/*绘制数组中图形*/

for(i=1;i>=0;i--) shapes[i]->destroy(shapes[i]);

/*销毁数组中图形*/

return 0;

[运行结果]

P(2,3)

(5)

Circle destoryed!

Point destoryed!

(2)处填()。

判断题