C++复习资料-华北水利水电大学研究生考试专用

更新时间:2024-03-23 06:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题

1.每个类___构造函数.

A.只能有一个 B.只可有公有的 C.可以有多个 D.只可有缺省的 2.下列特性中,C与C++共有的是___.

A.继承 B.封装 C.多态性 D.函数定义不能嵌套 3.下列关于析构函数的描述中,错误的是___.

A.类中有且仅有一个析构函数 B.析构函数可以有形参

C.析构函数没有函数类型 D.析构函数在对象消失时被自动执行 4.下面关于友元函数的描述中,正确的是___.

A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数

C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员 5.要实现动态联编,可以通过___调用虚函数.

A.对象指针 B.成员名限定 C.对象名 D.派生类名 6.下列对派生类的描述中,错误的是___.

A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类

C.派生类的缺省继承方式是private D.派生类只含有基类的公有成员和保护成员 7.C++类体系中,能被派生类继承的是___.

A.构造函数 B.虚函数 C.析构函数 D.友元函数

8.C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是___. A.面向过程 B.面向对象 C.安全性 D.复用性 9.下列关于构造函数的描述中,错误的是___.

A.构造函数可以设置默认参数 B.构造函数在定义类对象时自动执行 C.构造函数可以是内联函数 D.构造函数不可以重载 10.下面描述中,表达错误的是___.

A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承是基类中的private成员在派生类中仍是private的 C.公有继承时基类中的protect成员在派生类中仍是protect的 D.私有继承时基类中的public成员在派生类中是private的 11.下面叙述不正确的是___.

A.派生类一般都有公有派生 B.对基类成员的访问必须是无二义性的 C.赋值兼容规则也适用于多重继承组合 D.基类的公有成员在派生类中仍然是公有的

12.在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的___. A.私有成员 B.公有成员 C.保护成员 D.保护成员或私有成员 13.对基类和派生类的关系描述中,错误的是___.

A.派生类是基类的具体化 B.基类继承了派生类的属性 C.派生类是基类定义的延续 D.派生类是基类的特殊化 14.关于this指针使用说法正确的是___.

A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B.保证基类私有成员在子类中可以被访问 C.保证基类保护成员在子类中可以被访问 D.保证基类公有成员在子类中可以被访问

15.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为___. A.内联函数 B.重载函数 C.递归函数 D.嵌套函数

16.假设Class Y: public X,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时调用构造函数和析构函数的次序分别为___.

A. X,Y;Y,X B. X,Y;X,Y C. Y,X;X,Y D. Y,X;Y,X

17.假定一个类的构造函数为A(int aa, int bb) {a=aa--;b=a*bb;},则执行A x(4,5);语句后x.a和x.b的值分别为___.

A.3和15 B.5和4 C.4和20 D.20和5

18.下列不能作为类的成员的是___.

A.自身类对象的指针 B.自身类对象 C.自身类对象的引用 D.另一个类的对象

19. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为___.

A.x.a B.x.a() C.x->a D.(*x).a()

20. 关于对象概念的描述中,说法错误的是___.

A.对象就是C语言中的结构变量 B.对象代表着正在创建的系统中的一个实体 C.对象是类的一个变量 D.对象之间的信息传递是通过消息进行的 二、填空题

1.在C++中,数据封装要解决的问题是防止不同模块之间数据的非法访问. 2.已知int DBL(int n){return n + n;}和long DBL(long n){return n+n;}是一个函数模板的两个实例,则该函数模板的定义是template Type DBL (Type n){return n+n; }. 3.表达式cout<. 5.假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用复制或拷贝构造函数来完成此功能.

6. 如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加入的语句: friend void A::f();. 7.int n=0; while(n=1)n++; while循环执行次数是无限次. 8.C++语言支持的两种多态性分别是编译时的多态性和运行时的多态性. 9.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成类. 10.在用C++进行程序设计时,最好用new代替malloc. 11.基类的公有成员在派生类中的访问权限由访问控制方式或继承方式决定. 12.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为多态性. 13.vector类中向向量尾部插入一个对象的方法是push_back. 14.在C++中,利用向量类模板定义一个具有20个int的向量A,其元素均被置为9,实现此操作的语句是vectorA(20,9). 15.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取指针或引用方式. 16.编译时的多态性通过重载函数实现. 三、写出下列程序的输出结果: 1. }; int f(int); class B : public A{ int main() { protected: int i; int i,j; for(i=0;i<5;i++) public: cout<0;i--) } k += i; void print(){ return k; cout< int main(){ using namespace std; B d(1,2); class A{ d.print(); protected: B c(1,2,3,4); int x,y; c.print(); public: return 0; A(int m=5,int n=6) { } x=m,y=n; 输出结果:5 6 1 2 } 3 4 1 2

3.

#include using namespace std; class A{ public:

virtual void print( ) { cout<<\printing.\ } };

class B:public A{ public:

void print( ){ } };

class C:public B{ public:

void print( ) {

cout<<\printing.\ } };

void show(A&a){ a.print( ); }

void main( ){ A a; B b; C c;

show(a); show(b); show(c); }

输出结果:This is class a printing This is class c printing 4.

using namespace std; class base{ public:

void who(){cout<<\};

class derive1:public base{ public: void who(){cout<<\class\};

class derive2:public base{ public:

void who(){cout<<\class\};

void main(){ base obj1; obj1.who(); derive1 obj2; obj2.who(); derive2 obj3; obj3.who(); }

输出结果:base class derive1 class derive2 class 5.

#include using namespace std; class Base{ public:

virtual void fun (int data){ cout<<\ }

void fun(char *str){

cout<<\ } };

class Derived: public Base{ public:

void fun() {

cout<<\ }

void fun(int data){

cout<<\ }

void fun(char *str){

cout<<\ } };

void main(){ Base *pA; Derived b; pA=&b;

pA->fun(1);

pA->fun(\}

输出结果:Derive:1 Base:HZIEE

四、程序设计题

1.实现重载函数Double(x),返回值为输入参数的两倍;参数分别为整型,浮点型,双精度型,返回值类型与参数一样.

#include using namespace std;

int Double(int a){return 2*a;}

float Double(float a){return 2.0*a;}

double Double(double a){return 2.00000*a;} int main(){

int i;float j;double k;

cout<<\请依次输入整型、浮点型、双精度型参数:\cin>>i>>j>>k;

cout<<\输入参数的两倍依次是\

}//------------------------------------------------------------------------------- 2.声明一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积,GetArea应在Shape基类定义为虚函数.编写相关类的定义.

#include public: using namespace std; Circle(double r) class Shape {radius=r;} { public: double GetArea()const

virtual double GetArea ()const{return {return 3.14*radius*radius;} 0.0;}; }; }; void fn(const Shape& a){cout<<\该对象的面class Rectangle:public Shape 积为:\{ double length,width; int main() public: {double l,w,r; Rectangle(double l,double w) cout<<\请输入长方形的长和宽:\ {length=l; cin>>l>>w; width=w;} fn(Rectangle(l,w)); double GetArea()const cout<<\请输入圆的半径:\ {return length*width;} cin>>r; }; fn(Circle(r)); class Circle:public Shape }//------------------------------- { double radius;

3.已知交通工具类定义如下. class vehicle{ protected:

int wheels;//车轮数 float weight;//重量 public:

void init(int wheels,float weight); int get_wheels(); float get_weight(); void print(); }; 要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数),print(打印车轮数,重量和载人数).

void print(); #include

}; using namespace std;

void car::init(int wheels,float class vehicle

weight,int num) {protected:

{vehicle::init(wheels,weight); int wheels;

passengers=num; float weight;

} public:

int car::getpassenger() void init(int wheels,float weight);

{return passengers;} int get_wheels();

void car::print() float get_weight();

{vehicle::print(); void print();

cout<<\可载人数:\};

} void vehicle::init(int wheels,float

int main() weight)

{car a; {this->wheels=wheels;

int i,k;float j; this->weight=weight;

cout<<\设置车轮数、重量和载人数:\ }

cin>>i>>j>>k; int vehicle::get_wheels()

a.init(i,j,k); {return wheels;}

a.print(); float vehicle::get_weight()

}//------------------------------- {return weight;}

void vehicle::print()

{cout<<\车轮数:\重量:\

class car:public vehicle {private:

int passengers; public:

void init(int wheels,float weight,int num);

int getpassenger();

本文来源:https://www.bwwdw.com/article/93r8.html

Top