首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函
admin
2016-11-11
28
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
PowerPoint可以通过插入(55)来完成统计、计算等功能。
设10个数{Xi|i=1,10)的平均值为a,则{10Xi+1|i=1,10)的平均值为(5)。
《信息技术汉字字型要求和检测方法》(GB/T11460一一2009)属于______。
评价信息系统时需要听取各有关方面的意见。在听取系统操作人员的意见时,主要讨论信息系统的______。
据某地区统计,今年中小学生中肥胖学生约占10%,而且,肥胖学生人数正在以8%的速度增长。假设近年中小学生的总量变化不大,据此我们可以推算出,明年该地区中小学生中肥胖学生的比例约为(64)。
收集数据时,设计调查的问题很重要。此时,需要注意的原则不包括(8)。
编译程序的作用是将高级程序语言源程序翻译为(4)。
由多台计算机组成的一个系统,这些计算机之间可以通过通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,执行过程对用户透明。管理上述计算机系统的操作系统是_________。
由若干条直线段和圆弧等构成的图形,可以用一系列指令来描述。用这种方法描述的图形称为_________。
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
随机试题
RatesareLow,butConsumerswon’tBorrowWithheavydebt,loadsandhighjoblessness,Americansarecautious.[A]TheU
A、情感淡漠B、情绪低落C、焦虑D、情感倒错某病人在无任何原因下表现为过分紧张恐惧,顾虑重重,搓手顿足,坐卧不安,感大祸临头,惶惶:不可终日。该病人属于()
以下药物中有利胆退黄作用的药为
A.肠痈B.痛经C.泄泻D.虫积E.宿便左少腹作痛,按之累累,有硬块者,多见于
关于体温生理性变化的叙述正确的()
Oneoftheadvantagesinthemuhimodaltransportistominimizetimelossattransshipmentpoint.()
对于商业性助学贷款,以质押方式申请贷款的,或银行、保险公司提供连带责任保证的,借款额不得超过所需学费总额的()
“如果给我一打婴儿,我保证能够任意把他们培养成任何一类人,或者医生、律师、商人和领导者,甚至是乞丐和盗贼”。这句话的作者是()。
设随机变量X服从标准正态分布N(0,1),在X=x(一∞<x<+∞)的条件下,随机变量Y服从正态分布N(x,1).求在Y=y条件下关于X的条件概率密度.
Accordingtothepassage,whichofthefollowingeighteenth-centurydevelopmentshadastrongimpactonsilversmiths?Incoloni
最新回复
(
0
)