《南开大学2021年春季学期《面向对象程序设计》在线作业附参考答案.docx》由会员分享,可在线阅读,更多相关《南开大学2021年春季学期《面向对象程序设计》在线作业附参考答案.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南开大学2021年春季学期(1709、1803、1809 19031909、2003、2009、2103)面向对象程序设计在线作业附参考答案适用于(1709、1803、1809、1903、1909、2003、2009、2103)试卷总分:100 得分:100一、单选题(共35道试题,共70分)1.下列关于构造函数说法不正确的是()。A.构造函数必须与类同名B.构造函数可以省略不写C.构造函数必须有返回值D.在构造函数中可以对类中的成员进行初始化答案:C2.若派生类的成员函数不能直接访问基类中继承来的某个 成员,则该成员一定是基类中的(?)。A.私有成员B.公有成员C.保护成员D.保护成员或私有
2、成员答案:A26. C+对C语言做了很多改进,下列描述中()使得C语言发 生了质变,即从面向过程变成面向对象。A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进类和对象的概念答案:D.下面关于类的成员函数描述不正确的是()。A.静态成员函数内可以直接访问类的非静态成员数据B.静态成员函数内可以直接访问类的静态成员数据C.非静态成员函数可以直接访问类的非静态成员数据D.非静态成员函数可以直接访问类的静态成员数据答案:A.关于动态关联的下列叙述中,()是错误的。A.动态关联是以虚函数为基础的B.动态关联调用虚函数操作是指向对象的指针或引用C.动态关联是在
3、运行时确定所调用的函数代码的D.动态关联是在编译时确定操作函数的答案:D.假定MyClass为一个类,则该类的拷贝构造函数的声明语 句为()。A. MyClass(MyClass x)MyClass&(MyClass x)B. MyClass (MyClass &x)MyClass(MyClass *x)答案:C.交换两个string类对象所表示的字符串的内容,应该使 用string类的()函数。A. assigninsertB. swapfind答案:C.关于虚函数,下列表述正确的是()。A.如果在重定义虚函数时使用virtual,则该重定义函数仍 然是虚函数B.虚函数不得声明为静态函数C.
4、虚函数不得声明为另一个类的友元函数D.派生类必须重新定义基类的虚函数32.在类定义的外部,可以被访问的成员有()。A.所有类成员private 或 protected 的类成员B. public的类成员public 或 private 的类成员答案:C33.已知int a=10; int &r=a; r=r+20; couta; 则输出 为()。A. 1020B. 30D.不确定值答案:C34.关于类和对象不正确的说法是()。A.类是一种类型,它封装了数据和操作B.对象是类的实例C. 一个类的对象只有一个一个对象必属于某个类答案:c35.友元关系不能()。A.继承B.是类与类之间是关系C.是一
5、个类的成员函数与另一个类的关系D.提高程序的运行效率答案:A二、判断题(共15道试题,共30分)36 .在C+程序中,有且仅能有一个主函数,且其函数名必须 是 main。答案:正确37 .对象成员的访问与结构变量成员的访问相同,使用运算 符.或-。答案:正确38 . 一个类的构造函数中可以不包含对其子对象的初始化。答案:错误39 .在类体中可以在声明成员变量的同时为其赋初值。40 .类的常量数据成员的值只能在创建对象时初始化,初始 化后不得再修改。答案:正确41 .在成员函数的函数类型前加上const关键字,则该成员函 数就是常量成员函数。答案:错误42 .类的成员函数中可以直接访问对象成员中
6、的私有成员。答案:错误43 .派生类的继承方式中有两种:公有继承和私有继承。答案:错误44 .引用是某个变量的别名。对引用的操作,实质上就是对被 引用的变量的操作。答案:正确45 .私有继承中,对于基类中的所有成员,派生类的成员函 数都不可直接访问。46 .假定要对类AB定义加号操作符重载成员函数,实现两个 AB类对象的加法,并返回相加结果,则该成员函数的声明语 句为:AB operator+ (AB &, AB &);答案:错误.运算符重载的形式有两种:成员函数形式和友元形式。答案:正确.类的静态成员变量只能在静态成员函数中使用。答案:错误.在私有继承中,基类中只有公有成员对派生类是可见的。
7、答案:错误47 .运算符重载是一种特殊的函数重载,其函数名为 operator。答案:正确3.类A是类B的友元,类B是类C的友元,则()是正确的。A.类B是类A的友元B.类C是类A的友元C.类A是类C的友元D.以上都不对答案:D4.下列关于构造函数调用顺序的描述中,正确的是()。A.创建派生类对象时,先调用基类的构造函数,后调用派生 类的构造函数B.创建基类对象时,先调用基类的构造函数,后调用派生类 的构造函数C.创建派生类对象时,先调用派生类的构造函数,后调用基 类的构造函数D.创建基类对象时,先调用派生类的构造函数,后调用基类 的构造函数答案:A更多加微boge306195.派生类的构造函
8、数的成员初始化列表中,不能包含()。A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化 答案:C6 .对于任意一个类,析构函数的个数最多为()。A. 01B. 23答案:B.对于任意一个类,构造函数的个数最少为()。A. 01B. 23答案:B.类 MyClass 的定义如下:class MyClass public: MyClass () value = 0; SetVariable (int i) value = i; private: int value; 则对下列语句序列正确的描 述是()。MyClass *p, my; p=&my;A.
9、语句p=&my;是把对象my赋值给指针变量pB.语句MyClass *p, my;会调用两次类MyClass的构造函数C.对语句*p. SetVariable (5)的调用是正确的D.语句 p-SetVariable (5)与语句 my. SetVariable (5)等价 答案:D7 .下列类中()是输入/输出流类iostream的派生类。A. fstreamofstreamB. ifstreamostream答案:A10.有下面类的说明,有错误的语句是()。class X A. int a=2; B. X() ; public: C. X(int val) ; D.X(); ;A. ABB
10、. CD答案:A11.如果一个类至少有一个纯虚函数,那么就称该类为()。A.抽象类B.派生类C.纯基类D.以上都不对答案:A12.下面说法中正确的是()。A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只要名字前加了 一个求反符号 ()D.构造函数可以指定返回类型,而析构函数不能指定任何返 回类型,即使是void类型也不可以答案:B.下面函数原型声明中,()声明了 fun为纯虚函数。A. void fun () =0;virtual void fun ()=0;B. virtual void fun();v
11、irtual void fun () ;答案:B.类的默认的无参构造函数()。A.在任何情况下都存在B.仅当未定义无参构造函数时存在C.仅当未定义有参构造函数时存在D.仅当未定义任何构造函数时存在答案:D15.撤消对象时,系统自动调用()函数。A.成员函数B.构造函数C.析构函数D.普通函数答案:C16.对静态成员的不正确描述是()。A.静态成员不属于对象,是类的共享成员B.静态数据成员要在类外定义和初始化C.调用静态成员函数时要通过类或对象激活,所以静态成员 函数拥有this指针D.非静态成员函数也可以操作静态数据成员答案:C17.关于对象成员的构造函数的调用顺序,说法正确的是()。A.与它
12、们在成员初始化列表中给出的顺序相同B.与析构函数的调用顺序相同C.与它们在类中说明顺序相同D.以上说法都不对 答案:C18 .下面()的叙述不符合赋值兼容规则。A.派生类的对象可以赋值给基类的对象B.基类的对象可以赋值给派生类的对象C.派生类的对象可以初始化基类的对象D.派生类的对象的地址可以赋值给指向基类的指针 答案:B19 .关于多继承二义性的描述中,错误的是()。A.一个派生类的基类中都有某个同名成员,在派生类中对这 个成员的访问可能出现二义性B.解决二义性的最常用的方法是对成员名的限定法C.基类和派生类同时出现的同名函数,也存在二义性问题D.一个派生类是从两个基类派生出来的,而这两个基
13、类又有 一个共同的基类,对该基类成员进行访问时,可能出现二 义性答案:c.有关析构函数的说法不正确的是()。A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是用来释放一个对象D.析构函数无任何函数类型答案:B.下面说法中正确的是()。A.当声明的内容不同时,声明同一个名字的两个类是允许的B.不完全声明的类也可以实例化C.声明同一个名字的两个类时,要求声明的内容也相同D.声明同一个名字的两个类是错误的答案:D.下列虚基类的声明中,正确的是()。A. class virtual B:public Avirtual class B:public AB. class B: public A virtualclass B: virtual public A答案:D.友元访问类对象的成员时使用()。A.类的成员名“this-成员名”的形式B. “类名:成员名”的形式“对象名.成员名”的形式答案:D24.类对象占用内存的大小与()有关。A.数据成员B.成员函数C.数据成员和成员函数D.私有成员答案:A25.若一个类中含有纯虚函数,则该类称为()。A.基类B.纯基类C.派生类D.抽象类答案:D