首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
admin
2016-11-11
20
问题
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。
函数DelListElem(LinkList L,int i,ElemType*e)的功能是删除含头结点单链表的第i个元素结点,若成功则返回SUCCESS,并由参数e带回被删除元素的值,否则返回ERROR。
例如,某含头结点单链表L如图4-1(a)所示,删除第3个元素结点后的单链表如图4.1(b)所示。
#define SUCCESS 0
#define ERROR -1
typedef int Status;
typedef int ElemType;
链表的结点类型定义如下:
typedef struct Node{
ElemType data;
struct Node *next;
}Node,*LinkLiSt;
【C代码】
LinkList GetListElemPtr(LinkList L, int i)
{ /*L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点;
若找到,则返回该元素结点的指针,否则返回NULL
*/
LinkList P;
int k; /*用于元素结点计数*/
if(i<i||!L||!L一>next)return NULL;
k=1;P=L一>next; /*令P指向第1个元素所在结点*/
while (p&&__________(1)){ /*查找第i个元素所在结点*/
___________(2); ++k;
}
return P;
}
Status DelLiStElem(LinkList L,int i,ElemType*e)
{ /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/
LinkList p,q;
/*令P指向第i个元素的前驱结点*/
if(i==i)
___________(3);
else
p=GetListElemPtr(L,i—1);
if(!P||!p一>next) return ERROR;/*不存在第i个元素*/
q=___________(4); /*令q指向待删除的结点*/
p一>next=q一>next; /*从链表中删除结点*/
__________(5); /*通过参数e带回被删除结点的数据*/
free(q);
return SUCCESS;
}
选项
答案
(1)k<i (2)p=p->next (3)p=L (4)p->next (5)*e=q->data
解析
本题考查C语言的指针应用和运算逻辑。
本问题的图和代码中的注释可提供完成操作的主要信息,在充分理解链表概念的基础上填充空缺的代码。
函数GetListElemPtr(LinkList L,int i)的功能是在L为头指针的链表中查找第i个元素,若找到,则返回指向该结点的指针,否则返回空指针。描述查找过程的代码如下,其中k用于对元素结点进行计数。
k=1; p=L一>next; /*令p指向第1个元素所在结点*/
while(p&&__________(1)){ /*查找第i个元素所在结点*/
___________(2); ++k;
}
上述代码执行时,k的初始值为1,同时p指向第一个元素结点。当找到第i个元素结点时,k应等于i,尚未到达第i个结点时,k小于i。因此,空(1)处应填入“k<i”或其等价形式,使得没有达到第i个结点时继续查找。空(2)处应填入“p=p->next”,从而使得指针p沿着链表中的结点向第i个结点移动。
函数DelListElem(LinkList L,int i,ElemType*e)的功能是删除含头结点单链表的第i个元素结点,若成功则返回SUCCESS,并由参数e带回被删除元素的值,否则返回ERROR。
根据注释,空(3)所在语句需要指向第一个结点之前的结点(即头结点),显然此处应填入“p=L”。
空(4)所在语句令q指向待删除的结点,由于之前已经令p指向待删除结点的前驱结点,显然,此空应填入“p->next”。
空(5)所在语句通过参数e带回被删除结点的数据,由于此时只能通过指针q找到被删除的结点,所以应填入“*e=q->data”。
转载请注明原文地址:https://kaotiyun.com/show/r9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
设10个数{Xi|i=1,10)的平均值为a,则{10Xi+1|i=1,10)的平均值为(5)。
LCD显示器的响应时间为(2)时,显示的效果更好。
删除Windows中某个应用程序的快捷方式,意味着(39)。
在幻灯片演讲稿中插入数据表或图表的主要目的是(70)。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
在Excel中,设单元格A1中的值为80,B1中的值为35,若在C1单元格中输入函数“=IF(AND(A1>=60,B1>=60),“不及格”,“补考”)”,按回车键后,C1单元格中的值为()。
在Excel中,A1,A2,B1,B2,C1,C2单元格的值分别为1、2、3、4、3、5,在D1单元格中输入函数“=SUM(A1:B2,B1:C2)”,按回车键后,D1单元格中显示的值为______。
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入对应栏中。[说明]在IE浏览器中输入yoyo电子邮局主页地址并回车后,网页的显示效果如下图所示。[网页中的元素说明]见下表。
[说明]请根据网页显示的效果图,将HtML文本(n)处的解答填写在相应的解答栏内。[上图网页中的元素说明][HTML文档代码]<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
A.为外周激动(启动)剂B.为外周调节(促进)剂C.为中枢激动(启动)剂D.为中枢调节(促进)剂E.为中枢调节剂和外周激动剂育亨宾和溴隐亭为:
药物治疗的前提是
在改建、扩建或加固工程中以静载为主的结构,其同一接头同一受力部位上,允许采用( )。
第二次世界大战以后,美国通过大量技术投入和大规模专业化生产,成为世界最大的大豆生产国和出口国。巴西自20世纪70年代开始种植大豆,在积极培育优良品种的同时,鼓励农民组建农场联合体,实现了大豆的规模化生产和经营。目前,巴西的大豆产量、出口量仅次于美国。中国曾
()是把书面上写的语言变为口头上说的语言,把无声语言变为有声语言——更能表情达意的口头活语言。
偶数+偶数=______,奇数+奇数=______.
网络操作系统可以提供的管理服务功能主要有:网络性能分析、存储管理和网络______。
A.busB.EnglishC.mouthD.gardenE.waterF.giftG.houseItisalanguagewidelyusedintheworl
Completethesummarybelow.ChooseNOMORETHANTHREEWORDSfromthepassageforeachanswer.Writeyouranswersinboxes33-40
A、Nearthemainentrance.B、Inacorner.C、Inasmallroom.D、Byawindow.D信息明示题。对话末尾,男士询问女士是否可以预订靠窗的座位,女士表示没问题,由此确定男士(史密斯先生)喜欢
最新回复
(
0
)