if(s[i]>='a'&&s[i]<='z')r[i]=s[i]-'a'+'A';
elser[i]=s[i];
r[n]=’\0’;
returnr;
}
程序改错
1.在下面的定义中,NODE是链表结点的结构,appendToList则是一函数,其功能是:
在list所指向的链表的末尾添加一个新的值为x的结点,并返回表头指针。
函数中有两处错误,指出错误所在行的行号并提出改正意见。
structNODE{
intdata;
NODE*next;
};
NODE*appendToList(NODE*list,intx){//1行
NODE*p=newint;//2行
p->data=x;//3行
p->next=NULL;//4行
if(list==NULL)returnp;//5行
NODE*p1=list;//6行
while(p1->next!
=NULL)p1=p1->next;//7行
p1=p;//8行
returnlist;
}
错误行的行号为______和________。
分别改正为______________和______________。
2.在下面的定义中,NODE是链表结点的结构,addToList则是一函数,其功能是:
将一个值为x的新结点添加到以plist为表头指针的链表的首部(即第一个结点的前面)并返回表头指针。
函数中有两处错误,指出错误所在行的行号并提出改正意见。
structNODE{
intdata;
NODE*next;
};
NODE*adndToList(NODE*plist,intx){//1行
NODE*p;//2行
*p=newNODE;//3行
p->data=x;//4行
p->next=NULL;//5行
plist=p;//6行
returnp;//7行
}
错误行的行号为______和________。
分别改正为______________和______________。
3.假定要求下面程序的输出结果为“11/15”,其主函数中存在着三行语句错误,请指出错误语句行的行号并改正错误行。
#include
classFranction{//定义分数类
intnume;//定义分子
intdeno;//定义分母
public:
//把*this化简为最简分数,具体定义在另外文件中实现
voidFranSimp();
//返回两个分数*this和x之和,具体定义在另外文件中实现
FranctionFranAdd(constFranction&x);
//置分数的分子和分母分别0和1
voidInitFranction(){nume=0;deno=1;}
//置分数的分子和分母分别n和d
voidInitFranction(intn,intd){nume=n;deno=d;}
//输出一个分数
voidFranOutput(){cout<};
voidmain()//1行
{//2行
Franctiona,b,c;//3行
a.InitFranction(6,15);//4行
b.InitFranction
(1);//5行
c.InitFranction();//6行
c=FranAdd(a,b);//7行
cout<}//9行
错误行的行号为______、________和________。
分别改正为____________________、________________和___________________。
4.假定要求下面程序的输出结果为“23/20”,其主函数中存在着三条语句错误,请指出错误语句行的行号并改正。
#include
classFranction{//定义分数类
intnume;//定义分子
intdeno;//定义分母
public:
//把*this化简为最简分数,具体定义在另外文件中实现
voidFranSimp();
//返回两个分数*this和x之和,具体定义在另外文件中实现
FranctionFranAdd(constFranction&x);
//置分数的分子和分母分别0和1
voidInitFranction(){nume=0;deno=1;}
//置分数的分子和分母分别n和d
voidInitFranction(intn,intd){nume=n;deno=d;}
//输出一个分数
voidFranOutput(){cout<};
voidmain()//1行
{//2行
Franction*a=newFranction;//3行
Franction*b=newFranction;//4行
a->InitFranction(6,15);//5行
b.InitFranction(3,4);//6行
Franctionc;//7行
c.InitFranction();//8行
c=a.FranAdd(b);//9行
cout<}//11行
错误行的行号为______、________和________。
分别改正为____________________、________________和___________________。
5.下面是一个类的定义,存在着3处语法错误,请指出错误行的行号并改正。
classCE{//1行
private:
//2行
inta,b;//3行
intgetmin(){return(a
a:
b);}//4行
public//5行
intc;//6行
voidSetValue(intx1,intx2,intx3){//7行
a=x1;b=x2;c=x3;//8行
};//9行
intGetMin();//10行
};//11行
intGetMin(){//12行
intd=getmin();//13行
return(dd:
c);//14行
}//16行
错误行的行号为______、________和________。
分别改正为____________________、________________和___________________。
6.下面程序段第4-10行中存在着三条语句的语法错误,请指出错误语句的行号并改正。
classA{//1行
inta,b;//2行
constintc;//3行
public//4行
A():
c(0);a(0);b(0){}//5行
A(intaa,intbb)c(aa+bb);{a=aa;b=bb;}//6行
};//7行
Aa,b(1,2);//8行
A*x=&a,&y=b;//9行
A*z=newA,w[10];//10行
错误行的行号为______、________和________。
分别改正为____________________、_____________________
和______________________________________。
Public:
A():
c(0),a(0),b(0){}
A(intaa,intbb):
c(aa+bb){a=aa;b=bb;}
7.下面程序段第4-9行中存在着三条语句错误,请指出错误语句的行号并说明原因。
classA{//1行
inta,b;//2行
constintc;//3行
public:
//4行
A(){a=b=c=0;}//5行
A(intaa,intbb):
c(aa+bb){a=aa;b=bb;}//6行
};//7行
Aa,b(1,2,3);//8行
Ax(2,3),y(4);//9行
错误行的行号为______、________和________。
错误原因分别为___________________、__________________和__________________。
8.下面程序段第10-17行中存在着三条语句错误,请指出错误语句的行号并说明原因。
classA{//1行
inta;//2行
public:
//3行
A(intaa=0):
a(aa){}//4行
};//5行
classB{//6行
inta,b;//7行
constintc;//8行
Ad;//9行
public:
//10行
B():
c(0){a=b=0;}//11行
B(intaa,intbb):
d(aa+bb){//12行
a=aa;b=bb;c=aa-bb;//13行
}//14行
}//15行
Ba,b(1,2);//16行
Bx=a,y(b),z(1,2,3),;//17行
错误行的行号为______、________和________。
错误原因分别为_____________________、______________________
和_____________________。
9.假定要求下面程序输出结果为“d=800,f=60”,在第4-23行中存在着三条语句错误,请指出错误语句的行号并改正。
#include
classA{//1行
inta[10];intn;//2行
public:
//3行
A(intaa[],intnn):
n(nn){//4行
for(inti=0;i}//6行
intGet(inti){returna[i];}//7行
intSumA(intn);//8行
};//9行
intA:
:
SumA(intn){//10行
ints=0;//11行
for(intj=0;jreturns;//13行
}//14行
voidmain(){//15行
inta[]={2,5,8,10,15,20};//16行
Ax(a,6);//17行
intd=1;//18行
for(inti=0;i<4;i++)d*=x.a[i];//19行
intf=SumA(6);//20行
cout<<"d="<cout<<"f="<}//23行
错误行的行号为______、________和________。
51920
分别改正为____________________、________________和___________________。
10.下面是分数类fract的定义及测试主程序,在类定义及其友元函数定义中有两处错误,更正错误后程序应显示41/28,请指出错误所在行的行号并给出改正意见。
classfract{
intden;//分子
intnum;//分母
publi