1、第 3 次作业一、填空题(本大题共 30 分,共 10 小题,每小题 3 分)1. 假定一个二维数组为 aMN,则 ai的地址值(以字节为单位)为 _ .2. 类型兼容原则指的是:任何在需要 对象的地方,都可以用 的对象去替代。3. 只是在发生异常时,将异常抛出,本身并不处理异常,异常的处理交由调用者处理;而 try、catch 语句块则是在 语句块中发现异常,在 语句块中处理异常。4. 如果一个类重载了 操作符,由它创建的 就是函数对象。 5. 重新抛出异常的表达式为: 。 6. 以下程序的执行结果是 。#include using namespace std;class Basepubli
2、c:Base()coutusing namespace std;class Aint x;public:A(int x)this-x=x;A return *this;A operator-int)A a(x-=2);return a;void show() coutusing namespace std;class Basepublic:virtual void fun1()coutfun1();p-fun2();10. 以下方阵类 CSquare 完成查找 n 行 n 列的二维 int 数组中两对角线上最大元素的值.请你填空完成此功能.include class CSquare int *
3、arr; /arr 为矩阵首地址 int num; /表示行数与列数 _ / CSquare(int *p, int n) _ / num = n; _ / ; int CSquare:FindMax() const int max; int i = 0; int r, c, tmp;max = arr0; for(; i c ) tmp = r; else tmp = c; if ( max 二、程序阅读题(本大题共 30 分,共 5 小题,每小题 6 分)1. 写出下面程序运行结果。#include void rev(int a,int n)int t;for(int i=0,j=n-1;
4、i#include using namespace std;int main()ofstream f1;char c=A;int i;for(i=0;i#include using namespace std;int main()fstream p;int pos;char ch;p.open(“data.txt“,ios:in|ios:out);if(!p)coutusing namespace std;int avere(int x,int y,int z);double aver(double x,double y,double z);int main()int ai=1,bi=2,ci
5、=3;double ad=1.5,bd=5.5,cd=7.5;coutusing namespace std;int a,b,c,d;int main( )void p(int a,int b);coutusing namespace std;int main()int n=1;while(1)if(n+3)%5=0n+;coutusing namespace std;class Pointprivate:double x, y;public:Point(double x, double y);Point();double getX();double getY();double getDist
6、ance(Point p); Point:Point(double x, double y)this-x = x;this-y = y;Point:Point()double Point:getX()return x;double Point:getY()return y;double Point:getDistance(Point p)return sqrt(pow(x - p.x, 2) + pow(y - p.y, 2);class Polygonpublic:virtual void show()=0;virtual double getPerimeter()=0;virtual do
7、uble getArea()=0;class Triangle : public Polygonprivate:Point p1, p2, p3, p4;public:Triangle(Point p1, Point p2, Point p3);void show();double getPerimeter();double getArea();Triangle:Triangle(Point p1, Point p2, Point p3)this-p1 = p1;this-p2 = p2;this-p3 = p3;void Triangle:show()cout using namespace
8、 std;class Complexpublic:Complex(double r = 0.0, double i = 0.0) :real(r), image(i)Complex operator+(Complex Complex operator-(Complex void display();private:double real, image;Complex Complex:operator+(Complex Complex Complex:operator-(Complex void Complex:display()cout #include #include using name
9、space std;int main()char fn50;int n,pos;coutfn;fstream myFile(fn,ios:in|ios:out);if(!myFile)coutn;if(myFile.eof()break;if(n%2)n-=1;myFile.seekp(pos,ios:beg);myFileusing namespace std;template T aver(T n1,T n2,T n3)return n1+n2+n3;int main()int ai,bi,ci;double ad,bd,cd;coutaibici;coutadbdcd;cout“ai+bi+ci=“aver(ai,bi,ci)endl;cout“ad+bd+cd=“aver(ad,bd,cd)endl;return 0;解题方案:评分标准: