●试题六
阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。
【程序6说明】
本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有:
createList():创建按指数降序链接的多项式链表,以表示多项式。
reverseList():将多项式链表的表元链接顺序颠倒。
multiplyList(List L1,List L2):计算多项式L1和多项式L2的乘积多项式。
【程序6】
#include<iostream.h>
class List;
class ltem{
friend class List;
private:
double quot;
int exp;
Item*next;
public:
Item(double_quot,int_exp)
{ (1) ;}
};
class List{
private:
Item*list;
public:
List(){list=NULL;}
void reverseList();
void multiplyList(List L1,List L2);
void createList();
};
void List::createList()
{Item*p,*u,*pre;
int exp;
double 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()
{Item*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)
{Item*pLl,*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 Item(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题:
阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。
【说明】
阅读下面几段C++程序回答相应问题。
比较下面两段程序的优缺点。
①for (i=0; i<N; i++ )
{
if (condition)
//DoSomething
…
else
//DoOtherthing
…
}
②if (condition) {
for (i =0; i<N; i++ )
//DoSomething
}else {
for (i=0; i <N; i++ )
//DoOtherthing
…
}
第2题:
试题三(共 15 分)
阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
第3题:
第4题:
●试题二
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
该程序运行后,输出下面的数字金字塔
【程序】
include<stdio.h>
main ()
{char max,next;
int i;
for(max=′1′;max<=′9′;max++)
{for(i=1;i<=20- (1) ;++i)
printf(" ");
for(next= (2) ;next<= (3) ;next++)
printf("%c",next);
for(next= (4) ;next>= (5) ;next--)
printf("%c",next);
printf("\n");
}
}
第5题:
第6题: