首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C++代码,将应填入(n)处。 【程序6说明】 本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有: createList():创建按指数降序链接的多项式链表
阅读下列程序说明和C++代码,将应填入(n)处。 【程序6说明】 本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有: createList():创建按指数降序链接的多项式链表
admin
2009-02-15
66
问题
阅读下列程序说明和C++代码,将应填入(n)处。
【程序6说明】
本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有:
createList():创建按指数降序链接的多项式链表,以表示多项式。
reverseList():将多项式链表的表元链接顺序颠倒。
multiplyList(List L1,List L2):计算多项式L1和多项式L2的乘积多项式。
【程序6】
#include<iostream.h>
class List;
class |tem{
friend class List;
private:
double quot;
int exp;
|tem * next;
public:
|tem(double_quot,int_exp)
{ (1) ;}
};
class List {
private:
|tem * list;
public:
List(){list=NULL;}
void reverseList();
void multiplyList(List L1,List L2);
void createList();
};
void List::createList()
{ |tem * p,* u,*pre;
int exp;
doubte quot;
list=NULL;
while(1){
cout<<"输入多项式中的一项(系数、指数):"<<endl;
cin>>quot>>exp:
if(exp<0)break; //指数小于零,结束输入
if(quot==0)continue;
p=list;
while((2)){ //查找插入点
pre=p;p=p->next;}
if(p!=NULL&&exp==p->exp) {p->quot+=quot;continue;}
u=(3);
if(p==list) list=u;
else pre->next=u;
u->next=p;}
}
void List::reverseList()
{ |tem*p,*u;
if(list==NULL)return;
p=list->next;list->next=NULL;
while(p!=NULL)}
u=p->next;p->next=list;
list=p;p=u;}
}
void List::multiplyList(List L1,List L2)
{|tem*pLI,*pL2,*u;
int k,maxExp;
double quot;
maxExp=(4);
L2.reverseList();list=NULL;
for(k=maxExp;k>=0;k--){
pL1=L1.list;
while(pL1!=NULL&&pL1->exp>k)pL1=pL1->next;
pL2=L2.list;
while(pL2!=NULL&&(5) pL2=pL2->next;
quot=0.0;
while(pL1!=NULL&&pL2!=NULL){
if(pL1->exp+pL2->exp==k){
(6);
pL1=pL1->next;pL2=pL2->next;
}else if(pL1->exp+pL2->exp>k) pL1=pL1->next;
else pL2=pL2->next;
}
if(quot!=0.0){
u=new |tem(quot,k);
u->next=list;list=u;}
}
reverseList(:);L2.reverseList():
}
void main()
{ ListL1,L2,L;
cout<<"创建第一个多项式链表\n";L1.createList();
cout<<"创建第二个多项式链表\n";L2.createList();
L.multiplyList(L1,L2);
}
选项
答案
(1)quot=_quot;exp=_exp;next=NULL; (2)p!=NULL && exp < p-> exp (3)new Item(quot,exp) (4)L1.1ist->exp+L2.list->exp (5)pL1-> exp +pL2 -> exp < k (6)qnot+=pL1->quot*pL2->quot
解析
程序主要由类Item和List组成,其中类Item定义多项式中的项,由三个私有成员组成分别是:系数quot、指数exp和指向多项式的下一项的指针next,该类定义了一个构造函数,其作用是创建系数为 _quot、指数为_exp的项,即创建类Item的一个对象,因此(1)处应该填“quot=_quot;exp=_exp;next=NULL”。类List定义了多项式的操作,数据成员list是多项式链表的链头指针,类成员函数creatlist()的功能是创建按照指数降序链接的多项式,创建的方法是不断将新的项插入到链表的合适位置上。若链表中存在一项p,其指数大于待插入项的指数,则待查入项为p的前驱。该成员函数在链表上遍历,直到找到满足上述条件的项;若链表中不存在这样的项,那么待插入项称为新的链尾。因此(2)处应填“p!=NULL && exp<p->exp”;(3)处应填“new I- tem(quot,exp)”,根据读入的指数和系数创建要插入的项。若链表中存在指数与待插入项指数相等的项则合并同类项。
成员函数multiplyList (List L1,List L2)计算多项式L1和12的乘积。首先计算了L1和翅的乘积多项式的最高幂次,即多项式L1和 U的最高此项的指数之和。由于多项式L1和12是按照指数的降序排列的,两个多项式的第一项分别是最高幂项,这两项的指数之和就是乘积多项式的最高次幂,因此(4)处填“L1.list->exp+L2.list->exp”。
为了实现系数的乘积求和计算,当多项式L1从幂次高至幂次低逐一考虑各项的系数时,多项式L2应从幂次低至幂次高的顺序考虑各项的系数,以便将两多项式所有幂次和为k的两项系数相乘后累计。由于是单链表,所以成员函数先将其中多项式L2的链接顺序颠倒,计算完成之后,再将多项式12的链接顺序颠倒,即恢复原来的链接顺序。乘积多项式从高次幂系数至0次幂系数的顺序逐一计算。
为求k次幂这一项的系数,对于L1的考查顺序是从高次幂项至最低次幂项,而对于L2的考查相反。首先跳过多项式L1中高于k次幂的项,设低于k次幂的项最高次幂是j次幂;对于多项式L2,跳过低于 k-j次幂的项,因此(5)处应该填“pL1->exp+pL2->exp<k”。
考虑多项式L1和L2剩余各项的循环,若两多项式的当前项幂次和为k,则累计他们系数的乘积,并分别准备考虑下一项,因此(6)处应该填“quot+=pL1->quot*pL2->quot”;若两多项式的当前幂次和大于k,则应考虑幂次和更小的项,这样应该准备考虑多项式L1的下一项;若两多项式的当前幂次和小于k,则应考虑幂次和更大的项,这样应该准备考虑多项式L2的下一项。若所有幂次和为k的项的系数乘积之和不等于0,则应该在乘积多项式中有这一项,生成这一项的新结点,并将它插在乘积多项式的末尾。
转载请注明原文地址:https://kaotiyun.com/show/drDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
包过滤防火墙是一种通过软件检查数据包以实现系统安全防护的基本手段,以下叙述中,不正确的是()。
对于防病毒系统的测试是系统安全测试的重要内容,下列不属于防病毒系统安全测试基本测试点的是____________。
对于逻辑表达式((a‖(b&c))‖(C&&d)),需要___________个测试用例才能完成条件组合覆盖。
以下不属于系统测试的是___________。①单元测试②集成测试③安全性测试④可靠性测试⑤确认测试⑥验收测试
模块A的功能为:从数据库中读出产品信息,修改后存回数据库,然后将修改记录写到维护文件中。该模块内聚类型为(38)内聚。以下关于该类内聚的叙述中,正确的是(39)。(39)
模块A的功能为:从数据库中读出产品信息,修改后存回数据库,然后将修改记录写到维护文件中。该模块内聚类型为(38)内聚。以下关于该类内聚的叙述中,正确的是(39)。(38)
已知函数f()、g()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(callbyreference)方式传递参数,则函数f的返回值为(12);若g(a)采用值调用(callbyvalue)的方式传递参数,则函数f
以下关于不同类型的软件测试的叙述,正确的是______。A.单元测试不是模块测试B.多个模块不能平行地独立进行测试,应该顺序执行C.系统测试是检验程序单元或部件之间的接口关系D.确认测试是通过检验和/或核查所提供的客观证据,证实软件是否满足特定预期
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念,其中:___________(19)是指局部数据模型透明,即用户或应用程序无须知道局部使用的是哪种数据模型;___________(20)是指用户或应用程序不需要知道逻辑上访问的表具体是怎
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(39)
随机试题
Ⅲ型超敏反应又称为
A、腰膝酸软,失眠多梦,遗精盗汗B、腰膝酸软,小便频数,余沥不尽C、腰膝酸软,下肢浮肿,小便短少D、腰膝酸软,性欲减退,小便清长E、腰膝酸软,健忘失眠,闭经不孕肾阳虚的临床表现是
藁本的主治病证是()。
废旧物资回收经营单位享受免征增值税的税收优惠,必须具备的条件有( )。
地陪导游人员进行计划准备的内容包括:组团社信息、旅游团队基本_______、团队成员信息以及详细_______和要求。
童年随之而去(节选)木心母亲、姑妈等人在睡狮庵请和尚做佛事。“我”随着在山上呆了一段时间后,天天吵着要回家,终于——回家啰!走出山门时,回望了一眼——睡狮庵,庵是小的啊,
对我国降水的空间分布、季节变化和年际变化影响最大的因素是()。
居住在某市A区的公民赵某对该市B区行政机关做出的行政处罚决定不服.要求复议,本案的复议机关是()。
30集系列节目《奥运往事》以历史时间作为排列顺序,分主题地_______奥运会历史上那些精彩、_______、感人、悲伤的瞬间,逐步将观众的视线引向北京奥运会的赛场。填入划横线部分最恰当的一项是()。
Asmorepeopleliveclosertogether,andastheyusemachinestoproduceleisure,theyfindthattheirleisure,andeventheirw
最新回复
(
0
)