全国计算机等级考试二级C++上机题库
计算机等计考计二计C++模计计计上机部分
1
一、改计计
使用VC6打计考生文件计下的
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
kt6_1~此工程包含一源程序文件个kt6_1.cpp~但计程序运
行有计计~计改正程序中的计计~使程序的计出计果如下, Constructor2
Constructor1
i=0
i=10
Destructor
源程序文件kt6_1.cpp清计如下,
#include
classCSample
{
inti;
public:
CSample(){cout<<"Constructor1"< CSample(intval){cout<<"Constructor2"<
~CSample(){cout<<"Destructor"< voiddisp();
};
/**********found**********/ voiddisp()
{cout<<"i="<
voidmain()
{
CSample*a,b(10);
/**********found**********/ a->disp();
/**********found**********/ b->disp();
}
【考答案】 参
(1)将void disp()
改计,void CSample::disp() (2)将a->disp();
改计,a=new CSample; 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="<
【考答案】 参
float fun()
{
float x1=0.0,x0;
do
{ x0=x1;
x1=cos(x0);}
while(fabs(x0-x1)>=1e-6); return x1;
}
【计计解析】
解答本计的计计之计在于看计中所计的清“迭代步计”~同计要理解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)int code;
int english;
(2)cout<<"计入计,号";
cin>>code;
(3)int tempcode,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(int i){cout<
(2)将ptr[0]=B(0);改计,ptr[0]=B();
(3)将for (int i=0;i<2;)改计,for(int i=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(int i){cout< (2)将ptr[0]=B(0);改计,ptr[0]=B();
(3)将for (int i=0;i<2;)改计,for(int i=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<<"num="< intcharnum(charfn[10])
{
}
【考答案】 参
int charnum(char fn[10]) {fstream file;
file.open(fn,ios::in);
if(!file)
{cout<<"abc.txt can't open"<
abort();}
char ch;
int i=0;
while(!file.eof())
{file.get(ch);
i++;}
file.close();
return i-1;}
【计计解析】
本计主要考计计文件相计操作的熟计程度。首先定计文件流计的计量~然后使用计计象的open方法打
计一文件~接着使用个while循计和getch方法每次计入一字符计计字符~最后使用个并个数close方法计计文件~返回i计。
三、计合计用计
使用VC6打计考生文件计下的工程kt7_3~此工程包含一源程序文件个kt7_3.cpp~其中含有一计个Circle的定计~但计计的定计不完整。计按要求完成下列操作~计并将Circle的定计计充完整。 (1)计计Circle增加一造函~计函有一~在造计计计计计计计成计个构数数个参数并构将参数radius。计将函计计计一非计函~且使用列表的方式计成计计计。计在注计数个内数并参数将“//**1**”之后添加适当的计句。
(2)计计Circle增加一成计函个数print()~使得可以计出有计计的信息~比如下列程序 Circlec;
c.SetRadius(5);
c.Print();
将计出,Thecirclehasradiusof5!
计在注计“//**2**”之后添加适的计句。 当
(3)完成友元函数voidCompareR(Circle*c1,Circle*c2)的定计~在幕中计出屏c1与c2比计radius大小计果~要求使用if-else计完成。计在注计构“//**3**”之后添加适的计句。 当
计出计果如下,
Thecirclehasradusof5!
Thecirclehasradiusof10!
c1
注意,除在指定位置添加计句之外~计不要改计程序中的其他容。 内
源程序文件kt7_3.cpp清计如下,
#include
classCircle{
public:
Circle():radius(5){}
//**1**
voidSetRadius(intr){radius=r;}
intGetRadius(){returnradius;}
//**2**
friendvoidCompareR(Circle*c1,Circle*c2); private:
intradius;};
voidCompareR(Circle*c1,Circle*c2) {//**3**
cout<<"c1>c2"<
else
if((c1->GetRadius())==(c2->GetRadius())) cout<<"c1=c2"<
else
if((c1->GetRadius())<(c2->GetRadius())) cout<<"c1
voidmain()
{Circlec1;
c1.SetRadius(5);
c1.Print();
Circlec2(10);
c2.Print();
CompareR(&c1,&c2);}
【考答案】 参
(1)Circle(int rad):radius(rad){}
(2)void Print(){cout<<"The circle has radius of "<
(3)if ((c1->GetRadius())>(c2->GetRadius())) 【计计解析】
本计考计成计函的定计计计~友元函~数与数if分支计句等知计点。友元函的计外的定计一般数体与
函一计~其中数if-else的使用~else计是其最近的那与个if配计使用的~计计最好使用计计格式写~将配计的if-else计计~以免出计。
3
一、改计计
使用VC6打计考生文件计下的工程kt8_1~此工程包含一源程序文件个kt8_1.cpp~但计程序运行有计计~计改正程序中的计计~使程序的计出计果如下,
f1functionofderive
f2functionofbase
f4functionofbase
源程序文件kt8_1.cpp清计如下,
#include
classbase
{ public:
/**********found**********/
voidf1(){cout<<"f1functionofbase"< virtualvoidf2(){cout<<"f2functionofbase"<
virtualvoidf3(){cout<<"f3functionofbase"<
voidf4(){cout<<"f4functionofbase"<<> /**********found**********/
classderive::publicbase
{ voidf1(){cout<<"f1functionofderive"< voidf2(intx){cout<<"f2functionofderive"< voidf4(){cout<<"f4functionofderive"<<> voidmain()
{ base*p;
deriveobj2;
/**********found**********/
p=obj2;
p->f1();
p->f2();
p->f4(); }
【考答案】 参
(1)将void f1(){ cout<<"f1 function of base"<
改计,virtual void f1(){ cout<<"f1 function of base"<
(2)将class derive::public base
改计,class derive:public base
(3)将p=obj2;
改计,p=&obj2;
【计计解析】
(1)主要考计计函的深刻理解~函是计计计计的基计~也是计计多计性的重要方法~可以根虚数虚数它
据不同的情计计的计计计行一函。在派生计中计计函计计计足基计的同名函完全相同况哪个数虚数与数~并且使用计计字virtual修计~本计中由计出计果中的f1 function of derive可知~必计基计将base的成计函数f1()定计计函虚数;
(2)主要考计计派生计定计格式的掌握~计计使用“:”后面是计承列表~而“::”是作用域符; (3)主要考计计计象的定计使用~与p是一指计计型的计量~计的计计计计是一地址~使用取地个它个即
址操作符&。
二、计计计用计
已知考生的计计由和计成计成~学号学构N名考生的据已存入数a计计中。计计函构体数写数fun~计函的功能是,出成计最低的考生计计~通计形返回主函数找参数(计定只有一最低分个)。已计予出函的首部数,计完成计函。 数
注意,部分源程序已存在文件kt8_2.cpp中。
计勿改计主函数main和其他函中的任何容~计在函数内数fun的花括中入所计的若干计号填写句。
文件kt8_2.cpp的容如下, 内
#include
#include
#include
#defineN10
typedefstructss
{charnum[10];
ints;
}STU;
voidfun(STUa[],STU*s)
{
}
voidmain()
{STU
a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},
{"A08",61},{"A09",80},{"A10",71}},m; fun(a,&m);
cout<<"*****Theoriginaldate*****"< cout<<"Thelowest:"< 【考答案】参
fun(STU a[],STU *s)
{int i, min;
min=a[0].s;
for(i=0;i
if(a[i].s
{min=a[i].s;
*s=a[i];}}
【计计解析】
解计思路计,先假计第一考生的成计最计~通计循计到最低成计~最低成计的考生计计计计指计个找并将
s~计回主函。 数
三、计合计用计
使用VC6打计考生文件计下的工程kt8_3~此工程包含一源程序文件个kt8_3.cpp~计文件计计了
用于计出乘法九九表的计。计计计计已有的代计~按要求完成下列操作~程序计充完整。 真将
(1)定计计Table的私有据成计数x和y~分计用于表示九九表中的乘两个数(x*y)~计都是它int型
的据。计在注计数“//**1**”之后添加适的计句当;
(2)完成计Table的成计函数print()的定计~计函以数"x*y=z"的格式打印出九九表中的一乘法个
算式~计使用格式化计出函数printf计计~在注计“//**2**”之后添加适的计句当; (3)完成计Table9的成计函数print()的定计~计函计用基计数Table的print()函~九九表计出到数将屏幕~计在注计“//**3**”之后添加适的计句当;
(4)计充主函~在幕上计出九九表~以便计计所定计的计的正性。计在注计数屏确“//**4**”之后添加
适的计句。 当
注意,除在指定位置添加计句之外~计不要改计程序中的其他容。 内源程序文件kt8_3.cpp清计如下,
#include
#include
classTable
{//**1**
intz;
public:
voidprint(intx,inty,intz);}; voidTable::print(intx,inty,intz) {//**2**}
classTable9:publicTable
{public:
voidprint();};
voidTable9::print()
{//**3**
intx,y,z;
for(i=1;i<10;i++)
{for(j=1;j
{x=i;
y=j;
z=i*j;
Table::print(y,x,z);}
printf("\n");}}
main()
{//**4**
return0;}
【考答案】 参
(1)int x;
int y;
(2)printf( "%d*%d=%d ",x,y,z); if(z<10) printf(" ");
(3)int i,j;
(4)Table9 t_9;
t_9.print();
【计计解析】
主要考计具计计抽象计计~计的定计计充完整~计行计定计计计的能力。将体将并
4
一、改计计
使用VC6打计考生文件计下的工程kt9_1~此工程包含一源程序文件个kt9_1.cpp~但计程序运
行有计计~计改正程序中的计计~使程序的计出计果如下, 4,5
20
源程序文件计如下, 清
#include
classA
{ protected:
intn,m;
public:
voidset(inta,intb){m=a;n=b;} voidshow(){cout<
#include
intCalcDigital(char*str); voidmain()
{ char*str;
str=newchar[255];
cout<<"计入字符串,";
cin>>str;
intnum=CalcDigital(str);
cout<='0')
num_of_digital++;
return num_of_digital; }
【计计解析】
本计考计计于if条断与件判计句for循计计句的熟计使用程度。注意判件;判是否是字是断条断数
直接比计ASCII计,的使用。
3,计合计用计
使用VC6打计考生文件计下的工程kt9_3~此工程包含一源程序文件个kt9_3.cpp~其中定计了Circle计与Money计~Circle计可计半计径r的计计行周计面计的计算~而与Money计用于计算一计形游泳池的造价。游泳池四周有原形计道~计道外计上计计~计道计度计3米~根据计入的游泳池半~每径米计计价格及每平方米计道价格~可计算出游泳池的造价。计按要求完成下列操作~程序计即将
充完整。
;1,定计符常量号PI;计计3.14159f)与WIDTH(计计3.00f,~分计用于表示计周率计道的固定计与度。计在注计“//**1**”之后添加适的计句。 当
;2,定计Circle计默计造函~把私有成计构数radius初始化计参数r的计。计在注计“//**2**”之后添加适的计句~ 当
;3,完成Money计默计造函的定计~把私有成计构数FencePrice;每米计计的价格,、ConcretePrice;每平方米计道的价格,初始化计参数f~c的计。计在注计“//**3**”之后添加适当的计句。
;4,完成Money计成计函数floatMoney::TotalMoney(floatfencelen,floatconarea)的定计~根据参数fencelen;计计的计度,和conarea;计道的面计,~返回计计计道的计造价。计在注计与
“//**4**”之后添加适的计句。 当
注意,除在指定位置添加计句之外~计不要改计程序中的其他容。 内
源程序文件kt9_3.cpp清计如下,
#include
//**1**
classCircle
{ private:
floatradius;
public:
//**2** floatCircumference(){return2*PI*radius;}
floatArea(){returnPI*radius*radius;} }; classMoney
{ private:
floatFencePrice;
floatConcretePrice;
public:
Money(floatf,floatc);
floatTotalMoney(floatfencelen,floatconarea); };
Money::Money(floatf,floatc)
{ //**3** }
floatMoney::TotalMoney(floatfencelen,floatconarea)
{ //**4** }
voidmain()
{ floatradius,fence,concrete; cout.setf(ios::fixed);
cout.setf(ios::showpoint); cout.precision(2);
cout<<"Entertheradiusofthepool:"; cin>>radius;
cout<<"EntertheFencePrice:"; cin>>fence;
cout<<"EntertheConcretePrice:"; cin>>concrete;
CirclePool(radius);
CirclePoolRim(radius+WIDTH); Moneymon(fence,concrete);
floattotalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area()-Pool.Area()));
cout<<"ThetotalmoneyisRMB"<
classBase
{ public:
Base(){cout<<"classBase"<
inlinelongsum(intn)
{
}
voidmain()
{ intn;
cout<<"计入n:";
cin>>n;
cout<<"计果计,"<
#include
classCEmployee
{ public:
voidputname(charn[50]){strcpy(name,n);} voidgetname(charn[50]){strcpy(n,name);} voidputpay(doubled){pay=d;}
doublegetpay(){returnpay;}
private:
//**1** };
classCompany
{ private:
CEmployee*emp;
intnum;
public:
Company(intn);
voidadd(intcode,charname[50],doublepay);
voidprint(); };
Company::Company(intn) { //**2** }
voidCompany::add(intcode,charname[50],doublepay)
{ //**3** }
voidCompany::print()
{ //**4**
for(inti=0;igetname(c); money=(emp+i)->getpay(); cout<putname(name); (emp+code)->putpay(pay); ;4,char c[50];
double money;
【计计解析】
本计考计计成计的定计、计成计函的定计计用、计象计的使用。注意指计和计计数与数申计空计new的使用
方法。使用指计计用成计计计用"->"符~号new的返回计是指计计型的。
6
一、改计计
使用VC6打计考生文件计下的工程kt11_1~此工程包含一源程序文件个kt11_1.cpp~但计程序
运数行有计计~计改正函中的计计~使计程序的计出计果计, Valuesare:1,2and3
Pressanykeytocontinue
源程序文件kt11_1.cpp清计如下,
#include
classCommonBase
{ public:
intx; };
/*****************found*****************/ classDeriveCommonA::publicCommonBase { public:
inty; };
classDeriveCommonB:publicCommonBase { public:
intz; };
/*****************found*****************/ classOverlapping:publicDeriveCommonA;publicDeriveCommonB
{ public:
voidDisplay()
{ cout<<"Valuesare:"<
#include
#defineN80
intfun(char*str)
{
}
voidmain()
{ chars[N];
cout<<"Enterastring:"< classqueue
{ intq[100];
intbl,el;
public:
queue();
voidqput(intj);
intqget(); };
queue::queue()
{ //**1** }
voidqueue::qput(intj) { //**2**
{ cout<<"queueisfull\n"; return; }
bl++;
q[bl]=j; }
intqueue::qget()
{ //**3**
{ cout<<"queueisempty\n"; return0; }
el++;
returnq[el]; }
voidmain()
{
queueaa,bb;
aa.qput(11);
bb.qput(22); aa.qput(33); bb.qput(44);
cout<
template
classpair
{ Tvalue1,value2;
public:
pair(Tfirst,Tsecond)
{value1=first;value2=second;}
/*****************found*****************/ chargetmax(); };
/*****************found*****************/ Tpair::getmax()
{ Tretval;
/*****************found*****************/ retval=value1>value2??value1:value2; returnretval; }
voidmain()
{ pairmyobject(100,75);
cout<
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
的明~计改计,声template
;3,将retval = value1>value2?? value1 : value2; 改计,retval = value1>value2? value1 : value2; 【计计解析】
;1,主要考计计模板使用的理解~计函于模数属板计定计的一部分~计于返回计计型~计计使用模板计名称T~计计计计的计候才能被接受~
;2,主要考计是模板的使用~前面的模板计已计明完成了~在计的外面定计计的成声
计函计仍然数声数体需要使用模板的明~计计在后面的函定计中才能使用模板计~ ;3,主要考计计“表式达1? 表式达2 : 表式达3”计句的掌握~计计句是一计合计句~先计算第个个
一表式~如果计计整式个达真个达子计计表式2的计~否计计表式达3的计~计目中计计的使用了两个计。 号
二、计计计用计
计计函写数fun()~其功能是将s所指字符串中除了下计计奇数、同计ASCII计也计奇数的字符之外~其余的所有字符都计除。字符串中剩余的字符所形成的一新的字符串个放在t所指的计中数。
例如,s所指字符串中的容计内ABCDEFG12345~其中字符A的ASCII计计计计奇数~但元素所在的下计计偶数~因此必需计除~字符1的ASCII计计计奇数数数~所在计中的下计也计奇~不计除~最后t所指的计中的容计是数内135。
计勿修改主函数main和其他函中的任何容~计在函数内数su的花括中若干计句。 号填写文件kt12_2.cpp的容如下, 内
#include
#include
#include
#include
voidfun(char*s,chart[])
{
}
voidmain()
{ chars[100],t[100];
cout<<"PleaseenterstringS:"<
#include
classARRAY
{ private:
int*p,num;
public:
ARRAY(){p=newint[10],num=10;} ARRAY(inti)
{ //**1**
{ cout<<"计计!数计计度计计正。\n";
exit(0); }
p=newint[i];
num=i; }
ARRAY(constARRAY&a);
int&operator[](inti);
~ARRAY(){deletep;}
ARRAY&operator=(constARRAY&a); friendARRAYoperator+(ARRAY&a,ARRAY&b);
friendostream&operator<<(ostream&os,ARRAY&a); };
ARRAY::ARRAY(constARRAY&a) { //**2**
for(inti=0;i=num||i<0)
;4,return *this;
【计计解析】
主要考计计一个特殊的计--安全计的掌握~其中数数数涉及了友元函、重计函等~其中;2,中
必需申计新的空计~计计可以使得计象分计两个两个构数会占用不同的空计~在自计计用析函计不遇
到重计计除的计计~计计方法要掌握。
8
一、改计计
使用VC6打计考生文件计下的工程kt13_1~此工程包含一源程序文件个kt13_1.cpp~但计程序
运行有计计~计改正程序中的计计~使计程序的计出计果计, 5
5
源程序文件kt13_1.cpp清计如下,
#include
classA{
public:
/*****************found*****************/
staticintn=1;
A(){n++;};
~A(){n--;}; };
/*****************found*****************/
intn=0;
intmain(){
Aa;
Ab[3];
A*c=newA;
c=&a;
/*****************found*****************/
cout<n<”~而不能用“.”。 二、计计计用计
计计一函写个数sortnum(intnum)~参数num是一三位的整~计函个数数将num的百位、十位
和位的字计行重个数并个数数排~返回由上述的三字计成的最大的三位。 注意,部分源程序已存在文件kt13_2.cpp中。
如计入456后~计出计果如下,
654
计勿修改主函数main和其他函中的容~计在函数内数sortnum的花括中若干计句。 号填写文件kt13_2.cpp的容如下, 内
#include
intsortnum(intnum)
{
}
voidmain()
{ intnum;
intresult=0;
cout<<"计计入一三位个数";
cin>>num;
cout<
#include
classPerson
{ private:
//**1**
doublemoney;
public:
Person(char*f,char*s,doublem); ~Person();
voiddisplay(); };
Person::Person(char*f,char*s,doublem) { //**2**
strcpy(forename,f);
surname=newchar[strlen(s)+1]; strcpy(surname,s);
money=m; }
Person::~Person()
{ //**3** }
voidPerson::display()
{ //**4** }
voidmain()
{ Personp("Richard","Berk",1000.56); p.display(); }
【考答案】 参
;1,char *forename;
char *surname;
;2,forename = new char[strlen(f)+1]; ;3,delete []forename;
delete []surname;
;4,cout<
/*从0,n中到能被找既3整除同计又能被7整除的~计数并将数些求和*/ if(i%3==0&&i%7==0)
s=s+i;
s=sqrt(s); /*计s求平方根*/
return s; }
【计计解析】
本计的解计思路是,逐个从取得0,n之计的所有~计每次取得的计行件判~件是数数条断条既
能被3整除同计又能被7整除~注意,计件要求同计成两个条立~因此用到了“&&”运算符。计足件~计就被条数累加到s中去~所有符合件的完后~用条数找sqrt()函计数s求平方根。 三、计合计用计
使用VC6打计考生文件计下的工程kt14_3。此工程包含一个kt14_3.cpp~其中定计了二计坐计计Coordinate和三计坐计计ThreeDCoord~其中ThreeDCoord计由Coordinate计public派生~但两个计的定计不完整。计按要求完成下列操作~程序计充完整。 并将
(1)定计计Coordinate的保计据成计数x和y~计都是它int型的据~代表二计数横坐计的计坐计计。计在注计“//**1**”之后添加适的计句。 当
(2)根据计Coordinate定计后的成计函数Display的计计~计充计函在计数Coordinate定计的明体内声~Display计二计坐计计的函。计在注计虚数“//**2**”之后添加适的计句。 当
(3)完成二计坐计计Coordinate的造函~构数将参数a和b分计计计计据成计数x和y。计在注计“//**3**”之后添加适的计句。 当
(4)根据ThreeDCoord计造函的明~计充构数声ThreeDCoord构数参数造函的计计~a和b通计计用基计的造函初始化基计的据成计构数来数x和y~c计计计据成计数z。计在注计“//**4**”之后添加适的计句。 当
计出计果如下,
[1,2]
[3,4,5]
注意,除在指定位置添加计句之外~计不要改计程序中的其他容。 内
源程序文件kt14_3.cpp清计如下,
#include
classCoordinate
{ protected:
//**1**
public:
Coordinate(inta=0,intb=0);
//**2** };
Coordinate::Coordinate(inta,intb) { //**3** }
voidCoordinate::Display()const
{ cout<<'['< classThreeDCoord:publicCoordinate { intz;
public:
ThreeDCoord(inta=0,intb=0,intc=0); virtualvoidDisplay()const; }; //**4**
voidThreeDCoord::Display()const { cout<<'['< voidmain()
{ Coordinatec(1,2);
ThreeDCoordt(3,4,5);
c.Display();
t.Display(); }
【考答案】 参
(1)protected:
int x;
int y;
(2)virtual void Display() const; (3)x=a; y=b;
(4)ThreeDCoord::ThreeDCoord(int a, int b, int c) : Coordinate(a, b)
【计计解析】
本计主要考计计计据成计的定计、造函、派生计及函的理解~是数构数虚数C++计知计的一计合考个核。计函的定计格式及计承计造函的定计格式计多加注意。虚数构数
10
一、改计计
使用VC6打计考生文件计下的工程kt15_1~此工程包含一源程序文件个kt15_1.cpp~但计程序运行有计计~计改正程序中的计计~使计程序的计出计果计,
Previous=9,Next=11
源程序文件kt15_1.cpp清计如下,
#include
/*****************found*****************/ intmain()
{ intx=10,y,z;
prevnext(x,y,z);
cout<<"Previous="<
doublefun(intx,intn)
{
}
voidmain()
{ intx,n;
cin>>x>>n;
cout<
classA
{ inta;
public:
//**1**
intgeta(){returna;} };
classA1:publicA
{ intb;
public:
//**2**
intgetb(){returnb;} };
classA2:publicA1
{ intc;
public:
//**3**
voidshow()
{ //**4** } };
voidmain()
{ A2a(2,6,9);
cout<
/*****************found*****************/ intmain()
{ intx=10,y,z;
prevnext(x,y,z);
cout<<"Previous="<
doublefun(intx,intn)
{
}
voidmain()
{ intx,n;
cin>>x>>n;
cout< classA
{ inta;
public:
//**1**
intgeta(){returna;} }; classA1:publicA
{ intb;
public:
//**2**
intgetb(){returnb;} }; classA2:publicA1
{ intc;
public:
//**3**
voidshow() { //**4** } }; voidmain()
{ A2a(2,6,9);
cout<
templateclassVector { Tvec[N];
public:
voidset(intpos,Tval);
Tget(intpos);
/*****************found*****************/ } templatevoidVector::set(intpos,Tval)
{ vec[pos]=val; }
/*****************found*****************/ templateVector::get(intpos) { returnvec[pos]; }
intmain()
{ Vectorv;
inti=0;
doubled=0.0;
for(i=0;i<10;i++)
v.set(i,double(i*i));
for(i=0;i<10;i++)
cout< Vector::get(int pos)
改计,template T Vector::get(int pos)
;3,将缺少返回计
改计,加入return 0;
【计计解析】
;1,主要考计计于计定计的理解~使使用了计模即号板~在计定计的计尾仍然需要使用分~计是C++的计定~
;2,主要考计是模板计的定计~template是计计字~在<>中计是计型的定计~计目中Vector是一计个的名~前面计计有计模称称即板的名~T~计计才是完整的定计~
;3,主要考计计函返回计的掌握~任何返回计计型不计数int型的函最后都必计使用数returen计句返回计计计型的计~就算是main函也不数例外。
二、计计计用计
计计函写数fun()~其功能是计算计出下列多计式计 并
Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
例如,计计计入从15~计计出计s=2.718282。
注意,部分源程序以存在文件kt17_2.cpp中。
计勿改计主函数main和其他函中的容~计在函数内数fun的花括中入所计的若干计句。号填写
文件kt17_2.cpp的容如下, 内
#include
#include
doublefun(intn)
{
}
voidmain()
{ int n;
doubles;
cout<<"Inputn:"<>n;
s=fun(n);
cout<<"s="<
classLetter
{ protected:
charch;
public:
//**1** };
classNumber
{ protected:
intnum;
public:
//**2** };
classGrid:publicLetter,publicNumber { public:
//**3**
friendostream&operator<<(ostream&o,Grid&g); }; //**4**
{ o<<"["<
本文档为【全国计算机等级考试二级C++上机题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。