浙江财经学院课程期末考试试卷
浙江财经学院 学年第一学期
密 封 线 《面向对象程序设计》课程期末考试试卷( 卷)
考核方式:考试 考试日期:2005年 月 日 适用专业、班级:
题 号 得 分 评卷人 一 二 三 四 五 六 七 八 九 十 总分 (共六大题) 专业、班级: 学号: 姓名:
参:
一、判断题(每题1分,共10分)
√、×、√、×、×、×、×、√、×、×
二、单项选择题 (每题1分,共10分)
1、c 2、c 3、d 4、b 5、d 6、d 7、a 8、b 9、d 10、c
三、程序选择填空 (每空2分,共20分) 1、①b ②a ③ c 2、①b ②a ③ c 3、①a ②b ③ c ④d
四、分析程序,回答问题:(本大题共30分,每小题6分) 1、x=1 , y=1 x=2 , y=3 x=y y!=y 2、
构造函数被调用
拷贝构造函数被调用 15 22 15 22
析构函数被调用 析构函数被调用
第1页,共5页
浙江财经学院课程期末考试试卷
3、
China *****China
pi=3.14285714e+000 pi=3.143 4、
Constructing 3 by 4 rectangle. Constructing 10 by 8 rectangle. Area is 80
Destructing 10 by 8 rectangle. Destructing 3 by 4 rectangle. 5、
x = 10 y = x*x = 10
x = 100 y = 20
y = x / y = 5
五、程序改错:下列程序中划线的语句有错,请改正(本大题共10分,每错2分) 1、
#include class Point {int X,Y; public:
Point( ){X=0;Y=0;}
① Point(int x,int y){X=x;Y=y;} int getX() const { return X;} int getY() const { return Y;}
void display( ){cout<void main( ) {Point p1;
② cout<#include class Location {public:
void InitL(int xx,int yy); void Move(int xOff,int yOff); int GetX() {return X;} int GetY() {return Y;}
第2页,共5页
浙江财经学院课程期末考试试卷
private: int X,Y; };
void Location::InitL(int xx,int yy) {
X=xx; Y=yy; }
void Location::Move(int xOff,int yOff) {
X+=xOff; Y+=yOff; }
class Rectangle:private Location {
public:
void InitR(int x,int y,int w,int h); void Move(int xOff,int yOff); int GetX() {cout<<\"X=\";
return Location:: GetX();} int GetY() {cout<<\"Y=\";
return Location::GetY();} int GetH() {cout<<\"H=\"; return H;} int GetW() {cout<<\"W=\"; return W;} private:
int W,H; };
void Rectangle::InitR(int x,int y,int w,int h) {
① InitL(x,y); W=w; H=h; }
void Rectangle::Move(int xOff,int yOff) {
② Location::Move(xOff,yOff); }
int main() {
③ Rectangle rect;
rect.InitR(2,3,20,10); rect.Move(3,2);
cout<第3页,共5页浙江财经学院课程期末考试试卷
<六、程序设计(本大题20分) 1、//Triangle类 5分class Triangle:public Shape {public:
Triangle(double w,double h):width(w),height(h){} //构造函数 virtual double area() const {return 0.5*width*height;} //定义虚函数 protected:
double width,height; //宽与高 };
//输出面积的函数 3分
void printArea(const Shape &s)
{cout<2、#include #include class Triangle {int x,y,z; double area; public:
Triangle(int i,int j,int k) // 3分 ――――――――――(1) { double s; x=i;y=j;z=k; s=(x+y+z)/2.0; area=sqrt(s*(s-x)*(s-y)*(s-z)); }
void disparea() //1分 { cout << \"Area=\" << area << endl; }
friend double operator+(Triangle t1,Triangle t2) // 3分 ―――――(2) { return t1.area+t2.area; }
friend double operator+(double d,Triangle t) //3分 ――――――(3) {
第4页,共5页
浙江财经学院课程期末考试试卷
return d+t.area; } };
void main() //2分 ――――――――(4) {
Triangle t1(3,4,5),t2(4,5,6),t3(5,6,7),t4(6,7,8); double s;
cout << \"t1:\";t1.disparea(); cout << \"t2:\";t2.disparea(); cout << \"t3:\";t4.disparea(); cout << \"t4:\";t4.disparea(); s=t1+t2+t3+t4;
cout << \"总面积=\" << s << endl; }
第5页,共5页