首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 当一元多项式aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。 为了便于进行运算,用带头节点的单链表存储,头节点中存储多
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 当一元多项式aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。 为了便于进行运算,用带头节点的单链表存储,头节点中存储多
admin
2009-02-15
50
问题
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
当一元多项式
aix
i
中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。
为了便于进行运算,用带头节点的单链表存储,头节点中存储多项式中的非零项数,且各节点按指数递减顺序存储。例如:多项式8x
5
-2x
2
+7的存储结构为:
函数中使用的预定义符号如下:
#define EPSI le-6
struct Node( /*多项式中的一项*/
double c; /*系数*/
int e; /*指数*/
struct Node *next;
};
typedef struct{ /*多项式头节点*/
int n; /*多项式不为零的项数*/
struct Node *head;
}POLY;
【函数】
void Del(POLY *C, struct Node *p)
/*若p是空指针则删除头节点,否则删除p节点的后继*/
{
struct Node *t;
/*C是空指针或C没有节点*/
if(C==NULL||C->head==NULL)return;
if((1)){/*删除头节点*/
t=C->head;
C->head=t->next;
return;
}/*if*/
t=p->next;
p->next=t->next;
};/*Del*/
void Insert(POLY *C, struct Node *pC)
/*将pC节点按指数降序插入到多项式C中*/
/*若C中存在pC对应的指数项,则将系数相加;若其结果为零,则删除该节点*/
{
struct Node *t, *tp;
/*pC为空指针或其系数近似为零*/
if(pC==NULL || fabs(pC->c) < EPSI)return;
if(C->head==NULL){ /*若C为空, 作为头节点插入*/
C->head=pC;
pC->next=NULL;
C->n++;
return;
}/*if*/
/*若pC的指数比头节点的还大, 插入到头节点之前*/
if(pC->e>C->head->e){
(2);
C->head=pC;
C->n++;
return;
}/*if*/
(3);
t=C->head;
while(t!=NULL){
if(t->e>pC->e){
tp=t;
t=t->next;
}
else if(t->e==pC->e){/*C中已经存在该幂次项*/
t->c+=pC->c;/*系数相加*/
if(fabs(t->c)<EPSI){/*系数之和为零*/
(4);/*删除对应节点*/
C->n--;
}
(5);
}
else t=NULL;/*C中已经不存在该幂次项*/
}/*while*/
if(t==NULL){/*适当位置插入*/
pC->next=tp->next;
tp->next=pC;
C->n++;
}/*if*/
};/*Insert*/
选项
答案
(1) p==NULL (2) pC->next=C->head->next (3) tp=NULL (4) Del(C, tp) (5) break
解析
根据注释,Del函数当p是空指针时,删除头节点,因此易知(1)空应填p==NULL。
(2)空是插入头节点的特殊情况,应填pC->next=C->head->next。
由注释可知空(4)是删除操作,需调用Del函数,进一步确定实参。此处需要删除节点t,结合Del函数的说明,实参p需要空指针(NULL)或t节点的前驱指针,由if(t->e>pC->e){tp =t;t=t->next;}可知,tp正是t节点的前驱指针,因此应填Del(C,tp)。由此也可以确定空(3),当需要删除头节点时,tp应是空指针,因此空(3)应填tp=NULL。
至于空(5),应填break。此时,节点p已正确处理完毕,应该结束while循环,而且必须终止,否则while循环结束后t值为NULL,将会错误地执行插入操作。
转载请注明原文地址:https://kaotiyun.com/show/ZgDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某开发小组欲开发一个软件系统,实现城市中不同图书馆的资源共享,包括实体资源和电子资源,共享规则可能在开发过程中有变化。客户希望开发小组能尽快提交可运行的软件,且可以接受多次交付。这种情况下最适宜采用(31)开发过程模型。主要是因为这种模型(32)。(
对于一般的树结构,可以采用孩子.兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子一兄弟表示如下图所示。以下关于结点D与E的关系的叙述中,正确的是_____。
某系统中仅有5个并发进程竞争某类资源一且都需要该类资源3个,那么该类资源至少有()个,才能保证系统不会发生死锁。
(16)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
以下关于不同类型的软件测试的叙述,正确的是______。A.单元测试不是模块测试B.多个模块不能平行地独立进行测试,应该顺序执行C.系统测试是检验程序单元或部件之间的接口关系D.确认测试是通过检验和/或核查所提供的客观证据,证实软件是否满足特定预期
系统可维护性的评价指标不包括______。
假设段页式存储管理系统中的地址结构如下图所示,则系统中()。
在进行产品评价时,评价者需要对产品部件进行管理和登记,其完整的登记内容应包括(35)。①部件或文档的唯一标识符。②部件的名称或文档标题。③文档的状态,包括物理状态或变异方面的状态。④请求者提供的版本、配置和日期信息。
以下关于信息安全的叙述,不正确的是______。A.SYN洪水攻击通过发送大量TCP连接请求以占满网络带宽,使其他用户无法正常连接服务B.缓冲区溢出攻击能通过修改函数返回地址并执行恶意代码,进而获得系统的控制权C.计算机病毒的主要特征包括破坏性、寄生
计算机各功能部件之间的合作关系如下图所示。假设图中虚线表示控制流,实线表示数据流,那么a、b和c分别表示(5)。
随机试题
烧伤面积在5%.~10%.之间:烧伤面积在15%.~20%.之间:
氯丙嗪引起锥体外系反应是由于阻断
2008年5月1日《政府信息公开条例》正式实施后,全国各地都出现了公民申请政府信息公开的热潮。但是大多数申请都遭遇“拒绝”,很多媒体称政府信息公开制度只是建了一堵“玻璃墙”。因为有的行政机关接到申请后,以所申请公开的政府信息为条例生效前的信息不予公开;有的
甲、乙两国因边境争端常年交战。丙国总统邀请甲、乙两国领导人到丙国参加该国庆典活动,并借此机会安排两国重开谈判。丙国总统参与了谈判,并为领土争端的解决提出了解决方案,但甲国表示反对。丙国在说服未果的情况下,派军舰在甲国近海进行军事示威,以迫使甲国接受其方案。
平焊法兰适用于公称压力不超过()MPa。
下列关于车辆购置税的说法,正确的是()。
下列表述中,正确的是()。
【2017四川】侮辱、殴打、打击报复教师应承担最为严厉的法律责任是()。
假如你被录用,遇到什么情况你会提出辞职或者请求调离?
作为生长在丹霞地貌上的古老茶种,武夷岩茶一直颇有名气。武夷岩茶为乌龙茶类,产于碧水丹山之地——武夷山,因茶树生长在岩缝中而得名。它具有绿茶之清香,红茶之甘醇,最著名的便是武夷大红袍。据记载,早在宋代,武夷岩茶就已成为贡茶。1607年,荷兰东印度公司采购武夷
最新回复
(
0
)