资源描述:
《二级c语言考试必备(真题)考点42 链表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(1)有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是A)a.next=q;B)p.next=&b;C)p->next=&b;D)(*p).next=q;structnode{chardata;structnode*next;a,b,*p=&a,*q=&b;//}a,b,*p=&a,*q=&b;}//去掉}datanextdatanext┌──┬──┐┌──┬──┐a│5││b│9│0│└──┴──┘└──┴──┘↑p↑q【答案】B(2)若以下定义:structlink{intdata;str
2、ucklink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:abdatanextdatanext┌──┬──┐┌──┬──┐│5│┼──→│9│ │└──┴──┘└──┴──┘↑pcdatanext┌──┬──┐│7││└──┴──┘↑q指针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;【答案
3、】D(3)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。structnode{intinfo;【10】link;}【答案】structnode*(4)设有以下定义stuctss{intinfo;structss*link;}x,y,z;且已建立如下图所示链表结构:┌──┬──┐┌──┬──┐┌──┬──┐│x│┼──→│y│┼──→│z│ │└──┴──┘└──┴──┘└──┴──┘请写出删除结点y的赋值语句【】。【答案】x.link=&z;(5)有以下程序#include
4、structNODE{intnum;structNODE*next;};main(){structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->nu
5、m;sum+=p->num;printf("%d",sum);}执行后的输出结果是A)3B)4C)5D)6【答案】B(6-8)以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。#includestuctnode{chardata;structnode*next;};【6】CreatList(char*s){structnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;
6、while(*s!='''' '''')//while(*s!=’ ’){p=(structnode*)malloc(sizeof(structnode));p->data=【7】;q->next=p;q=【8】;s++;}p->next='''' '''';//p->next=’ ’;returnh;}main(){charstr[]="linklist";structnode*head;head=CreatList(str);...}(6)A)char*B)structnodeC)structnode*D)char(7)A)*sB)sC)*s++D
7、)(*s)++(8)A)p->nextB)pC)sD)s->next【答案】C,A,B