system(\; return 0; }
21. #include
A(int i=0){m=i;cout<<\;} void set(int i) {m=i;}
void print() const {cout< A(const A &s){m=s.m;cout<<\;} ~A(){cout<<\;} private: int m; }; int main() {const int N=5; A my; my=N; my.print(); return 0;} 五、程序填空 1.下面程序的功能是定义类sample,并输出其数据成员,请填空: #include static int n; public: sample(int i){n++;m=i;} int disp() {return m;} }; int sample::n=5; int main() { sample s1(3),s2(4); cout< 2.斐波那契数列的第1项和第2项都是1。下面的程序用来输出斐波那契数列1,1,2,3,5,8,13,21,...第7项的值,请选择正确答案填入程序空白处。 1,i??2?f(i)?斐波那契数列的构成规律: ?f(i?1)?f(i?2),i?2?#include using namespace std; long fib(int g) {switch(g) 第 11 页 共 17 页 {case 0: return 0; case 1: case 2: return 1; } return (fib(g-1)+fib(g-2)); } main() {long int k; k=fib(7); cout<<\;} 3.下面程序的功能是重载“--”(自减1)运算符,使对象s的数据成员n值减1。 #include public: sample(int m) {n=m;} sample(){n=0;} sample operator--(int) {sample s;n--; return s; } void disp(){cout<<\;} }; void main() { sample s(10); (s--).disp(); s.disp(); } 4.下面的程序的功能是输出300~500之间所有素数。本程序中利用自定义函数prime()判断一个整数是否为素数(如果整数x不能被2~x之间的任意一个数所整除,则x是素数)。要求每行输出11个素数。 #include {int k, s=0; for(k=301;k<500;k+=2) if (prime(k)) {cout< if(s==0) cout< cout< for(i=2;m%i!=0;i++); return(m==i);} 5.该程序的功能为模拟秒表,每次走一秒,满60秒进一分钟,此时秒数又从0开始算。程序中定义了一个类Time,包含数据成员minute(分)和sec(秒)。要求输出分和秒的值 第 12 页 共 17 页 #include Time(){minute=0; sec=0;} Time(int m,int s){ minute=m;sec=s;} Time operator++(int); void display(){cout< int minute,sec; }; Time Time::operator++(int); {Time temp=*this; if(++sec>=60) { sec%=60;minute++;} return temp;} int main() {Time t1(23,59),t2; cout<<\;t1.display(); t2=t1++; cout<<\;t2.display(); cout<<\;t1.display(); system(\; return 0; } 六、编程题 1.定义一个订书单中使用的图书信息类Book,每个Book类对象代表的是订书单中的一种图书,包含内容如下: (1)数据成员BookID(字符串),表示图书编号;数据成员Quantity(int型),表示订购的图书数量;数据成员Price(float型),表示图书单价。 (2)构造函数,功能是使用参数为数据成员赋值; (3)成员函数Total,功能是计算一个图书对象的应付金额; (4)成员函数BookInfo,功能是在一行上显示一个图书对象的图书编号、订书数量和单价。 (5)定义一个普通函数Sum,该函数的功能是计算一张订书单上所有图书的总金额。 (6)定义main()函数,主要功能是: ①定义一个Book类的对象数组,用于存放一张订书单的信息; ②从键盘输入订书单上每种图书的信息; ③调用Sum()函数,计算订书单上所订图书的总金额; ④按如下格式显示一张订书单上的订书信息和总金额 #include Book(string bid,int qu,float pr); 第 13 页 共 17 页 float total(){return quantity*price;} void BookInfo(); private: string BookID; int quantity; float price; }; Book::Book(string bid,int qu,float pr) {BookID=bid;quantity=qu;price=pr;} void Book::BookInfo() {cout< for(int i=0;i int main() {Book b[3]={Book(\,20,15.4),Book(\,35,21.7),Book(\,78,42.1)}; cout<<\订书单====================\; cout< cout<<\; cout<<\总额=\,3)< system(\; return 0; } 2.设计一个长方体类box,其数据成员包括length(长)、width(宽)、height(高)。要求用成员函数实现以下功能: (1)由键盘输入长方体的长、宽、高; (2)计算并输出长方体的体积; (3)计算并输出长方体的表面积 #include box(){cout<<\;cin>>length; cout<<\;cin>>width; cout<<\;cin>>height;} void getarea() { cout<<\< void getvolume(){cout<<\;} private: double length,width,height; }; 3.设计一个复数类complex,其数据成员包括real(实部)、image(虚部)。 第 14 页 共 17 页 要求: (1)用成员函数实现以下功能: ? 定义默认函数,复数的实部与虚部初始化为0; ? 定义带参构造函数,复数的实部与虚部用函数的参数初始化; ? 重载运算符“+”,用于实现两个复数的相加运算。 (2)重载流插入运算符,用于输出复数,,输出形式为a+bi(a、b分别为实部和虚部,当b为负数时输出a-bi)。 #include complex(){real=0;image=0;} complex(int r,int i){real=r;image=i;} complex operator+(complex & c); friend ostream &operator<<(ostream &output,complex &c); private: int real,image; }; complex complex::operator+(complex &c) {return complex(real+c.real,image+c.image);} ostream &operator<<(ostream &output,complex &c) {if(c.real!=0) output< { if(c.real==0) output<<0< output<<\; else output<<\; else output<<\;} else { if(c.image==-1) output<<\; else output< int main() {complex c[]={complex(0,0),complex(0,1),complex(0,-1),complex(1,0),complex(-1,0),complex(1,1),complex(-1,-1),complex(1,-1),complex(-1,1)}; for(int i=0;i<9;i++) cout< system(\; return 0; } 4.编写一个程序计算正方体(cube)和圆柱体(cylinder)的体积。 要求: (1)定义一个抽象类shape,在其中定义求体积的纯虚函数volume()。 第 15 页 共 17 页