东北农业大学《面向对象程序设计》期末考试必备题集
奥鹏期末考核
81611–东北农业大学《面向对象程序设计》奥鹏期末考试题库合集
单选题:
(1)在C++的标准输入语句中使用的提取运算符是( )。
A.
B.
C.**
D.//
答案问询微信:424329
(2)在C++程序中,用来做为数组下标开始结束标志的一对符号是( )。
A.[]
B.{}
C.
D.()
答案问询微信:424329
(3)C++程序预处理命令的开始字符是( )。(﹡*)
A.*
B./
C.&
D.#
答案问询微信:424329
(4)假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如“m1=m2=m3;”。重载操作符=的函数原型最好是( )。
A.int operaotor=(M);
B.int operator=(M&);
C.M operator=(M&);
D.M& operator=(M);
答案问询微信:424329
(5)一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。.
A.需加上类域的限定
B.不需加上类域的限定
C.类域的限定可加可不加
D.不需要任何限定
答案问询微信:424329
问答编程题:
(5)一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。.
A.需加上类域的限定
B.不需加上类域的限定
C.类域的限定可加可不加
D.不需要任何限定
答案问询微信:424329
(5)一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。.
A.需加上类域的限定
B.不需加上类域的限定
C.类域的限定可加可不加
D.不需要任何限定
答案问询微信:424329
论述题:
(1)根据下面类中Compare 函数成员的原型和注释写出它的类外定义。 class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nnms) {cout"Error!"endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; iMS; i++) a[i]=aa[i];}int Compare(AA b); //比较*this与b的大小,若两者中//的n值相同,并且数组中前n个元素值对应//相同,则认为两者相等返回1,否则返回0。};
答案问询微信:424329
(2)程序: # include iostream.h//(1)classClock{public:Clock (int H=0,int M=0, int S=0)//(2){Hour=H ;Minute=M ;Second=S;}//(3)Clock ( Clock& c)//(4){ Hour=c.Hour;Minute=c.Minute;Second=c.Second;}// (5)void SetTime (int H=0,int M=0,int S=0)// (6){Ho奥鹏期末考核ur=H ;Minute=M ;Second=S;}// (7)void ShowTime ()// (8){cout Hour “:” Minute “:” Second endl;// (9)~Clock () { }// (10)private:int Hour , Minute , Second;// (11)};voidmain( void ){Clock meClock (8,30,0);// (12)MeClock.ShowTime ( );// (13)Clock yourClock (meClock);// (14)yourClock.SetTime ( );// (15)yourClock.ShowTime( );// (16)}问题:1、指出Clock类的外部接口的行号。2、指出Clock类的构造函数和拷贝构造函数以及析构函数所在行号。3、执行那行语句时系统自动调用了构造函数并写出被初始化的对象名。4、执行那行语句时系统调用了拷贝构造函数并写出被初始化的对象名。写出程序的运行结果。
答案问询微信:424329
简答题:
(1)简述C中结构与C++中类的区别。
答案问询微信:424329
(2)简述C++程序在内存中的分配格局。
答案问询微信:424329
(3)简述多继承中构造函数被调用顺序。
答案问询微信:424329
其他题:
(1)请写出下面程序的运行结果:
#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);
}
答案问询微信:424329
(2)程序:
#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 <<"Enter x and y:n";
cin >>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分别代表该点在极坐标系下的弧度值和半径值。请写出修改后的类的定义与实现。
答案问询微信:424329