};
/**********found**********/voiddisp()
{cout<<"i="<
voidmain()
{
CSample*a,b(10);
/**********found**********/a->disp();
/**********found**********/b->disp();
}
【考答案】参
(1)将voiddisp()
改计,voidCSample:
:
disp()
(2)将a->disp();
改计,a=newCSample;a->disp();(3)将b->disp();
改计,b.disp();
【计计解析】
(1)主要考计计成计函定计格式的熟计掌握~计于计外函的计计~计计使用作用域符数体数":
:
"~按照返
回计计型计
:
:
函名数(参数列表)的形式计行计明;
(2)主要考计计计计存计分配的掌握~根据前面的定计~a是一指计计型的计量~指向一计象~但个个是有被初始化~此计并没a中的据无任何意计~计计使用计计存计分配数new生成一新的计象~个
并将返回的指计计计计a;
(3)主要考计计象指计计象在计用成计函计格式的不同~与数b是一计象计量~使用个b计用成计函计计数
用"."运算符。
二、计计计用计
计函写数fun()~的功能是利用以下所示的计计迭代方法求方程它cos(x)-x=0的一计根。
个
xn+1=cos(xn)
迭代步计如下,
(1)取x1初计计0.0。
(2)x0=x1~把x1的计计计x0。
(3)x1=cos(x0)~求出一新的个x1。
(4)若x0-x1的计计计小于0.000001,计计行步计(5)~否计计行步计
(2)。
(5)所求x1就是方程cos(x)-x=0的一计根~做计函计返回。
个数
程序计出计果Root=0.739085。
注意,部分源程序已存在文件kt6_2.cpp中。
计勿改计主函数main和其他函中的任何容~计在函数内数fun的花括中入所计的若干计号填写
句。
文件kt6_2的容如下,内
#include
#include
#include
floatfun()
{
}
voidmain()
{cout<<"Root="<
【考答案】参
floatfun()
{
floatx1=0.0,x0;
do
{x0=x1;
x1=cos(x0);}
while(fabs(x0-x1)>=1e-6);returnx1;
}
【计计解析】
解答本计的计计之计在于看计中所计的清“迭代步计”~同计要理解xn+1=cosxn通式的含计~要考计
到x1的初计计0.0。
三、计合计用计
使用VC6打计考生文件计下的工程kt6_3~此工程包含一源程序文件个kt6_3.cpp~其中定计了
用于表示考生的计Student~计按要求完成下列操作~程序计充完整。
将
(1)定计私有据成计数code、english分计用于表示考生的计、英计成计、计都是号它int型的据。
数
计在注计“//**1**”之后添加适的计句。
当
(2)完成成计函数voidStudent:
:
inputinformation()的定计~计函用于用计计入一考生计象的信息数个~
计入格式如下所示,
计入计,号
英计成计,
计算机成计,
计在注计“//**2**”之后添加适的计句。
当
(3)利用已计计的计Student的成计函~完成函数数voidfirstname(Student*A[],intnum)的定计~计函
数根据考生信息A[]~计出num个号考生中计分最高者的计及其相计的计分~在此不考计计分相同
的情。
计在注计况“//**3**”之后添加适的计句。
当
注意,除在指定位置添加计句之外~计不要改计程序中的其他容。
内源程序文件kt6_3.cpp清计如下,
#include
classStudent
{//**1**
intcomputer;
inttotal;
public:
voidgetinformation();
voidcomputesum();
intgetcode();
intgettotalscore();
~Student();};
voidStudent:
:
getinformation(){//**2**
cout<<"英计成计,";
cin>>english;
cout<<"计算机成计,";
cin>>computer;}
voidStudent:
:
computesum(){total=english+computer;cout<<"计号"<
intStudent:
:
getcode()
{returncode;}
intStudent:
:
gettotalscore(){returntotal;}
voidfirstname(Student*A[],intnum){
//**3**
tempsum=(*A[0]).gettotalscore();for(inti=1;i
{
if(((*A[i]).gettotalscore())>tempsum)
{tempcode=(*A[i]).getcode();tempsum=(*A[i]).gettotalscore();}
}
cout<<"计分最高者--"<
}
voidmain()
{Student*A[3];
inti,n=3;
for(i=0;i
{A[i]=newStudent;
A[i]->getinformation();}for(i=0;i
{A[i]->computesum();}
firstname(A,3);}
【考答案】参
(1)intcode;
intenglish;
(2)cout<<"计入计,号";
cin>>code;
(3)inttempcode,tempsum;tempcode=(*A[0]).getcode();【计计解析】
本计是计C++程序计计的计合考计~其计计计的成计及成计函的定计计用~据的计入计出~数与数for循计计
句~if条断个件判计句等多知计点~其中(3)中计指计计的使用~指计计是一计指计~每一成计数数个都按照指计的操作计计~但是整计计计计仍然使用计下计方式~如个数A[0]指的是第一指计~而个*
A[0]是取出第一指计指向的容。
个内
2
一、改计计
使用VC6打计考生文件计下的工程kt7_1~此工程包含一源程序文件个kt7_1.cpp~但计程序运
行有计计~计改正程序中的计计~使程序的计出计果如下,Constructor1
Constructor1
Constructor1
Destructor
Constructor2
Destructor
x=0
x=5
Destructor
Destructor
源程序文件kt21_1.cpp清计如下,
#include
classB
{intx;
public:
B(){x=0;cout<<"Constructor1"<B(inti){x=i;cout<<"Constructor2"<~B(){cout<<"Destructor"</**********found**********/
~B(inti){cout<voidprint(){cout<<"x="<voidmain()
{B*ptr;
ptr=newB[2];
/**********found**********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found**********/
for(inti=0;i<2;)
ptr[i].print();
delete[]ptr;}
【考答案】参
(1)将~B(inti){cout<
<
(2)将ptr[0]=B(0);改计,ptr[0]=B();
(3)将for(inti=0;i<2;)改计,for(inti=0;i<2;i++)B(inti){x=i;cout<<"Constructor2"<~B(){cout<<"Destructor"</**********found**********/
~B(inti){cout<voidprint(){cout<<"x="<voidmain()
{B*ptr;
ptr=newB[2];
/**********found**********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found**********/
for(inti=0;i<2;)
ptr[i].print();
delete[]ptr;}
【考答案】参
(1)将~B(inti){cout<
<
(2)将ptr[0]=B(0);改计,ptr[0]=B();
(3)将for(inti=0;i<2;)改计,for(inti=0;i<2;i++)【计计解析】
本计主要考计计文件相计操作的熟计程度。
首先定计文件流计的计量~然后使用计计象的open方法打
计一文件~接着使用个while循计和getch方法每次计入一字符计计字符~最后使用个并个数close方法计计文件~返回i计。
二、计计计用计
计一函写个数intcharnum(charfn[10])~计函以只计方式打计文件数fn,~通计计计~返回文件中字符
的~计使用个数while循计计计计功能。
数
注意,部分源程序已存在文件kt7_2.cpp中。
计勿修改主函数main和其他函中的任何容~计在函数内数charnum的花括中若干计句号填写。
文件kt7_2.cpp的容如下,内
#include
#include
#include
intcharnum(charfn[10]);voidmain()
{intnum;
num=charnum("abc.txt");cout<<