离线考核
《C++程序设计(高起专)》
满分100分
一、判断题(请给正确的打“√”,错误的打 “w”并说明原因。每题4分,共20分。)
1 2 3 4 5 6 7
1. 静态的成员函数没有隐含的this指针 ,所以它们只能访问静态的数据成员。( )
2. 通过类对象可以访问类中所有的成员。( )
3. 构造函数是可以被派生类继承的。( )
4. 构造函数和析构函数都可以是虚函数。( )
5. 只有类中全部函数都为纯虚函数时,该类才被称为抽象类。( )
二、简答题(每小题5分,共20分。)
1. 什么是封装性?请举例说明。
2. 什么是函数重载和运算符重载?为什么要使用重载?
3. 拷贝构造函数在哪几种情况下被调用?
4. 什么是类?什么是对象?对象与类的关系是什么?
三、程序分析题(每小题10分,共40分。)
1. 指出下面程序中的1处错误,并说明原因。
#include<iostream.h>
class Point
{
int X,Y;
public:
Point( ){X=0;Y=0;}
Point(int x=0,int y=0){X=x;Y=y;}
void display( ){cout<<X<<","<<Y<<endl;}
};
void main()
{
Point p;
p.display();
}
答:
2. 指出下面程序中的1处错误,并说明原因。
#include<iostream.h>
class CTest{
public:
CTest(){ x=20; }
private:
int x;
friend void friend_f(CTest fri);
};
void friend_f(CTest fri) { fri.x=55; }
void main()
{
CTest c1,c2;
c1.friend_f(c2);
}
答:
3. 写出下面程序的运行结果。
#include<iostream.h>
class Test
{
private:
int num;
public:
Test(int n=0){num=n;num++;}
~Test( ){cout<<”Destructor is active,number=”<<num<<endl;}
};
void main( )
{
Test x[2];
cout<<”Exiting main”<<endl;
}
答:
4. 写出下面程序的运行结果。
#include<iostream.h>
class Test{
private:
static int val;
int a;
public:
static int func();
static void sfunc(Test &r);
};
int Test::val=20;
int Test::func()
{ val--; return val; }
void Test::sfunc(Test &r)
{ r.a=25; cout<<"Result3="<<r.a; }
void main()
{
cout<<"Resultl="<<Test::func()<<endl;
Test a;
cout<<"Result2="<<a.func()<<endl;
Test::sfunc(a);
}
答:
四、完成程序题(每小题10分,共20分。)
1. 请在横线处填上适当的字句,以使程序完整。
#include <iostream.h>
#include ″math.h″
class Point
{
private:
double X,Y;
①____ ______Line;
public:
Point(double x=0, double y=0)
{ X=x; Y=y; }
Point(Point &p)
{ X=p.X; Y=p.Y; }
};
class Line
{
private:
Point p1,p2;
public:
Line(Point &xp1, Point &xp2): ②___ _______{}
double GetLength();
};
double Line::GetLength()
{
double dx=p2.X-p1.X;
double dy=p2.Y-p1.Y;
return sqrt(dx*dx + dy*dy);
}
void main()
{
Point p1,p2(3,4);
Line L1(p1,p2);
cout<<L1.GetLength()<<endl;
}
2. 设计一个立方体类Box,使它能计算并输出立方体的体积和表面积。
要求:
Box类包含三个私有数据成员:a(立方体边长)、volume(体积)和area(表面积);
Box类包含有构造函数及seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和disp()(输出体积和表面积)。