2020年11月程序员模拟题下午(一)之三
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2020年11月程序员模拟题下午(一)】部分试题的详解,一起来看看吧~1、阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 
1、阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数 GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函数DelListElem(LinkList L,int i,ElemType *e) 的功能是删除含头结点单链表的第 i个元素结点,若成功则返回 SUCCESS ,并由参数e 带回被删除元素的值,否则返回ERROR 。 例如,某含头结点单链表 L 如图 (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<1 || !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==1) (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
答题解析:
本问题的图和代码中的注释可提供完成操作的主要信息,在充分理解链表概念的基础上填充空缺的代码。 函数GetListElemPtr(LinkList L,int i)的功能是在L为头指针的链表中查找第i个元素,若找到,则返回指向该结点的指针,否则返回空指针。描述查找过程的代码如下,其中k用于对元素结点进行计数。 k=1; p=L->next; /*令p指向第1个元素所在结点*/ while(p && ______) { /*查找第i个元素所在结点*/ ______; ++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”。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>