问题 单项选择题

图示结构,求A、B两截面的相对转角时,所设相应单位荷载应为()。

 

A. 一个作用在截面A的单位集中力偶

B.一个作用在截面月的单位集中力偶

C.分别在截面A、月各作用一个单位集中力偶,方向相同

D.分别在截面A、月各作用一个单位集中力偶,方向相反

答案

参考答案:D

解析:

在利用单位荷载法,如果求某两个截面之间的相对角位移,则应该在这两个截面相应位置处施加一对单位集中力偶,且方向相反,如下图所示,因此选项(D)正确。

[点评] 单位荷载法不仅可以用于计算线位移,而且可以用于计算角位移、相对位移等。在用单位荷载法建立虚拟的平衡状态时,需要注意单位荷载应是与所求广义位移相应的广义力。此处的相应指的是力与位移在做功关系上的对应,例如与线位移相对应的是集中力,与角位移相对应的是力偶等。另外要注意的是,应使单位荷载仅在所求的广义位移上做功,而且使所做的功就等于所求位移本身。

填空题

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

[说明]

函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:

typedef struct Gnode /*邻接表的表结点类型*/

int adjvex; /*邻接顶点编号*/

int weight; /*弧上的权值*/

struct Gnode*nextarc;/*指示下一个弧的结点*/

Gnode;

typedef struct Adj list /*邻接表的头结点类型*/

char vdata; /*顶点的数据信息*/

struct Gnode *Firstadj;/*指向邻接表的第一个表结点*/

Adjulist;

typedef struct LinkedWDigraph/*图的类型*/

int n,e; /*图中顶点个数和边数*/

struct Adjlist *head; /*指向图中第一个顶点的邻接表的头结点*/

LinkedWDigraph;

例如,某AOE网如图21-1所示,其邻接表存储结构如图21-2所示。

[本题函数]

int Toplogical(LinkedWDigraph G)

Gnode *p;

int j,W,top=0;

int *Stack,*ve,*indegree;

ve=(int *)malloc((G.n+1) *sizeof(int));

indegree=(int*)maZZoc((G.n+1)*sizeof(int));/*存储网中各顶点的入度*/

Stack=(int*)malloc((G.n+1)*sizeof(int));/*存储入度为0的顶点的编号*/

if(!ve||!indegree||!Stack)exit(0);

for(j=1;j<=G.n;j++)

ve[j]=0;indegree[j]=0;

/*for*/

for(j=1;j<=G.n;j++) /*求网中各顶点的入度*/

p=G.head[j].Firstadj;

while(p)

(1) ;p=p->nextarc;

/*while*/

/*for*/

for(j=1;j<=G.n;j++) /*求网中入度为0的顶点并保存其编号*/

if(!indegree[j]) stack[++top]=j;

while(top>0)

w= (2)

printf("%c ",G.head[w].vdata);

p=G.head[w].Firstadj;

while(p)

(3)

if(!indegree[p->adjvex])

Stack[++top]=p->adjvex;

if( (4) )

ve[p->adjvex]=ve[w]+p->weight;

p=p->nextarc;

/*while*/

/*while*/

return (5)

/*Toplogical*/

(3)处填()。

单项选择题