您好,欢迎访问三七文档
Problem1015求数列的和Description给你一个数列1+1/2+1/3+...+1/n,请你求出它的和。Input输入有若干行,每行一个整数n。Ouput每行对应输出数列的和,结果保留2位小数。#includeiostream#includeiomanipusingnamespacestd;voidmain(){intn;while(cinn){doubles=0;for(inti=1;i=n;i++)s+=1.0/i;coutfixedsetprecision(2)sendl;}}1380Person类派生出Worker类......OOPDescription定义一个Person类,数据成员包含能够保存姓名的变量name,其中有能够输出姓名的成员函数PrintName()。从Person类派生出Worker类,该类包含数据成员num记录对象的工号,sex记录对象的性别,age记录对象的年龄,address记录对象的家庭住址;包括成员函数Printinfo()用来输出对象的个人信息。Input输入若干组数据,每组数据包含姓名,工号,性别,年龄,家庭住址。Ouput对应输出职工的姓名,工号,性别,年龄,家庭住址。#includeiostream#includestringusingnamespacestd;classPerson{private:stringname;public:Person(stringname){this-name=name;}voidPrintName(){coutname;}};classWorker:publicPerson{private:stringnum,sex,address;intage;public:Worker(stringname,stringnum,stringsex,intage,stringaddress):Person(name){this-num=num;this-sex=sex;this-age=age;this-address=address;}voidPrintinfo(){PrintName();coutnumsexageaddressendl;}};voidmain(){stringname,num,sex,address;intage;while(cinnamenumsexageaddress){Workerw(name,num,sex,age,address);w.Printinfo();}}Problem1358定义一个学生类......OOPDescription定义一个学生类,学生的属性:学号、姓名、C++成绩;学生的方法:输出学生的信息。Input输入有多个测试例组成。每个测试例含学生的学号、姓名、C++成绩。Ouput每个测试例对应一行输出,学生的学号、姓名、C++成绩,格式见样例。SampleInput20090864211张三9820100861125李四87SampleOutput第1个学生:20090864211张三98第2个学生:20100861125李四87#includeiostream#includestringusingnamespacestd;classStudent{private:stringnum,name;intmark;public:Student(stringnum,stringname,intmark){this-num=num;this-name=name;this-mark=mark;}voidshow(){coutnumnamemarkendl;}};voidmain(){stringnum,name;intmark,t=1;while(cinnumnamemark){cout第t++个学生:endl;Students(num,name,mark);s.show();}}Problem1492函数的重载(OOP)Description编写一个程序,用来分别求2个整数、3个整数、2个双精度数和3个双精度数的最大值。要求使用重载函数来完成。Input输入有4行,第1行有2个整数,第2行有3个整数,第3行有2个双精度数,第4行有3个双精度数。Ouput输出2个或3个数据中的最大值。SampleInput1212310.1220.2323.2321.2123.24SampleOutput2320.2323.24#includeiostreamusingnamespacestd;templatetypenameTTmax(Ta,Tb){returnab?a:b;}templatetypenameTTmax(Ta,Tb,Tc){Tj;j=ab?a:b;returnjc?j:c;}voidmain(){inta,b,c;doubled,e,f;cinab;coutmax(a,b)endl;cinabc;coutmax(a,b,c)endl;cinde;coutmax(d,e)endl;cindef;coutmax(d,e,f)endl;}Problem1400交通工具抽象类......OOPDescription有一个交通工具类vehicle,将它作为基类派生小车类car、卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。Input输入有多个测试例组成。每个测试例含:一个字符C表示小车,T表示卡车,B表示轮船;接着一个字符串表示对应交通工具的名字。Ouput每个测试例对应一行输出,交通工具的名字。SampleInputC奔驰T运输卡车B游艇SampleOutput奔驰运输卡车游艇#includeiostream#includestringusingnamespacestd;classVehicle{public:virtualvoidshow(stringname)=0;};classcar:publicVehicle{public:voidshow(stringname){coutnameendl;}};classtruck:publicVehicle{public:voidshow(stringname){coutnameendl;}};classboat:publicVehicle{public:voidshow(stringname){coutnameendl;}};voidfun(Vehicle*ve,stringa){ve-show(a);}voidmain(){stringa;charn;while(cinna){if(n=='C'){carsc;fun(&sc,a);}elseif(n=='T'){trucksc;fun(&sc,a);}elseif(n=='B'){boatsc;fun(&sc,a);}}}#includeiostream#includestringusingnamespacestd;classVehide{public:virtualvoiddisplay(stringn)=0;};classCar:publicVehide{public:voiddisplay(stringn){coutnendl;}};classTruck:publicVehide{public:voiddisplay(stringn){coutnendl;}};classBoat:publicVehide{public:voiddisplay(stringn){coutnendl;}};voidmain(){charx;stringa,b,c;Carca;Trucktr;Boatbo;while(cinx){if(x=='C'){cina;ca.display(a);}if(x=='T'){cinb;tr.display(b);}if(x=='B'){cinc;bo.display(c);}}}Problem1578复数相减.........OOPDescription复数相加的公式是(a+bi)-(c+di)=(a-c)+(b-d)i.给出两个复数,请你计算它们的差。Input输入有若干行,每行有四个数a、b、c、d表示两复数a+ib、c+id。Ouput输出它们的差。SampleInput2.43.51.61.959416SampleOutput0.8+1.6i1-7iHint重载流插入运算符和流提取运算符,重载减号相减后虚部为复数中间连接符变为-#includeiostreamusingstd::istream;usingstd::ostream;usingstd::cin;usingstd::cout;usingstd::endl;classComplex{private:doublereal;doubleimag;public:Complex(doubler=0.0,doublei=0.0){real=r;imag=i;}Complexoperator-(Complex&c);friendistream&operator(istream&in,Complex&c){inc.realc.imag;returnin;}friendostream&operator(ostream&cout,Complex&c){if(c.real!=0)coutc.real;if(c.imag0){if(c.imag==-1)cout-i;elsecoutc.imagi;}elseif(c.imag0){if(c.imag==1){if(c.real==0)couti;elsecout+i;}else{if(c.real==0)coutc.imagi;elsecout+c.imagi;}}if(c.real==0&&c.imag==0)cout0;returncout;}};ComplexComplex::operator-(Complex&c){Complext;t.real=real-c.real;t.imag=imag-c.imag;returnt;}voidmain(){Complexc1,c2,c;while(cinc1c2){c=c1-c2;coutc;coutendl;}}Problem1512有异常的三角形面积………………JavaDescription输入三个实数a、b、c,如果能构成三角形就求出它的面积。如果有负数边就输出“Exception”,如果不能构成三角形就输出“No”。请你编程实现。Input输入有若干行,每行三个实数。以000表示输入结束。Ouput对于每一行,如果能构成三角形就输出面积(结果保留2位小数),如果有负数边就输出“Exception”,如果不能构成三角形就输出“No”。SampleInput345222123-396000SampleOutput6.001.73NoException#includeiostream#includecmath#includeiomanipusingnamespacestd;voidmain(){doublea,b,c;while(cinabc){try{if(a==0&&b==0&&c==0)break;if(a0||b0||c0)throw1.1;elseif(a+b=c||a+c=b||b+c=a)throw1;else{doubles=(a+b+c)/2;doublearea=sqrt((s-a)*(s-b)*(s-
本文标题:C++复习题
链接地址:https://www.777doc.com/doc-7279224 .html