C++程序设计考试题及答案C++程序设计考试题及答案.doc
文本预览下载声明
C++程序设计
1、声明个CPU类,包含等级(rank),频率(frequency),电压(voltage)属性,有两个公有成员函数run(函数功能:输出“cpu正在运行”),stop(函数功能:输出“cpu停止运行”)。其中rank为枚举型CPU_Rank,声明为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为double型电压值。编写构造函数和析构函数,在主函数中显示它们的调用顺序。
定义复数类COMPLEX,并用成员函数为复数类COMPLEX重载加、减及赋值运算符操作。
3、写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。
4、已知交通工具类定义如下。
要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数),print(打印车轮数,重量和载人数)。
5、声明一个车(vehicle)基类,具有maxspeed、weight成员变量,run、stop成员函数(简单输出提示“车正在行进”,“车停止”),由此派生出自行车类(bicycle)、汽车类(motorcar)。自行车类有高度(height)属性,汽车(motorcar) 类有座位数(seatnum)。从bicycle和motorcar派生出摩托车类(motorcycle),在继承过程中,注意把vehicle 设置为虚基类,同时编写各个类的构造函数和析构函数,在主函数中建立各个类对象,观察执行情况。
6、定义类X、Y、Z,函数h(X *),满足:类X有私有成员i,Y的成员函数g(X *)是X的友元函数,实现对X的成员i加1;类Z是类X的友元类,其成员函数f(X *)实现对X的成员i加5;函数h(X *)是X的友元函数,实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。
提示:按Y、Z、X顺序定义类,在Y、Z类前 前向声明X , X * x表示X类对象指针x,访问x对象数据成员i变量的形式为 x-i。
答案
1、
#include iostream.h
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{private:
CPU_Rank rank;
int frequency;
float voltage;
public:
void run();
void stop();
CPU(CPU_Rank r,int f,float v);
~CPU();
CPU(CPU c);
};
void CPU::run()
{coutCPU正在运行endl;}
void CPU::stop()
{coutCPU停止运行endl;}(1分)
CPU::CPU(CPU_Rank r,int f,float v)
{rank=r;
frequency=f;
voltage=v;
cout构造了一个CPU:endl;
}
CPU::~CPU()
{cout析构了一个CPU:endl;}
void main()
{CPU a(P1,300,2.8);
a.run();
a.stop();}
2、
class COMPLEX {
public:
COMPLEX(double r = 0, double i = 0);
COMPLEX operator +(const COMPLEX other);
COMPLEX operator -(const COMPLEX other);
COMPLEX operator =(const COMPLEX other);
private:
double real, image; // 复数的实部与虚部
};
COMPLEX::COMPLEX(double r, double i)
{real=r;image=I;}
COMPLEX::COMPLEX operator +(const COMPLEX other)
{ COMPLEX temp;
temp.real=real+other.real;
temp.image=image+other.image;
return temp
}
COMPLEX::COMP
显示全部