欢迎光临
奥鹏作业辅导

东北农业大学20秋《面向对象程序设计》作业考核试题[答案]

来源:奥鹏远程教育   日期: 作者:奥鹏作业辅导

东北农业大学20秋《面向对象程序设计》作业考核试题[答案]满分答案

东北农业大学20秋《面向对象程序设计》作业考核试题

试卷总分:100  得分:100

一、单选题 (共 5 道试题,共 10 分)

1.假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不正确的语句为( )。.

A.BOOK *x=new book;

B.BOOK x={"C++ Programming",27.0};

C.BOOK *x=new BOOK;

D.BOOK *x=book;

 

2.假设所有变量均为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是( ) 。

A.7

B.8

C.9

D.2

 

3.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( )。.

A.n

B.n+1

C.n-1

D.n-2

 

4.当一个类对象离开它的作用域时,系统自动调用该类的( )。.

A.无参构造函数

B.带参构造函数

C.拷贝构造函数

D.析构函数

 

5.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。.

A.需加上类域的限定

B.不需加上类域的限定

C.类域的限定可加可不加

D.不需要任何限定

 

东北农业大学20秋《面向对象程序设计》作业考核试题[答案]多选题答案

二、简答题 (共 5 道试题,共 30 分)

6.简述什么是对象,并举例说明。

 

7.简述类对其成员的三种存储控制及作用结果。

 

8.简述什么是浅拷贝和深拷贝。

 

9.简述静态成员函数与一般成员函数的主要差别。

 

10.简述多继承中构造函数被调用顺序。

 

三、其他题 (共 4 道试题,共 60 分)

11.请写出下面程序的运行结果: #include  class Tdate{ public: Tdate(); Tdate(int d); Tdate(int m,int d); Tdate(int m,int d,int y); //其他公共成员 protected: int month; int day; int year; }; Tdate::Tdate() { month=4; day=15; year=1995; cout <<month <<"/" <<day <<"/" <<year <<endl;} Tdate::Tdate(int d) { month=4; day=d; year=1996; cout <<month <<"/" <<day <<"/" <<year <<endl;} Tdate::Tdate(int m,int d) { month=m; day=d; year=1997; cout <<month <<"/" <<day <<"/" <<year <<endl;} Tdate::Tdate(int m,int d,int y) { month=m; day=d; year=y; cout <<month <<"/" <<day <<"/" <<year <<endl;} void main() { Tdate aday; Tdate bday(10); Tdate cday(2,12); Tdate dday(1,2,1998);

 

12.请写出下面程序的运行结果: 程序:#include class OBJ1{public: OBJ1(){ cout <<"OBJ1\n"; }}; class OBJ2{public: OBJ2(){ cout <<"OBJ2\n"; }}; class Base1{public: Base1(){ cout <<"Base1\n"; }}; class Base2{public: Base2(){ cout <<"Base2\n"; }}; class Base3{public: Base3(){ cout <<"Base3\n"; }}; class Base4{public: Base4(){ cout <<"Base4\n"; }}; class Derived :public Base1, virtual public Base2, public Base3, virtual public Base4{ public: Derived() :Base4(), Base3(), Base2(), Base1(), obj2(), obj1() { cout <<"Derived ok.\n"; } protected: OBJ1 obj1; OBJ2 obj2;}; void main(){ Derived aa; cout <<"This is ok.\n";}

 

13.根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。 class AA { int* a; int n; int MS; public: void InitAA(int aa[], int nn, int ms) { if(nn>ms) {cout<<"Error!"<<endl; exit(1);} MS=ms; n=nn; a=new int[MS]; for(int i=0; i<MS; i++) a[i]=aa[i]; } AA* Reverse1(); //通过动态存储分配得到一个对象,并动态分配 //a[MS]数组空间,要求该对象中的n和MS的值与*this中的 //对应成员的值相同,数组元素的值是按照*this中数组元 //素的相反次序排列得到的,要求该函数返回动态对象的地址。 };

 

14.程序: #include  #include  class Point{ public: void Set(double ix,double iy) //设置坐标 { x=ix; y=iy; } double xOffset() //取y轴坐标分量 { return x; } double yOffset() //取x轴坐标分量 { return y; } double angle() //取点的极坐标 { return (180/3.14159)*atan2(y,x); } double radius() //取点的极坐标半径 { return sqrt(x*x+y*y); } protected: double x; //x轴分量 double y; //y轴分量 }; void main() { Point p; double x,y; for(;;){ //重复输入x和y轴分量,直到x分量值小于0 cout >x >>y; if(x<0) break; p.Set(x,y); cout <<"angle=" <<p.angle() <<",radius=" <<p.radius() <<",x offset=" <<p.xOffset() <<",y offset=" <<p.yOffset() <<endl; } } 问题: 根据类的封装性,不改变该类的公有接口,不改写主函数的情况下,只改变该点类的定义与实现,要求把原有点类的私有成员x,y改写成另外两个私有数据成员a,r分别代表该点在极坐标系下的弧度值和半径值。请写出修改后的类的定义与实现。

 

东北农业大学20秋《面向对象程序设计》作业考核试题[答案]历年参考题目如下:

扫描二维码获取答案

热门文章

猜你喜欢

  • 19春华师《西方经济学》在线作业[答案]

  • 华师《西方经济学》在线作业-0003 试卷总分:100 得分:0 一、 单选题 (共 10 道试题,共 30 分) 1.对通货膨胀现象最恰当的描述是( ) A.流通中的货币量过多而引起
  • 南开18春学期《市政学》在线作业答案

  • 18春学期《市政学》在线作业-0002 试卷总分:100 得分:0 一、 单选题 (共 20 道试题,共 40 分) 1.一下特征中,()不属于我国城市化的主要特征 A.政府主导的城市化
  • 股票股利是指()。

  • 股票股利是指()。 A.用资本公积发放的股利 B.用增发股票分配的利润 C.用债券发放的股利 D.以上都不是 答案:B
  • 北语21春《审计学》作业1[答案]奥鹏作业

  • 21春《审计学》作业1 试卷总分:100 得分:100 一、单选题 (共 18 道试题,共 90 分) 1.注册会计师获取的下列以文件记录形式的证据中,证明力最强的是_____。 A