c++复习题

更新时间:2024-04-28 19:21:01 阅读量: 综合文库 文档下载

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

一、填空题

1、在面向对象的程序设计中,派生类通过 机制获得基类已定义的属性和操作。

2、在C++语言的异常处理机制中, 语句用于抛出异常, 语句块用于检测异常, 语句块用于捕捉和处理异常。

3、C++语言支持的两种多态性分别是 多态性和 多态性。 6、C++支持两种多态性,其中函数重载和运算符重载用于实现 ,而虚函数用于实现 。

4、如果要把返回值为void的无参函数A声明为类B的友元函数,则应在类B的定义中加入的语句是 。

5、在函数中有这样的语句来申请空间:int *p=new int[10]; 要释放该空间应使用语句 。

6、函数重载要求几个同名的函数必须在形式参数的个数、 、顺序的一个或多个方面有所区别 。

7、用C++风格进行文件的输入/输出操作时,必须包含的std名空间中的头文件是 。

8、开发C++程序与开发其他高级语言的程序一样,包括编辑、编译、 和_________四个步骤。

9、C++语言中的标准输出流对象是 ,在程序中用于代表标准输出_________设备。

10、类的成员有3种访问属性,其默认的访问属性为 ;访问属性为___ 的成员既可被派生类继承又保持了封装和信息隐藏性。(请填关键字) 得 分 二、单选题(每题2分) 1、C++语言对C做了很多改进,C++语言相对于C语言的最根本的变化是( )。

A、引进了类和对象的概念

B、允许函数重载,并允许设置缺省参数 C、增加了引用的概念

《面向对象程序设计及C++》复习题 第 1 页 共 15 页

D、增加了一些新的运算符

2、决定C++函数的返回值类型的是( )。 A、return语句中的表达式类型 B、调用该函数时系统随机产生的类型

C、调用该函数时的主调用函数类型 D、在定义该函数时所指定的函数返回值类型

3、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。

A、公有类型 B、私有类型 C、友元类型 D、保护类型

4、下面对静态数据成员的描述中,正确的是( )。 A、静态数据成员可以在类体内进行初始化 B、静态数据成员不可以被类的对象调用 C、静态数据成员的访问访问属性不能为private

D、公有静态数据成员可以在对象定义之前以“类名::公有静态数据成员名”的形式访问

5、下面对于友元函数描述正确的是( )。 A、友元函数的实现必须在类的内部定义 B、友元函数在一定程度上破坏了类的封装和信息隐藏 C、友元函数是类的成员函数 D、友元函数不能访问类的私有成员

6、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。

A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用 C、派生类的指针可以获得基类对象的地址

《面向对象程序设计及C++》复习题 第 2 页 共 15 页

D、派生类的对象的地址可以赋给指向基类的指针

7、下列关于虚基类的描述,错误的是( )。 A、设置虚基类的目的是为了消除二义性 B、虚基类的构造函数在非虚基类之后调用

C、若派生类由虚基类和普通基类共同派生,则先调用虚基类的构造函数

D、若虚基类由非虚基类派生而来,则仍然先调用基类构造函数

8、下列运算符中,在C++语言中不能重载的是( )。

A、 :: B、>= C、= D、/

9、有定义class A{ ... }; class B { ... }; class C:public A { B b; A a; ...};则定义一个C类对象时,各类的构造函数的调用顺序为( )。

A、A类构造函数—>B类构造函数—>A类构造函数—>C类构造函数 B、A类构造函数—>A类构造函数—>B类构造函数—>C类构造函数 C、A类构造函数—>C类构造函数—>A类构造函数—>B类构造函数 D、C类构造函数—>A类构造函数—>A类构造函数—>B类构造函数

10、在下列文件读写函数中,进行写操作的函数是( )。

A、 get( ) B、 read( ) C、getline( ) D、put( )

1、假设已有定义:const char *name=\下面语句中错误的是 。

A、name[3]= 'a'; B、name=\C、name=new char[5]; D、cout<

11、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10;

则对函数f的正确调用语句是 。

A、f(py[10],n); B、f(py,n); C、f(*py,&n); D、f(py,10);

12、下列不正确的重载函数是 。 A、int print(int X); 和 void print(float X); B、int disp(int X); 和 char disp(int Y) const;

《面向对象程序设计及C++》复习题 第 3 页 共 15 页

C、void disp(char * str,int Y);和 int disp(char * s,int X); D、int view(int X , int y); 和 int view(int X);

13、有关this指针的描述中,错误的是 。 A、this指针可以在程序中显式使用

B、this指针是在使用对象时由系统自动生成 C、this指针是指向当前对象的指针 D、this指针是指向成员函数的指针

14、关于成员函数特征的下列描述中, 是错误的。

A、成员函数一定是内联函数 B、成员函数可以重载 C、成员函数可以设置缺省参数值 D、成员函数可以是静态的

15、以下关于构造函数的叙述不正确的是 。

A、构造函数名必须和类名一致 B、构造函数在定义对象时自动执行 C、构造函数无任何函数类型 D、一个类的构造函数有且仅有一个

16、下列哪一项不能访问基类的保护成员 。 A、基类的友元函数 B、派生类的对象

C、基类的成员函数 D、公有派生类的成员函数

17、下面有关基类与公有派生类的赋值兼容原则,正确的是 。 A、公有派生类对象不能赋给基类对象 B、基类对象能赋给其公有派生类的引用 C、基类对象不能赋给公有派生类对象

D、公有派生类对象地址不能赋给基类指针变量

18、______是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A、虚析构函数 B、虚构造函数 C、纯虚函数 D、静态成员函数

19、假定要对类AB以友元函数形式重载加号运算符,实现两个AB类对象的加法,并返回相加结果,则该函数的声明语句为: 。

A、 friend AB operator+(AB & a , AB & b); B、friend operator+(AB a) ;

C、friend AB operator+(AB & a) ; D、friend AB & operator+( );

《面向对象程序设计及C++》复习题 第 4 页 共 15 页

三、读程题(每空2分)

1、以下程序运行后输出的第一行是 (1) ,第二行是 (2) 。 #include using namespace std; int Fun(int &x,int y) { x++ ; y++;

return x+y; }

void main( )

{ int a=1,b=2,c=3;

cout<

cout<

2、以下程序运行后输出的第一行是___(3)__,最后一行的输出结果是_(4)____。

#include using namespace std; class A { int a; public: A(int aa=0) { a=aa; } void print( ) { cout<

class B:public A { int b; public: B(int aa=0,int bb=0):A(aa) { b=bb; } void print( ) { A::print (); cout<

《面向对象程序设计及C++》复习题 第 5 页 共 15 页

自 觉 遵装 守 考订 试 线规 则内, 诚 不信 考要 试 ,答绝 不题 作 弊

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

Top