第十章 链表:链表10.1链表的基本概念:链表的基本概念[单选题]若已建立下面的链表结构,指针p、s分别指向图中所示节点,则不能将s所指的节点插入到链表末尾的语句组是( )。选项:[p=p->next; s->next=p; p->next=s;, p=p->next; s->next=p->next; p->next=s;, p=(*p).next; (*s).next=(*p).next; (*p).next=s;, s->next=NULL; p=p->next; p->next=s;]
10.2单链表的基本操作:单链表的基本操作
10.3综合案例:成绩系统中链表的使用:综合案例:成绩系统中链表的使用
[单选题]有如下定义:
struct node { int data;
struct node *next; }a,b,c;选项:[a.next=b.next;, a.next =c.next; , a=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;选项:[a.next=q;, (*p)->next=q;, p.next=&b;, p->next=b;]
[单选题]
有如下定义:
struct node
{ int data;
struct node *next;
}a,b,c;
下列哪个答案可以将变量a,b,c在内存中的位置连接起来( )。
选项:[a.next=&b; b.next=&c;, a.data=&b; b.data=&c;, a.next=b.next=c.next;, a=b=c;]
[单选题]下面关于void * malloc (unsigned int size)函数描述错误的( )。选项:[malloc函数申请的空间若不释放,也有可能被其他程序申请, malloc()函数用来动态分配内存,所分配的空间长度为size, 若分配不成功则返回NULL, 函数的返回值为指向该区域起始地址的指针]
[单选题]
有以下结构体说明和变量定义:
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的结点之后插入指针为s的结点,正确的操作是( )。选项:[ s->next=p->next;p->next=s; , p->next=s;p->next=s->next; , p->next=s;s->next=p->next; , p->next=s->next;p->next=s; ]
[单选题]现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。struct node { double data; struct node*next;}*p, *q, *r;选项:[q->next=r->next; , p=r;, p->next= q->next ;, q->next=p;]
[单选题]
有以下结构体说明和变量定义:
struct node{
int data;
struct *next;}*p1,*q,*p2;
下面的链表中,在p1和p2之间插入一个元素q,正确的操作是( )
选项:[p1->next=q; q->next=p2; , p2->next=q; q->next=NULL; , p1->next=p2;p2->next=q;, p1->next=q; q->next=NULL;][单选题]下列关于线性链表的叙述中,正确的是( )选项:[进行插入和删除时,不需要移动链表中的元素, 各数据结点的存储顺序与逻辑顺序必须要一致, 其他三种说法都不对, 各数据结点的存储空间必须连续]
温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!