首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 当一元多项式aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。 为了便于进行运算,用带头节点的单链表存储,头节点中存储多
阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 当一元多项式aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。 为了便于进行运算,用带头节点的单链表存储,头节点中存储多
admin
2009-02-15
26
问题
阅读下列函数说明、图和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
软件设计师王某在其公司的某一综合信息管理系统软件开发工作中承担了大部分程序设计工作。该系统交付用户,投入试运行后,王某辞职离开公司,并带走了该综合信息管理系统的源程序,拒不交还公司。王某认为,综合信息管理系统源程序是他独立完成的,他是综合信息管理系统源程序
编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段,其中,(22)并不是每种编译器都必需的。
以下属于测试停止依据的是______。①测试用例全部执行结束②测试覆盖率达到要求③测试超出了预定时间④查出了预定数目的故障⑤执行了预定的测试方案⑥测试时间不足
下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则完成该项目的最少时间为_____________(34)天。活动BD最多可以晚开始______________(35)天而不会影响整个项目的进度。(35)
下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则完成该项目的最少时间为_____________(34)天。活动BD最多可以晚开始______________(35)天而不会影响整个项目的进度。(34)
Windows系统中,在排除DNS域名解析故障时,需要刷新DNS解析器缓存,使用的命令是______。
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间
运行Web浏览器的计算机与网页所在的计算机要建立(66)连接,采用(67)协议传输网页文件。
阅读以下说明和图,填补流程图中的空缺。【说明】某汽车制造工厂有两条装配线。汽车装配过程如图10-6所示,即汽车底盘进入装配线,零件在多个工位装配,结束时汽车自动完成下线工作。(1)e0和e1表示底盘分别进入装配线0和
(1)请说明流程图1中的文件F0、F1分别是哪个文件。(2)处理1和处理5分别按照哪些数据项进行分类?说明处理6的功能。【流程图】(如图3所示)
随机试题
()是在建筑(区域)建设工程已经竣工,即将投入运行前或已经投入运行时所处的阶段进行的风险评估,用于了解建筑(区域)的现实风险,以采取降低风险的措施。
Excel2010中,在_____________选项卡的“页面设置”组中单击“分隔符”,在出现的下拉列表中选择“插入分页符”命令,即可在选定行的上方插入一水平分页符。
A.口服维生素DB.将舌尖拉出口外C.给抗惊厥药D.将患儿上下磨牙之间置一用纱布包裹的压舌板E.注射维生素D
根据《刑法》的相关规定,下列哪些行为不应认定为过失致人死亡罪?
对箱梁架设的基本要求有()。
一般资料:女,23岁,未婚,中专文化,现为某单位文员。求助者的主要问题:心情不好,郁闷、无聊,失眠一一个多月。求助者自述:我在学校的时候就与男友相恋,到现在已经将近三年,两个人的感情很好,所以毕业以后就谈及结婚。不久前将男友带回家后,父
我国历史上第一个具有宪法性质的文件是()。
韧性,大意志也。事业凭韧性而渐进,人才藉韧性而玉成。“积土成山”为韧;“水滴石穿”为韧;“春蚕吐丝”为韧;“皓首穷经”为韧;“面壁十年”为韧;“卧薪尝胆”为韧;“纠缠如毒蛇,执著如怨鬼”为韧;“野火烧不尽,春风吹又生”为韧……至柔至刚为大韧。无形无色之水,
Fromthepassagewecanknowthatthestoryprobablytakesplacein______.Thesentence"thewheatcouldnotbefullintheear
Ifyouweretobeginanewjobtomorrow,youwouldbringwithyousomebasicstrengthsandweaknesses.Successorfailureinyou
最新回复
(
0
)