南华大学《C++ 语言程序设计》作业题 下载本文

内容发布更新时间 : 2024/5/3 16:41:13星期一 下面是文章的全部内容请认真阅读。

《C++语言程序设计》作业题

一、判断题

( )1、写在类体内的函数都是内联函数。

( )2、通常的拷贝初始化构造函数的参数是某个对象的指针名。 ( )3、重载运算符可改变原运算符的优先级和结合性。

( )4、在设置了默认参数值后,调用函数的对应实参就必须省略。 ( )5、析构函数是一种函数体为空的成员函数。

( )6、某类的友元类的所有成员函数可以存取或修改该类中的私有成员。 ( )7、对象数组的元素可以是不同类的对象。

( )8、函数的参数个数、类型及位置都相同,只是函数返回值类型不同,这不是重载函数。 ( )9、派生类是从基类派生出来的,但它不能再生成新的派生类。 ( )10、构造函数和析构函数都不能重载。

( )11、在公有继承中,基类中只有公有成员对派生类的对象是可见的。 ( )12、this指针是一个指向正在被某个成员函数操作的对象的指针。 ( )13、一维对象指针数组的每个元素应该是某个类的对象的地址值。 ( )14、在C++中,定义函数时必须给出函数的类型。 ( )15、析构函数是一种函数参数表为空的成员函数。 ( )16、派生类的继承方式有两种:公有继承和私有继承。 ( )17、自身类对象的引用不可以作为该类的成员。

( )18、多重继承情况下,派生类中对基类成员的访问不会出现二义性。 ( )19、可以在类的构造函数中对静态数据成员进行初始化。

( )20、多重继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。 ( )21、在单继承情况下,派生类中对基类成员的访问不会出现二义性。 ( )22、转换函数不是成员函数,它是用来进行强制类型转换的。 ( )23、在公有继承中,基类中的保护成员对派生类对象是可见的。

( )24、虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的问题。 ( )25、在保护继承中,基类中的公有成员对派生类对象是可见的。 ( )26、抽象类是指一些不能定义对象的类。 ( )27、虚函数是用virtual关键字说明的成员函数。 ( )28、动态联编是在运行时选定所要调用的成员函数的。

( )29、声明派生类时,在派生类的头部都要明确列出其直接基类和间接基类。 ( )30、在C++中对于运算符重载,只能重载已有的运算符。 ( )31、在程序中可以直接调用构造函数。

( )32、解决多继承情况下出现的二义性的方法之一是使用作用域运算符。 ( )33、函数重载是一种多态现象,它属于动态联编。

( )34、友元函数、友元类的声明可以放在类定义中的任何地方。 ( )35、抽象类是一些不能实例化的类,即不能定义对象的类。

1

( )36、const对象不能随意被修改,但const成员函数可以修改const对象。 ( )37、拷贝初始化构造函数的参数只能是对某个对象的引用。

( )38、类的公有静态成员既可以用类的对象访问,也可以用作用域运算符通过类名访问。 ( )39、拷贝初始化构造函数的参数可以是某类的对象名。

( )40、在类体外定义的函数若没有关健字inline说明,则都是外联函数。 ( )41、C++中的所有函数调用都是传引用调用。 ( )42、析构函数说明为虚函数是没有意义的。

( )43、派生类的构造函数的成员初始化列表中,可以包含基类的子对象初始化。 ( )44、构造函数说明为虚函数是没有意义的。

( )45、对每个可重载的运算符来说,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员

函数。

( )46、C++中的所有函数调用都是传值调用。

( )47、使用关键字class定义的类中,缺省的访问权限是公有(public)的。 ( )48、使用关键字class定义的类中,缺省的访问权限是私有(private)的。

( )49、如果一个成员函数只存取类的静态数据成员,则可将该成员函数说明为静态成员函数。 ( )50、说明和定义类的对象时,类名前面不需要加class关键字。 二、填空

1、如果一个函数没有返回值,定义时需用类型说明符______说明。 2、通常的拷贝初始化构造函数的参数是___________。

3、对象成员的表示与结构体成员的表示相同,使用运算符____或____。

4、已知:p是一个指向类A数据成员m的指针,a1是类A的一个对象,如果要给对象a1的数据成员m赋值为5,

应____________赋值。

5、C++中,继承分为单继承和_____,而继承方式可分为_____、______、______。 6、任何类中允许有三种类型的成员,它们分别是______、_______、_______。 7、________能够用来访问当前作用域内与局部变量同名的全局变量。

8、在类内部定义的_____和_____成员不能被不属于该类的成员函数来存取,定义为______的成员则可以在类外部

进行存取。

9、静态数据成员的赋初值是在________进行。

10、C++的函数如果在返回类型、参数类型、参数个数、_______上有所不同,则认为是不同的函数(注:对于同名

函数而言)。

11、如果不能成功地分配所需要的内存时,new返回____。

12、在编译时将所用函数的代码嵌入到主调函数中,这种函数称为________。 13、如果静态成员函数中要引用非静态成员时,可通过_____来引用。 14、当使用delete运算符释放一个对象时,delete会自动调用_______。 15、从一个基类派生的继承为单继承,从多个基类派生的继承为_______。 16、多继承下,可能造成对基类中某个成员访问的________。

17、如果想要使公共基类在派生类中只产生一个基类子对象,则必须将这个基类设为______。

2

18、面向对象程序设计的三大特征是封装性、继承性和________。 19、多态从实现的角度来讲可以划分为两类,编译时的多态和_______。

20、将运算符++重载为类的友元函数时,定义前置++有____个参数,而定义后置++有___个参数。 21、抽象类不能实例化,即不能定义一个抽象类的_______。

22、关键字______、______、______ 和 _______在C++中用来建立新的数据类型。

23、定义在类内部的函数为________,编译器会在调用该函数处,将函数代码的拷贝在调用函数处展开。 24、在类定义时如果没有定义构造函数,编译系统会自动生成一个_______。 25、类的______成员只能被该类的成员函数或友元访问。 26、使关键字class定义的类中缺省的访问权限是________。 27、一个类中只可能定义_____个析构函数。

28、当一个类的成员是另一个类的对象时,该对象称为_______。 29、静态数据成员在定义或说明时前面要加上关键字_______。 30、C++程序必须包含头文件_________后,才能使用输入输出流。 31、在说明const变量时,必须对该变量_______。

32、在需要基类对象的任何地方都可以使用________的对象来代替。 33、带有纯虚函数的类是________。

34、动态联编可以通过_____或引用所标识的对象来操作虚函数。 35、_____限定符用来声明只读变量。 36、公有成员函数的集合称为类的_______。 37、重载不能改变运算符的_________和_______。 38、运算符______动态分配一个对象。

39、_________能够定义一个在不同数据类型基础上完成同一任务的函数。 40、每个对象都维护了一个指向自身的指针,这个指针称为______指针。

41、处于同一层次的各基类构造函数的执行顺序取决于________所指定的各基类的顺序。 42、_______是用来初始化类的数据成员的一种特殊的成员函数。 43、受保护的成员不能被外界引用,但它可以被派生类的________引用。 44、静态联编工作是在________阶段完成的。

45、在C++中,对虚函数来说,不能声明_______,但可以声明虚析构函数 46、______成员函数的实现中不能直接引用类中说明的非静态成员。 47、const char *p说明了p是指向_______的指针。

48、通常,类的成员函数的访问模式是________,数据成员的访问模式是_______。

49、当用受保护的继承从基类派生一个类时,基类的公有成员成为派生类的______成员,基类的受保护成员成为派生类的_______成员。

50、如果一个类包含一个或多个纯虚函数,则该类为________。 三、选择题

1、下列有关类的说法不正确的是________。 ① 类是一种用户自定义的数据类型;

② 只有类中的成员函数或友元函数才能存取类中的私有成员;

3