首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
admin
2016-11-11
40
问题
阅读以下说明和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://www.kaotiyun.com/show/r9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
以下关于数据的叙述中,________并不正确。
______不属于企业信息系统存在的问题。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
在Word2007中要建立一个表格,方法是()。
通常,网购产品需要依次进行以下操作步骤:浏览商品、放入购物车、生成订单、支付订单、完成交易。某网站对一个月内执行每一步操作的客户人数及其比例做了统计(按浏览商品的人数比例为100%进行统计),制作了如下的漏斗图(只有20%的浏览商品者实际完成了交易)。
由若干条直线段和圆弧等构成的图形,可以用一系列指令来描述。用这种方法描述的图形称为_________。
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
为什么一般处理“震荡波”病毒时,首先要把被侵入的计算机系统从网络上断开?为了解决“震荡波”病毒利用windows的缓冲区溢出漏洞攻击计算机系统问题,我们采用某防火墙建立一个“关闭445端口”的规则。请给出下列规则配置参数(防火墙规则配置界面如下图所示)
从网络连接的角度来看,代理服务器承担了何种网络设备的功能?请给出下列代理服务器上的外网卡配置参数(配置界面如图2所示)。子网掩码:(1);默认网关:(2)。
随机试题
背景资料:具有电力工程施工总承包一级资质的某施工单位,曾经多次承揽过500kV输电线路工程施工,拥有大型的施工设备,有丰富经验的施工技术人员和项目经理,近几年的经营状况和财务状况良好,但目前的施工任务不太饱满。该单位从“中国招标网”上获悉“呼一辽直
在民事诉讼中,当事人申请强制执行的期限为()
下列行为免征增值税的有()。(2015年)
集中式、半集中式、分散式空调系统是根据()划分的。
案例:某教师在进行二元一次方程教学时,给学生出了如下一道练习题:已知a,b是方程x2+(k一1)x+k+1=0的两个根且a,b是某直角三角形的两条直角边,其斜边长等于1,求k的值。某学生的解答过程如下:解:因为a,b是方程x2+(k一
基于某种特定的标准,来评价学生对与教学密切关联的具体知识和技能的掌握程度的评价方式称为()。
党的十八大报告强调,要牢牢把握扩大内需这一战略基点,充分发挥消费促进经济增长的作用。扩大内需的措施之一是创新销售方式。近年来,网络销售的发展迅速。每年的11日,已经成为网民们的购物狂欢节。2013年11月11日,某网络销售平台采用全场五折等促销手段,通过电
Themoneyisthere.Sowhyisitnotbeingspent?Thatisthebigpuzzleabouttherichworld’seffortstoimprovehealthinpoo
关系的实体完整性约束要求关系中不能为空的属性是()。
МеняоченьинтересуютстихиМаяковского,_____светлыйобразЛенина.
最新回复
(
0
)