东师范2020年春季《C++程序设计》离线考核答案参考
离线考核
《C++程序设计》
100分
一、10分,共40分。)
1.什么是类?什么是对象?对象与类的关系是什么?
2.什么是多态性?请举例说明。
3.虚函数是否一定要有virtual关键字?什么叫纯虚函数和抽象类?多态调用需要满足怎样的条件?
4.简述结构化的程序设计、面向对象的程序设计的基本思想。
二、程序分析题(10分,共40分。)
1. 指出下列程序中的1处错误,并说明为什么。
class Location {
int X,Y=20;
protected:
int zeroX,zeroY;
int SetZero(int ZeroX,int ZeroY);
private:
int length,height;
public:
void init(int initX,int initY);
int GetX( );
int GetY( );
};
答:
2.指出下列程序中的1处错误,并说明为什么。
#include<iostream.h>
#include<stdlib.h>
class CTest{
public:
const int y2;
CTest(int i1, int i2,int i3):y1(i1),y2(i2)
{x=i3;}
int show() const{cout<<"y1="<<y1<<"\ny2="<<y2<<"\nx="<<x<<endl;}
//…
private:
int x;
const int y1;
};
void main()
{
CTest c(1,2,3);
c.show();
c.y2 = -2;
c.show();
}
答:
3.写出下面程序的输出结果。
#include <iostream.h>
class B
{ int b;
public:
B(int i) {b=i;}
virtual void virfun() {cout<< "B::b: "<<b<<" , ";}
};
class D: public B
{ public:
D(int i,int j): B(i) {d=j;}
void virfun() {B::virfun(); cout<<"D::d: "<<d<<endl;}
private: int d;
};
void fun(B *objp) { objp->virfun(); }
void main() { D *pd=new D(3,5) ; fun(pd);}
答:
4. 写出下面程序的运行结果。
#include<iostream.h>
class example
{
public:
example(int n)
{
i=n;
cout<<"Constructing\n";
}
~example()
{cout<<"Destructing\n";}
int get_i()
{return i;}
private :
int i;
};
int sqr_it(example o)
{ return o.get_i()*o.get_i(); }
main ()
{
example x(10);
cout<<x.get_i()<<endl;
cout<<sqr_it(x)<<endl;
return 0;
}
答:
三、完成程序题(10分,共20分。)
1.请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。
#include<iostream.h>
class Integer
{
int x;
public:
Integer(int a=0){x=a;}
void display( ){cout<<x<<endl;}
① ;
};
Integer Max(Integer a,Integer b)
{
if(② )
return a;
return b;
}
void main( )
{
Integer a(3),b(5),c;
c=Max(a,b);
c.display( );
}
2. 设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。
页:
[1]