skystar 发表于 2020-7-6 14:53:54

[东北师范大学]C++程序设计(高起专)(离线考核)


离线考核
《C++程序设计(高起专)》
满分100分

一、判断题(请给正确的打“√”,错误的打 “╳”并说明原因。每题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;
  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()(输出体积和表面积)。
页: [1]
查看完整版本: [东北师范大学]C++程序设计(高起专)(离线考核)