第十章
下面关于void * malloc (unsigned int size)函数描述错误的( )。
函数的返回值为指向该区域起始地址的指针
malloc函数申请的空间若不释放,也有可能被其他程序申请
若分配不成功则返回NULL
答案:malloc函数申请的空间若不释放,也有可能被其他程序申请
有如下定义:struct node{ int data;struct node *next;}a,b,c;下列哪个答案可以将变量a,b,c在内存中的位置连接起来( )。
a=b=c;
a.data=&b; b.data=&c;
a.next=&b;  b.next=&c;
答案:a.next=&b; b.next=&c;
有以下结构体说明和变量的定义,且指针p指向结点a,指针q指向结点b。则把结点b连接到结点a之后的语句是( ) 。struct node {int data;struct node *next;}struct node a,b,*p=&a,*q=&b;
p->next=b;
a.next=q;
(*p)->next=q;
答案:a.next=q;
下列关于线性链表的叙述中,正确的是( )
各数据结点的存储顺序与逻辑顺序必须要一致
各数据结点的存储空间必须连续
进行插入和删除时,不需要移动链表中的元素
答案:进行插入和删除时,不需要移动链表中的元素
有以下结构体说明和变量定义:struct node{int data;struct *next;}*p1,*q,*p2;下面的链表中,在p1和p2之间插入一个元素q,正确的操作是( )
p1->next=p2;p2->next=q;
p1->next=q;  q->next=p2;
p2->next=q;  q->next=NULL;
答案:p1->next=q; q->next=p2;
有以下结构体说明和变量定义:struct node{int data;struct *next;}*p1,*q,*p2;下面的链表中,在p1和p2之间删除一个元素q,正确的操作是( )
p1->next=p2,p2->next=q;
p1->netx=p2->next;
p1->next=q;  q->next=p2;
答案:p1->next=q->next;
现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。struct node { double data; struct node*next;}*p, *q, *r;
p=r;
q->next=p;
q->next=r->next;
答案:p->next= q->next ;
在单链表指针为p的结点之后插入指针为s的结点,正确的操作是( )。
 s->next=p->next;p->next=s;
p->next=s->next;p->next=s;
p->next=s;s->next=p->next; 
答案:s->next=p->next;p->next=s;
若已建立下面的链表结构,指针p、s分别指向图中所示节点,则不能将s所指的节点插入到链表末尾的语句组是( )。
 p=(*p).next;      (*s).next=(*p).next;    (*p).next=s;
s->next=NULL;  p=p->next;  p->next=s;
p=p->next;  s->next=p;  p->next=s;
答案:p=p->next; s->next=p; p->next=s;
有如下定义:struct node { int data; struct node *next; }a,b,c;
a.next=b.next;
a=c;
a.next =c.next;
答案:a.next=b.next;

点赞(0) dxwkbang
返回
顶部