C++面向对象程序设计 期末考试 编程题Word文件下载.docx
《C++面向对象程序设计 期末考试 编程题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计 期末考试 编程题Word文件下载.docx(34页珍藏版)》请在冰豆网上搜索。
v=sqrt(p*(p-a)*(p-b)*(p-c));
cout<
该三角形面积是"
v<
if(a==b&
a==c)
cout<
该三角形是等边三角形!
else
if(a==b&
a!
=c||a==c&
=b||b==c&
b!
=a)
cout<
该三角形是等腰三角形!
if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))
该三角形是直角三角形!
}
else
这三条边组不成三角形!
return0;
}
2、定义一个学生类,其中有3个数据成员:
学号、姓名、年龄,以及若干成员函数。
同时编写main函数使用这个类,实现对学生数据的赋值和输出。
#include<
string>
classstudent
intnum;
stringname;
intage;
public:
student(){num=0;
name='
\0'
;
age=0;
student(int,string,int);
voidshow();
};
student:
:
student(inta,stringb,intc):
num(a),name(b),age(c){}
voidstudent:
show()
studentnumber:
ends<
num<
name:
name<
age:
age<
students1(200803986,"
梅寒芳"
23);
s1.show();
return0;
3、从键盘输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
doublea[100];
doublemax=0,min=100,t;
inti;
for(i=0;
i<
100;
i++)
cin>
a[i];
if(a[i]<
0)
break;
{
if(a[i]>
max)
max=a[i];
if(a[i]<
min)
min=a[i];
}
最大值是:
max<
最小值是:
min<
4、编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。
#include<
doublea,h,s,v;
半径为:
a;
高为:
h;
s=3.14159*a*a;
v=s*h;
底面积为:
s<
体积为:
5、编写一个程序,输入年、月,打印出该年份该月的天数。
stdio.h>
main()
inty,m,d;
printf("
yearmonth="
);
scanf("
%d%d"
&
y,&
m);
switch(m){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
d=31;
break;
case4:
case6:
case9:
case11:
d=30;
case2:
if(y%4==0&
y%100!
=0||y%400==0)d=29;
elsed=28;
days=%d\n"
d);
}
6、编写函数将化氏温度转换为摄氏温度,公式为C=(F-32)*5/9;
并在主函数中调用。
doublefun(doublea);
doublef=37.5,c;
c=fun(f);
华氏温度为:
f<
℉"
摄氏温度为:
c<
℃"
doublefun(doublea)
doubleb;
b=(a-32)*5/9;
returnb;
7、声明一个Tree(树)类,有成员ages(树龄),成员函数grow(intyears)用以对ages加上years,showage()用以显示tree对象的ages值。
在主函数中定义Tree类对象,并调用成员函数(学生自行指定实参数
classTree
private:
intages;
public:
intgrow(intyears)
ages=ages+years;
returnages;
voidgetage()
输入树的树龄:
ages;
voidshowage()
{cout<
该树的年龄是:
ages<
Treeages,years;
ages.getage();
ages.grow(5);
ages.showage();
8、定义一个复数类,用友元函数实现对双目运算符“+”的运算符重载,使其适用于复数运算。
iostream.h>
classComplex
{
doublereal;
doubleimag;
Complex(){real=0;
imag=0;
Complex(doubler,doublei):
real(r),imag(i){}
friendComplexoperator+(Complex&
c1,Complex&
c2);
voiddisplay();
voidComplex:
display()
real<
+"
imag<
i"
Complexoperator+(Complex&
c2)
returnComplex(c1.real+c2.real,c1.imag+c2.imag);
Complexc1(3,4);
Complexc2(4,2.3);
Complexc3;
c3=c1+c2;
c3.display();
9、有一个函数如下:
x(x<
5)
y=x+6(5<
=x<
15)
x-6(x>
=15)
输入x的值,计算出相应的y值。
intx,y;
x;
if(x<
5)y=5;
if(x>
=5&
x<
15)y=x+6;
=15)y=x-6;
y<
10、14、17、使用函数重载的方法定义两个重名函数,分别求出整型数的两数之和和浮点数的两数之和,并在主函数中调用。
template<
typenameT>
Tadd(Ta,Tb)
Tc;
c=a+b;
returnc;
inta,b,c;
floatx,y,z;
请输入两个整型数:
b;
请输入两个浮点数:
x>
y;
c=add(a,b);
z=add(x,y);
整型数之和是:
浮点数之和是:
z<
11、定义一个抽象类shape用以计算面积,从中派生出计算长方形、梯形、圆形面积的派生类。
程序中通过基类指针来调用派生类中的虚函数,计算不同形状的面积。
#definePI3.1415926
classShape
protected:
doubles;
voidShape:
面积:
classCircle:
publicShape
voidGetArea();
Circle(double);
doubler;
Circle:
Circle(doublea)
r=a;
voidCircle:
GetArea()
s=r*r*PI;
CircleC(6);
C.GetArea();
C.show();
12、定义计数器类Counter。
要求具有以下成员:
计数器值;
可进行增值和减值记数;
可提供记数值。
classCounter
Counter(int);
Counteroperator++();
Counteroperator--();
Counter:
Counter(inta)
i=a;
voidCounter:
i;
CounterCoun