若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:A.a.next=c; c.next=b;B.p.next=q; q.next=p.next;C.p->next=&c; q->next=p->next;D.(*p).next=q; (*q).next=&b;

题目

若有以下定义:

struct link

{ int data;

struct link *next;

} a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:

A.a.next=c; c.next=b;

B.p.next=q; q.next=p.next;

C.p->next=&c; q->next=p->next;

D.(*p).next=q; (*q).next=&b;


相似考题
更多“ 若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到”相关问题
  • 第1题:

    若有以下定义 struct link { int data; struct link *next; } a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是

    A.a.next=C;c.next=b;

    B.p.next=q;q.next=p.next;

    C.p->next=&c;q->next=p->next;

    D.(*p).next=q;(*q).next=&b;


    正确答案:D
    解析: 本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。

  • 第2题:

    若以下定义:struct link{ int data; struck link *next;}a,b,c,*p,*q;且变量a和b之间已有下图所示的链表结构:

    指针p指向变量a,q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是( )。

    A.a. next=c;c. next=b;

    B.p. next=q;q. next=p. next;

    C.p->next=&c; q->next=p>next;

    D.(*p).next=q;(*q).next=&b;


    正确答案:D
    解析:在本题,扣指针p指向变量a,q指向变量c。要把c插入到变量a和变量b之间,就应该首先让变量a的指针域指向变量c,即(*p).next=q,然后让变量c的指针域指向变量b,即(*q).next=&b。所以,4个选项中D为所选。

  • 第3题:

    若以下定义: struct link { int data; struct link *next; }a,b,C,*p,*q; 且变量a和b之间已有下图所示的链表结构。

    指针p指向变量a,q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是( )。

    A.a.next=c;c.next=b;

    B.p.next=q;q.next=p.next;

    C.q->next=p->next;p->next=&c;

    D.(*p).next=c;(*q).next=b;


    正确答案:C
    解析:本题考核结构型指针的应用。当指针所指向的变量的类型为结构类型时,这个指针就是结构指针。题中定义了p和q为结构指针。当访问由指针所指向的结构的元素时,用箭头“->”运算符实现这个操作。分析各选项:选项A中,语句“a.next=c;c.next=b;”的赋值有问题,因为结构成员next为结构型指针,而变量c和b只是结构变量,不是地址值,所以达不到题目要求。选项B中,执行语句“p.next=q;q.next=p.next;”后,只是把a点和c点双向连接起来了,并不能把c插入到a和b之间,形成新的链表。选项C中,先让c的后趋节点指向a的后趋节点b,再使a的后趋节点指向c。这样就完成了把c插入到a和b并形成新的链表的功能。所以选项C中的语句可完成题目所属功能。选项D中,(*p).next与(*q).next都是指针型变量,而赋值语句的右值c和b只是结构型变量,所以此语句不能达到题目要求的目的。

  • 第4题:

    若有以下定义: struct link { int data; struct link * next; }a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构:

    指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是

    A.a.next=c;c.next=b;

    B.p.next=q;q.next=p.next;

    C.p->next=&c;q->next=p->next;

    D.(*p).next=q;(*q).next=&b;


    正确答案:D
    解析:在本题中指针p指向变量a,q指向变量c。要把c插入到变量a和变量b之间,就应该首先让变量a的指针域指向变量c,即(*p).next=q,然后让变量c的指针域指向变量b,即(*q).next=&b。

  • 第5题:

    若有以下定义: struct link { int data; strnct link *next; } a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构:

    指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是

    A.a.next=c;c.next=b;

    B.p.next=q;q.next=p.next;

    C.p->next=&c;q->next=p->next;

    D.(*p).next=q;(*q).next=&b;


    正确答案:D
    解析:本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。