1、有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; struct node *next; }*p,*q,*r; data next data next data next ┌─┬─┐ ┌─┬─┐ ┌─┬─┐ ─→│ │ ┼→│ │ ┼→│ │ ┼→ └─┴─┘ └─┴─┘ └─┴─┘ ↑p ↑q ↑r 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。A.q->next=r->next;p->next=r;r->next=q;B.p->next=r;q->next=r->next;r->next=p;C.r->next=q;q->next=r->next;p->next=r;D.q->next=r->next;r->next=q;p->next=r;

1、有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; struct node *next; }*p,*q,*r; data next data next data next ┌─┬─┐ ┌─┬─┐ ┌─┬─┐ ─→│ │ ┼→│ │ ┼→│ │ ┼→ └─┴─┘ └─┴─┘ └─┴─┘ ↑p ↑q ↑r 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。

A.q->next=r->next;p->next=r;r->next=q;

B.p->next=r;q->next=r->next;r->next=p;

C.r->next=q;q->next=r->next;p->next=r;

D.q->next=r->next;r->next=q;p->next=r;


参考答案和解析
A 本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,选项A中ABC为新的类型别名,定义正确。

相关考题:

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。 struct node {int data;struct node*next;}*P,*q,*r; 现要将q所指节点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是( )。A.p->next=q->next;B.p->next=P->next->next;C.p->next=r;D.p=q->next;

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把节点b连接到节点a 之后的语句是struct node{ char data;struct node*next;}a,b,*p= a,*q=b;A.a. next=q;B.p. next= b;C.p-next=b;D.(*p).next=q;

若有以下定义: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;

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是struct node{ char data;struct node *next;} a,b,*p=a,*q=b;A.a.next=q;B.p.next=b;C.p-next=b;D.(*p).next=q;

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。struct node{ int data;struct node *next;} *p, *q, *r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是A.r->next=q; q->next=r->next; p->next=r;B.q->next=r->next; p->next=r; r->next=q;C.p->next=r; q->next=r->next; r->next=q;D.q->next=r->next; r->next=q; p->next=r;

若有以下定义: 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;

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; tract node * next; }*p,*q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是A.r->next=q;q->next=r->next;p->next=r;B.q->next=r->next;p-next=r;r->next=q;C.p->next=r;q->next=r->next;r->next=q;D.q->next=r->next;r->next=q;P->next=r;

有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点 b连接到结点a之后的语句是( ) struct node { char data; struct noe *next; }a,b, *p=a, *q=b;A.a,next=q;B.p.next=b;C.p->next=b;D.(*p).next=q;

有以下结构体说明和变量定义,如图所示: struct node {int data;struct node *next;} *p,*q,*r,现妥将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。A.P->next=q->next;B.p->next=(p->next->next;C.p->next=rD.p=q->next;

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把节点b连接到节点a之后的语句是struct node{ char data;stmct node * next;} a,b, * p=a, * q=b;A.a. next=q;B.p. next=b;C.p->next=b;D.( * p) .next=q;

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的3个连续结点。struct node { int data;struct node *next;} *p,*q,*r;现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是A.p->next=q->next;B.p-next=p->next->next;C.p->next=r;D.p=q->enxt;

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把节点b连接到节点a之后的语句是( )。 struct node { char data; struct node *next; }a,b, *p=a,*q=b;A.a.next=q;B.p.next=b;C.p->next=bD.(*p).next=q;

现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向—个链表中连续的三个结点。 street node { char data; struct node *next; } *p,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是______。A.q->next=r->next; p->next=r,r->next=q;B.p->next=r,q->next=r->next;r->next=q;C.q-next=r->next;r->next=q;p->next=r,D.r->next=q;P->next=r;q->next=r->next;

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )。 struct node {chardata; struct node if next; }a,b,*p:a,*q=b;A.a.next=q;B.p.next=b;C.p->next=b:D.(*p).next=q;

现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个节点。 struct node {char data; struct node*next;}*p,*q,*r;现要将q和r所指节点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是( )。A.q->next=r-next;p->next=r;r->next=q;B.p->next=r;q->next=r->next;r->next=q;C.q->next=r->next;r->next=q;p->next=r;D.r->next=q;p->next=r;q->next=r-next;

现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。struct node {bar data; struct node*next;}*p,*q,*r; 现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是( )。A.q-next=r-next;P next=r;r- next =q;B.q-next=r;q-next=r-next;r-next=q;C.q-next=r-next;r-next=q;P-next=r:D.q-next=q;P-next=r;q-next=r- next;

有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的3个连续结点。 struct node { int data; struct node *next; } *p,*q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是( )。A.r->next=q;q->next=r->next;p->next=r;B.q->next=r->neaxt;p->next=r;r->next=q;C.p->next=r;q->next=r->next;r->next=q;D.q->next=r->next;r->next=q;p->next=r;

有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。 struct node { int data;struct node*next;)*p,*q,*r; 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。A.p-next=q-next;B.P-next=P-next-next;C.p-next=r;D.p=q-next;

现有以下结构体说明和变量定义,如图所示,指针P,q,r分别指向一个链表中连续的三个结点。struct node { char data; struct node *next; } *p,*q,*r; 现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是( )。A.q->next=r->next;p->next=r;r->next=q;B.p->next=r;q->next=r->next;r->next=q;C.q->next=r->next;r->next=q;p->next=r;D.r->next=q;P->next=r;q->next=r->next;

有以下结构体说明和变量定义,如图所示,指针p、 q、 r分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; } *p, *q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序是A.r->next=q; q->next=r->next; p->next=r;B.q->next=r->next; p->next=r; r->next=q;C.p->next=r; q->next=r->next; r->next=q;D.q->next=r->next; r->next=q; p->next=r;

现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。struct node{har data;struct node*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是( )。A.q-:next=r-next;p--:next=r;rm:next=q;B.q-:next=r;q-next=r-next;r-next=q;C.q-:next=r-next;r-next=q;p-next=r;D.q-:next=q;p-next=r;q-next=r-next;

有以下结构体说明和变量的定义,且如图14-4所示的指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是______。struct node { char data; struct node * next; }a,b,*p=a,*q=b:A.a.next=q;B.p.next=b;C.p->next=b;D.(*p).next=q;

有以下结构体说明和变量定义,如图所示: struet node {int data; struct node*next;}*p,*q,*r;现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是A.p->next=q->next;B.p->next=p->next->next;C.p->next=r;D.p=q->next;

若以下定义: 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;

有以下结构体说明和变量定义,相应的链表如图所示:struet node { int data; struet node * next; *p,*q,*r;现将q所指结点多链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是( )。A.p- >next=q->next;B.p->next=p->next->next;C.p->next=r;D.p=q->next

下面程序的功能是建立一个有 3 个 结 点的单向循环链表,然后求各个 结 点数值域 data 中数据的和。请填空。include stdio.hinclude stdlib.hstruct NODE{ int data;struct NODE *next;};main(){ struct NODE *p,*q,*r;int sum=0;p=(struct NODE*)malloc(sizeof(struct NODE));q=(struct NODE*)malloc(sizeof(struct NODE));r=(struct NODE*)malloc(sizeof(struct NODE));p-data=100; q-data=200; r-data=200;p- next =q; q- next =r; r- next =p;sum=p-data+p-next-data+r-next-next 【 19 】 ;printf("%d\n",sum);}

指针p、q和r依次指向某循环链表中三个相邻的结点,交换结点*q和结点*r在表中次序的程序段是 ( )A.p—>next=r; q—>next=r—>next; r—>next=q;B.p—>next=r; r—>next=q; q—>next=r—>next;C.r—>next=q; q—>next=r—>next; p—>next=r;D.r—>next=q; p—>next=r; q—>next=r—>next;

填空题设线性链表的存储结构如下: struct node {ELEMTP data; /*数据域*/ struct node *next; /*指针域*/ } 试完成下列在链表中值为x的结点前插入一个值为y的新结点。如果x值不存在,则把新结点插在表尾的算法。 void inserty(struct node *head,ELEMTP x,ELEMTP y) {s=(struct node *)malloc(sizeof(struct node)); (); if(){s-nexr=head;head=s;} else { q=head;p=q-next; while(p-dqta!=xp-next!=NULL){q=p;()} if(p-data= = x){q-next=s;s-next=p;} else{p-next=s;s-next=NULL;} } }