c++期末考试判断题+填空题
判断题判断题 1、对空指针不能用 delete 运算符。 (错误) 2、对重载的函数,要求函数类型相同但参数不同。 (错误) 3、任何一个对象只能属于一个具体的类。 (正确) 4、用 new 运算符来创建对象时不会调用构造函数。 (错误) 5、对重载的函数,要求参数不同或函数类型不同。 (错误) 6、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。 (错误) 7、析构函数可以是虚函数。 (正确) 8、无论什么方式的继承,基类的私有成员都不能被派生类访问。 (正确) 9、要达到动态联编的效果,基类和派生类的对应函数不仅名字相同,而且返回类型、参数个 数和类型也必须相同。 (正确) 10、如果派生类没有实现虚函数,那么它将使用他的基类的虚函数。 (正确) 11、构造函数可以是虚函数。 (错误) 12、指向对象数组的指针不一定必须指向数组的首指针。 (正确) 13、对象数组的元素可以是不同类的对象。 (错误) 14、对象数组可以赋初值又可以赋值。 (错误) 15、一个类的构造函数可以不包含对其子对象的初始化。 (错误) 16、在 C++中,既允许单继承,又允许多继承。 (正确) 17、派生类从基类派生出来,它不能生成新的派生类。 (错误) 18、派生类的继承方式只有 2 种:公有继承和私有继承。 (错误) 19、在公有继承中,基类的成员在派生类中都可以直接使用。 (错误) 20、在单继承中,派生类中对基类成员的访问也会出现二义性。 (错误) 21、解决多继承下二义性问题的方法之一是使用作用域运算符。 (正确) 22、作用域运算符(::)只能用来限定成员函数所属的类。 (错误) 注:还限制成员变量所属的类。 23、析构函数是一种函数体为空的成员函数。 (错误) 24、构造函数和析构函数都不能重载。 (错误) 注: 构造函数可以重载, 析构函数不可以重载 (因为析构函数无参数, 不可能进行参数区分) 。 25、说明或定义对象时,类名前面不需要加 class 关键字。 (正确) 26、对象成员的表示与结构变量成员表示相同,使用运算符.或-。 (正确) 27.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们, 任何类以外的函数对它 们的访问都是非法的。 (错误)注:私有成员还可以被友元访问。 28、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 (正确) 29、可以在类的构造函数中对静态数据成员进行初始化。 (错误) 注:静态数据成员属于类而不管是否存在该类的对象,只有创建对象才会调用构造函数,所 以静态成员不应该在构造函数中初始。 30、如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函 数。 (正确)注:一般情况,静态成员函数不能访问类的非静态成员;非静态成员函数可访问 类任何成员。 31、使用关键字 class 定义的类中缺省的访问权限是私有(private)的。 (正确) 32、已知:m 是类 A 的对象,n 是类 A 的公有数据成员,p 是指向类 A 中 n 成员的指针。下述 两种表示是等价的:和 m.*p(正确) 33、指向对象的指针与对象都可以作函数参数,但是使用前者比后者好些。 (正确) 34、对象引用作函数参数比用对象指针更方便些。 (正确)注:不需要间接访问 35、对象数组的元素可以是不同类的对象。 (错误) 36、对象数组既可以赋初值又可以赋值。 (正确) 37、指向对象数组的指针不一定必须指向数组的首元素。 (正确)注:指针可以移动。 38、一维对象指针数组的每个元素应该是某个类的对象的地址值。 (正确) 39、const char* p 说明了 p 是指向字符串的常量指针。 (错误)注:p 是指向字符串常量的 指针-正确。 40、一个类的构造函数中可以不包含对其子对象的初始化。 (正确) 注:形式上可以,但本质会调用缺省构造函数对子对象进行初始化。本题有二义性。 41、转换函数不是成员函数,它是用来进行强制类型转换的。 (错误) 42、指向对象的指针和指向类的成员的指针在表示形式上是不相同的。 (正确) 43、C++语言中,既允许单继承,又允许多继承。 (正确) 44、派生类是从基类派生出来,它不能再生成新的派生类。 (错误) 1. 45、派生类的继承方式有两种:公有继承和私有继承。 (错误)若要实例化一个含有引用 型数据成员的类,那么只能使用构造函数初始化列表来初始化该 数据成员。 对,没有别的办法 10. 构造函数的函数体中,不能使用 return 语句;但在实现该类的自动类型转化函数时,必 须 有 return 语句。 对 1、C++中标识符内的大小写字母是没有区别的。(F) 2、C++是一种以编译方式实现的高级语言。(T) 3、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(F) 4、在私有继承中,基类中所有成员对派生类都是不可见的。(F) 5、返回值类型、参数个数和类型都相同的函数也可以重载。(F) 6、使用关键字 class 定义的类中缺省的访问权限是私有(private)的。(T) 7、类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。 (F)) 8、C++中使用了新的注释符(C++中使用了新的注释符(数组赋初值时,初始值表中的数据项的数目可以 大于或等于数组元素的个数。(F) 33. 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。(F) 34. 宏定义命令是以分号结束的。(F) 35. While 循环语句的循环体至少执行一次。(F) 36. 返回值类型、参数个数和类型都相同的函数也可以重载。(F) 37. 函数形参的作用域是该函数的函数体。(T) 38. 静态类标识符在它的作用域之外是不存在的。(F) 39. 对象成员的表示与结构变量成员表示相同,使用运算符.或-。(T) 40. 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。(T) 41. 对象数组的元素可以是不同类的对象。(T) 42. const char *p 说明了 p 是指向字符串的常量指针。(F) 43、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 (F) 44、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。 (T) 45、当 break 语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直出整个双重循 环。(T) 46、For 循环是只有可以确定的循环次数时才可使用,否则不能用for 循环。(F) 47、返回值类型、参数个数和参数类型都相同的函数也可以重载。(F) 48、通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。(T) 49、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。(F) 50、已知:类 A 中一个成员函数说明如下:void Set(A中,b 的值的*P 的是不相等的。 (F) 54、已知:int a(5),b(10);表达式++a+b++有二义性。 (F) 55、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double 型。 (F) 56、br