1、面向对象程序设计基础试卷 第 1 页 共 7 页I 选择题 (共 10 小题,每小题 2 分,共 20 分)(1)以下哪个符号(或组合)是作用域限定符( )A)- B). C): D)(2)以下程序对一维坐标点类 Point 进行运算符重载,输出结果是( )#include using namespace std;class Point public:Point (int val) x = val; Point operator +() x+; return *this; Point operator +(int) Point old = *this; +(*this); return old
2、; Point operator +(Point a) x += a.x; return *this; int GetX() const return x; private:int x;int main()Point a(10); cout using namespace std;int countp=0;class Point int X,Y; public: Point(int x=0,int y=0) X=x; Y=y; Point(Point Y=p.Y;countp+;friend Point myfun(Point p1 ,Point p2 ,const Point ; Point
3、 myfun(Point p1,Point p2,const Point return tmp;void main() Point pp0,pp1(1,2),pp2(1);myfun(pp0,pp1,pp2);std:coutusing namespace std;int i = 0;int fun(int n) static int a = 2;a+;return a+n;void main()int k = 5;int i = 2;k += fun(i);k += fun(i);cout using namespace std;class Apublic:A (int i) x = i;
4、void dispa () cout 14) | ( 16 27 写出下面程序运行的结果:(10 分)#include using namespace std;void myFunction();int x=2,y=3;int main(int argc, char* argv)cout“x=“xendl;cout“y=“yendl;myFunction();cout“x=“xendl;cout“y=“yendl;面向对象程序设计基础试卷 第 6 页 共 7 页return 0;void myFunction()int y=10;cout“x=“x+endl;cout“y=“y+endl;打印
5、的结果:x=y=x=y=x=y=III 上机编码试题,共 5 小题,每小题 10 分,共 50 分,请按要求答在给定的项目文件中提交。! 请于考试结束前关闭你的项目,删去你的文件夹下的 Debug 文件夹,然后把你的整个项目文件夹打包成一个“.rar”文件提交到下面服务器中相应的地方。! 服务器 ftp:/219.222.170.198提交考试结果的用户名及密码 username/password: se2007w/se2007w! 你的程序不能有编译错误,否则以 0 分记!以“200741404101 方林楷”为例,提交的文件名应为“101 方林楷.rar” ,解压后的文件夹也应为“101
6、方林姓名: 学号:系别: 年级专业: ( 密 封 线 内 不 答 题 )密封线线面向对象程序设计基础试卷 第 7 页 共 7 页楷” 。1 创建一个 VC6.0 项目。要求:以你的学号后三位+姓名为项目名创建一个带“Hello World”的 win32 控制台应用程序。以“200741404101 方林楷”为例,所创建项目的名称为“101 方林楷”(10 分)2 在上面创建的项目中设计并实现 Point 类,属性包括一对点的坐标 int x,y;成员函数至少包括带两个参数(int x, int y)的构造函数,拷贝构造函数,以及分别取得 x,y 值的函数 getX()和 getY(),和把点
7、移到某固定点的函数MoveTo(int x,inty),要求成员变量均为 private 属性。(10 分)3 用一对对角线上的两个点(如左上角与右下角;或右上角与左下角)即可以表示一个矩形,在上面声明的 Point 类中,派生出一个新类 Rectangle,属性包括一个 Point 类的对象 p 用来表示矩形的一个对角顶点;父类的成员变量 x和 y 表示矩形的另一个对角顶点。函数至少包括不带参数的构造函数,和计算矩形面积的函数 getArea()。要求成员变量均为 private 属性。(10 分)4 运算符重载。假设 obj 是 Point 类的对象, -obj 是指把 Point 类的成员变量 x 和 y 的值分别减 1,请实现这个-运算符的重载。(10 分)5 直线的斜率 k 的算法是这样的,当两点(x1,y1)和(x2,y2)表示的直线不为竖直的直线时,也即 x1 x2 不为 0 时,k = (y1 y2)/(x1 x2),否则 k为无穷大。请在 Rectangle 类中实现这样一个求对角线斜率的函数 double getK(),要求当 k 为无穷大时主动抛出一个异常,抛出类型为字符串,值为“斜率无穷大” ,否则返回该直线的斜率,并在 main 函数中测试该函数,截或该异常并输出。(10 分)