C++与面向对象程序设计(山东联盟)智慧树知到答案2024年青岛大学_第1页
C++与面向对象程序设计(山东联盟)智慧树知到答案2024年青岛大学_第2页
C++与面向对象程序设计(山东联盟)智慧树知到答案2024年青岛大学_第3页
C++与面向对象程序设计(山东联盟)智慧树知到答案2024年青岛大学_第4页
C++与面向对象程序设计(山东联盟)智慧树知到答案2024年青岛大学_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++与面向对象程序设计(山东联盟)青岛大学智慧树知到答案2024年绪论单元测试

C++语言能兼容C语言,是C语言的超集。()

A:对B:错

答案:A在面向对象程序设计中,对象的使用与普通变量可以同等看待。()

A:错B:对

答案:AC++代码被最终编译成本地机器码,可以在不同的操作系统上运行。()

A:错B:对

答案:A面向对象是程序设计的一次革命,能够以更贴近真实世界的方法进行实际问题进行模拟。

A:对B:错

答案:A面向对象的三个本质特征是封装、继承和抽象。

A:错B:对

答案:A

第一章测试

C++语言的特点包括:()

A:C++使软件的可重用性、可扩充性、可维护性和可靠性更高。B:C++编写的程序比C更安全,可读性更好,代码结构更为合理。C:C++增加了面向对象和泛型的机制。D:C++保持与C的兼容。

答案:ABCD以下不是C++对C扩充的新特性是:()

A:指针B:泛型程序设计C:面向对象机制D:引用

答案:A面向对象比面向过程更贴近于我们认识世界的本质。()

A:错B:对

答案:B在面向对象程序设计中,对象可以认为是数据+()

A:操作B:类型C:算法

答案:A消息具有的性质包括()。

A:同一个对象可以接收多个消息。B:相同形式的消息可以传递给不同的对象。C:接收对象对消息的响应是必须的。D:接收对象对消息的响应不是必须的。

答案:ABD面向对象的三个本质特征是()。

A:多态B:模板C:继承D:封装

答案:ACD多态性是指不同的对象收到相同的消息时,执行()的操作。

A:不能确定B:不同C:相同

答案:B

第二章测试

C++中使用const定义的常量是有类型的,占用存储空间。()

A:错B:对

答案:B代码constchar*name="Messi";中name是:()

A:常指针B:指向常量的指针C:指向常量的指针D:指针变量

答案:B执行完int*p=newint(10)后,*p的值为:()

A:不能确定B:10C:0D:11

答案:B判断函数重载的依据是:()。

A:函数的参数B:函数的定义C:函数名D:函数的返回类型

答案:A内联函数在第一次被调用之前必须进行完整的定义。()

A:对B:错

答案:A引用的本质就是别名。()

A:错B:对

答案:B对变量声明一个引用,编译系统会给它额外单独分配存储单元。()

A:对B:错

答案:B函数原型为intf(intx=0,floaty=5.3),则以下哪种函数调用是合法的?()。

A:f(1,.2);B:f();C:f(,.5);D:f(1);

答案:ABD在执行inti=5;int&j=i;两句代码之后,&i和&j的值()。

A:不同B:不确定C:相同

答案:C

第三章测试

以下关于静态数据成员初始化,说法正确的是()。

A:对于private静态数成员,需要在类内完成初始化。B:静态数据成员的初始化不是必须的。C:可以通过对象完成静态数据成员的初始化。D:需要在类外单独进行,而且应在定义对象之前完成。

答案:D一个类有多个对象成员,其构造顺序如何决定?()

A:多个对象成员的构造顺序是随机的。B:按字典顺序构造。C:由在类中的声明顺序决定。D:由在构造函数初始化列表中的顺序决定。

答案:C在成员函数中,可以通过return*this返回当前对象。()

A:错B:对

答案:B静态数据成员属于类,而不属于某一个具体对象。()

A:错B:对

答案:B友元类的所有成员函数都是友元函数。()

A:对B:错

答案:A对象成员的构造通只能通过初始化列表来完成。()

A:错B:对

答案:B使用对象或对象引用作函数参数,哪些是正确的?()

A:使用对象作参数,会调用拷贝构造函数。B:使用对象作参数,实质是传值调用。C:使用对象引用作参数,不会调用拷贝构造函数。D:对象引用作函数参数效率更高。

答案:ABCD关于友元关系,以下说法正确的是()。

A:友元关系是双向的B:友元关系具有传递性C:友元关系是单向的D:友元关系不具有传递性

答案:CD关于友元函数,说法正确的是()。

A:友元函数的声明只能放在public部分。B:用friend声明。C:既可以是普通函数,也可以是另一个类的成员函数。D:友元函数的声明可以放在类内的任意位置。

答案:BCD必须定义析构函数的原因是在类中包含以下哪种数据?()

A:数组B:指针成员C:对象成员D:标准类型

答案:B以下哪些情况下会调用拷贝构造函数。()

A:当用类的一个对象去初始化该类的另一个对象时B:当函数的形参是类的对象时C:当用空参数初始化一个对象时D:当函数的返回值是类的对象时

答案:ABD关于拷贝构造函数的说法正确的是()。

A:如果没有定义拷贝构造函数,编译系统会生成一个。B:一个类只能有一个拷贝构造函数。C:拷贝构造函数的名字与类同名。D:拷贝构造函数只能有一个参数。

答案:ABCD以下关于析构函数的说法正确的是()。

A:在构造函数名之前加上波浪线(~),就是析构函数的名字。B:一个类的析构函数只有一个。C:析构函数不返回任何值。D:析构函数的参数表为空。

答案:ABCD以下关于构造函数的说法正确的是()。

A:只要定义了构造函数,编译器就不会生成缺省的构造函数了。B:构造函数使用初始化列表或在函数体中完成数据成员的初始化完全等价。C:缺省的构造函数不会对数据成员赋值。D:构造函数不能重载。

答案:AC一个使用new运算符动态创建的对象,使用delete释放它时,会自动调用析构函数。()

A:对B:错

答案:A由于构造函数没有返回值,它的返回类型必须设置为void。()

A:对B:错

答案:B假设数据成员和成员函数都是公有的,以下用法正确的是()。

A:对象名.成员函数名(实参表)B:对象指针.成员函数名(实参表)C:对象名.数据成员D:(*对象指针).成员函数名(实参表)

答案:ACD关于对象的定义,以下说明正确的是()。

A:可以在声明类的同时,直接定义对象。B:可以使用标准类定义对象。C:可以使用第三方类定义对象。D:可以定义好类之后,使用时再定义对象。

答案:A类的成员函数可以访问以下哪种类型的数据成员()。

A:privateB:缺省C:protectedD:public

答案:ABCD若在类外完成成员函数的定义,则无法声明为内联函数。()

A:对B:错

答案:B哪种类型不可以定义为类中的数据成员?()

A:其他类的对象B:指针类型C:本类对象D:标准类型

答案:C既可被类内的成员函数访问,也可被类外的对象访问的是()成员。

A:protectedB:publicC:privateD:缺省

答案:B

第四章测试

保护成员使用私有派生方式在派生类中的访问属性是()。

A:不可访问B:publicC:privateD:protected

答案:C私有成员经由保护派生在派生类中的访问属性是()。

A:protectedB:publicC:不可访问D:private

答案:C派生类构造函数的构造顺序是()。

A:基类与派生类同时构造。B:不确定。C:先派生类,后基类。D:先基类,后派生类。

答案:D在执行派生类的析构函数时,系统会自动调用基类的析构函数。()

A:错B:对

答案:B派生类中数据成员不能和基类中的数据成员同名。()

A:对B:错

答案:B多继承的声明中每个基类的派生方式均由第一个基类的派生方式统一规定。()

A:错B:对

答案:A可以将一个声明为指向派生类对象的指针指向其基类的对象。()

A:错B:对

答案:A构造一个派生类的工作包括()。

A:从基类接收成员B:改变基类成员在派生类中的访问属性C:在派生类中增加新的成员D:对基类的成员进行重定义

答案:ABCD以下关于派生类中的访问声明的说法,哪些是正确的?()

A:访问声明可以改变派生类中继承成员的访问属性。B:数据成员也可以使用访问声明。C:访问声明中变量名不能带类型。D:访问声明中的函数名不能带参数。

答案:ABCD在多继承中,解决二义性问题办法有()。

A:使用::指明基类B:使用虚函数C:使用虚基类D:使用公共继承

答案:AC关于虚基类,以下说法正确的是()。

A:若同一层次中同时包含虚基类和非虚基类,先调用虚基类的构造函数。B:若将公共基类说明为虚基类,对同一个虚基类的构造函数只调用一次。C:对同一个虚基类的构造函数只调用一次,且是在第一次出现时调用。D:从不同的路径继承的虚基类的成员在内存中只有一个拷贝。

答案:ABCD基类和派生类对象之间的赋值兼容规则的使用方法包括()。

A:可以用派生类对象初始化基类对象的引用。B:派生类对象可以赋给指向基类对象的指针。C:派生类对象的地址可以赋给指向基类对象的指针。D:可以用派生类对象给基类对象赋值。

答案:ACD如果函数的形参是基类对象的引用,则函数调用时可以传递给该函数的参数为()。

A:基类对象B:派生类对象C:基类对象地址D:派生类对象地址

答案:AB

第五章测试

要实现动态多态需要()。

A:虚函数B:保护继承C:公共继承D:基类指针或引用

答案:ACD只有在派生类中重新定义虚函数,才能实现动态多态。()

A:错B:对

答案:B以下关于虚函数的说法正确的是()。

A:虚函数可以是类的静态成员函数。B:在多个继承层次中,每一层派生类中定义虚函数时都必须加上关键字virtual。C:一个虚函数无论被公有继承多少次,都会保持其虚函数的特性。D:虚函数可以是友元函数。

答案:C声明纯虚函数的正确写法是()。

A:virtual函数类型函数名(参数表);B:inline函数类型函数名(参数表);C:inline函数类型函数名(参数表)=0;D:virtual函数类型函数名(参数表)=0;

答案:D关于纯虚函数的说法正确的是()。

A:纯虚函数可以包含函数体。B:纯虚函数不具备函数的功能,不能被调用。C:纯虚函数的实现为空。D:纯虚函数没有函数体,不需要实现。

答案:BD可以直接创建抽象类的对象。()

A:对B:错

答案:B

第六章测试

运算符的重载是为了支持对象之间、对象与标准类型之间的运算。()

A:错B:对

答案:B以下不能进行重载的运算符是()。

A:+-B:-C:++D:+

答案:A重载运算符的方式有()。

A:虚函数B:成员函数C:内联函数D:友元函数

答案:BD使用友元运算符函数定义时,若双目友元运算符函数operator@所需的两个操作数为a和b,则该运算符的调用方式可以是()。

A:(a,b)@B:a@bC:operator@(a,b);D:@(a,b)

答案:BC对++运算符的重载,可以有前缀或后缀形式,其区分的依据是()

A:函数参数的类型B:是友元函数重载还是成员函数重载C:对象本身D:函数参数的个数

答案:D对象obj使用operator--(obj,2)调用--操作,则该--操作为()。

A:取决于obj本身B:前缀方式C:不确定D:后缀方式

答案:D运算符重载函数operator@不能返回void类型。()

A:错B:对

答案:A对双目运算符,成员运算符函数的参数表中的参数为该运算符的左操作数。()

A:错B:对

答案:A以下关于运算符重载的说明,哪些是正确的?()

A:只能对已有的C++运算符进行重载,不允许用户自己定义新的运算符。B:在重载运算符时,运算符函数所作的操作必须保持C++中该运算符原有的含义。C:重载不能改变运算符原有的优先级。D:重载不能改变运算符操作数的个数。

答案:ACD

第七章测试

模板的使用包括函数模板和类模板。()

A:错B:对

答案:B与函数模板不同的是,类模板在实例化时必须显式地指明具体的数据类型,而不能由编译器推导。()

A:对B:错

答案:A类模板是一个通用类,其中可以用虚拟类型来说明的包括()。

A:类的数据成员B:成员函数中声明的局部数据C:成员函数的返回类型D:成员函数的参数类型

答案:ABCD当函数模板与同名的非模板函数重载时,函数调用匹配的第一顺序是()。

A:参数完全匹配的普通函数B:通过类型转换能够产生参数匹配的普通函数C:产生编译错误D:类型匹配的模板函数

答案:A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论