C++程序设计智慧树知到期末考试答案2024年_第1页
C++程序设计智慧树知到期末考试答案2024年_第2页
C++程序设计智慧树知到期末考试答案2024年_第3页
C++程序设计智慧树知到期末考试答案2024年_第4页
C++程序设计智慧树知到期末考试答案2024年_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

C++程序设计智慧树知到期末考试答案2024年C++程序设计下列关于C++的说法中,不正确的是______

A:类是一种用户自定义的数据类型B:只在类中的成员函数或类的友元函数才能存取类中的私有成员C:在类中,如果不特别说明,所有成员的访问权限均为私有的D:在类中,如果不做特别说明,所有成员的访问权限均为公有的答案:在类中,如果不做特别说明,所有成员的访问权限均为公有的对于复数类Complex中的加法运算符,若以成员函数重载,则重载函数的声明形式是____

A:Complexoperator+(Complexc);B:voidoperator+(Complexc1,Complexc2,Complexc3);C:Complexoperator+();D:Complexoperator+(Complexc1,Complexc2);答案:Complexoperator+(Complexc);面向对象的重要特征,多态性是指___

A:一个对象调用不同名称的函数B:不同类型的对象调用相同名称的函数C:一个对象调用不同名称的对象D:不同的对象调用不同名称的函数答案:不同类型的对象调用相同名称的函数关于变量的作用域的叙述中,不正确的是_____

A:函数中的形式参数是局部变量B:在不同的函数中可以定义相同名字的变量C:在一个函数体同定义的变量只在本函数范围内有效D:在一个函数内的复合语句中定义的变量在本函数范围内有效答案:在一个函数内的复合语句中定义的变量在本函数范围内有效以下基类中的成员函数表示纯虚函数的是___

A:voiddraw();B:virtualvoiddraw();C:virtualvoiddraw(){}D:virtualvoiddraw()=0;答案:virtualvoiddraw()=0;下面关于友元的描述中,错误的是____

A:类与类之间的友元关系可以继承B:友元可以提高程序的运行效率C:友元函数可以访问该类的私有数据成员D:一个类的友元类中的成员函数都是这个类的友元函数答案:类与类之间的友元关系可以继承以下算法中,哪一个能快速的在有序列列中找到一个元素__

A:binarySearchB:for-eachC:findD:locate答案:binarySearch若有一个指针变量dynimicArray,它只能在程序运行以后,才能确定需要分配的内存的大小,则dynimicArray所占的内存在内存的哪个区分配___

A:堆区B:代码区C:静态数据区D:栈区答案:堆区有两个类Point和Complex,依据数学知识,我们知道点x坐标对应着复数的实部real,点的y坐标,对应着点的虚部img,在Complex中实现将复数转换为Point类对象,则转换函数是____

A:operatorPoint(Complexc);B:operatorPoint();C:Point(Complexc);答案:operatorPoint();要将Time对象转换为int类型,则类型转换函数的声明是____

A:Time(int);B:operatorTime(int);C:int(Time);D:operatorint(Time);答案:operatorint(Time);在C++程序中,对象之间的相互通信通过___方式实现

A:继承实现B:调用成员函数实现C:函数重载实现D:封装实现答案:调用成员函数实现有函数声明voidshow(int*arr,intn);有变量,inta,arr[10],*p=arr;对该函数调用正确的是____

A:show(*p,10);B:show(arr,10);C:show(a,arr,10);D:show(a,10);答案:show(arr,10)所谓的数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体类型,这实体也就是____

A:函数体B:类C:数据块D:对象答案:类关于C和C++的关系中,使用C发生了质的变化,即从面向过程变为面向对象的是_____

A:增加了新的运算符B:规定函数有原型C:引进了类和对象,继承与派生D:允许函数重载,并允许缺省参数答案:引进了类和对象,继承与派生C++中,要进行字符串输入输出必须包含的头文件是()

A:fstreamB:iomanipC:iostreamD:sstream答案:sstream假定类A含有两个公有数据成员a,b,构造函数为A(intaa,intbb){a=aa--;b=a*bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为___

A:20和5B:3和15C:4和20D:5和4答案:4和20以下作用域中,类的数据成员的作用域是____

A:类作用域B:全局作用域C:文件作用域D:块作用域答案:类作用域C++中的标准输入流对象是()。

A:cerrB:clogC:cinD:cout答案:cin在C++中,函数原型不能标识______

A:函数的参数的个数B:函数参数类型C:函数的功能D:函数的返回类型答案:函数的功能类Rect是类Shape的子类,Rect中含有两个Point类的对象成员,则以下理解中错误的是___

A:Rect类与Point是继承关系B:Shape类是派生类,Rect类是基类C:Shape类与Rect类具有继承关系,Rect类与Point类具有组合关系D:Shape类与Point是继承关系答案:Shape类与Rect类具有继承关系,Rect类与Point类具有组合关系下面哪一项的叙述不符合赋值兼容规则___

A:基类的对象可以赋值给派生类的对象。B:派生类的对象的地址可以赋值给指向基类的指针C:派生类的对象可以赋值给基类的对象。D:派生类的对象可以初始化基类的对象答案:基类的对象可以赋值给派生类的对象。关于常数据成员的说法,不正确的是____

A:常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出瑞在类体中B:常数据成员必须进行初始化,并且不能被更新C:常数据成员可以在定义时直接初始化D:常数据成员通过构造函数的成员初始化列表进行初始化答案:常数据成员可以在定义时直接初始化不能用于组成C++标识符的是____

A:连接符B:下划线C:大小写字母D:数字字符答案:连接符若有结构体类型,structNumber{

intn;}且有结构体变量Numberp,则以下对结构体成员访问方式正确的是____

A:cout<nC:cout<答案:coutp.nC++泛型编程通过以下哪项能够实现____

A:templateB:typedefC:voidD:NULL答案:template已知表达式a*b中的"*"是作为成员函数重载的运算符,则与a*b等效的运算符函数调用形式为_____

A:a.operator*(b)B:operator*(a)C:operator*(a,b)D:a.operator*()答案:a.operator*(b)当我们不知道程序中哪处存在运行时错误时,以下哪个调试方法能快速找出程序中隐含的错误______

A:在调试器中运行B:在程序中添加断点,在调试器中执行断点调试C:直接运行D:在调试器中单步运行答案:在调试器中单步运行在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是___

A:函数体B:参数类型C:参数个数D:函数名称答案:函数体类型兼容性建立在公有继承之上。

A:对B:错答案:对结构体类型不是构造类型。

A:错B:对答案:错C++中的标识符允许以数字开头。

A:对B:错答案:错运算符重载与函数模板都属于静态联编。

A:对B:错答案:对cin和cout的头文件是iostream()

A:错B:对答案:对面向对象的C++程序,具有四个主要特征,分别是抽象性,封装性,继承性,多态性。

A:对B:错答案:对C++程序设计和Java程序设计一样,是纯面向对象的程序设计。

A:对B:错答案:错若基类是类模板,派生类必定是类模板。

A:错B:对答案:错cin.get()一次只能读入一个字符()

A:错B:对答案:错将一个整数转换为Time类型可使用成员函数Time(intn)实现。

A:对B:错答案:对算法不是C++STL的重要组成部分。

A:错B:对答案:错通过常量迭代器可以改变容器中元素的值。

A:错B:对答案:错类中用const限定的数据成员的值,一旦初始化,其值是不能再被改变的。

A:对B:错答案:对运算符重载只能重载系统中已经存在的运算符,不能臆造一个新的运算符。

A:错B:对答案:对在面向对象的C++程序中,程序主要是由函数构成的。

A:对B:错答案:错友元类和友元成员函数一样。

A:错B:对答案:错C++程序中存在两类错误,逻辑错误和运行时错误。

A:对B:错答案:错内联函数在被调用时,内联函数的代码在调用处被展开,内联函数不返回结果。

A:错B:对答案:对C++程序设计中不包含泛型程序设计思想。

A:错B:对答案:错一个类中若没有复制构造函数,编译器会自动生成一个浅拷贝的复制构造函数。

A:对B:错答案:对以下哪些是STL中用于关系比较的函数对象___

A:lessB:greaterC:logical_notD:plus答案:greater###less运算符重载有两种实现方式,分别是____

A:类的友元函数B:类的常成员函数C:类的静态成员函数D:类的成员函数答案:类的成员函数###类的友元函数在程序运行时,系统为会它分配内存空间,程序的内存空间被分为几个部分____

A:堆区B:代码区C:静态存储区D:栈区答案:静态存储区###堆区###代码区###栈区C++的文件输入输出流中,能够从文件中读数据的方法有()。

A:read方法B:get方法C:getline方法D:write方法答案:get方法###getline方法###read方法C++的标准输出流中,输出设备是屏幕的标准流对象是()。

A:clogB:cinC:cerrD:cout答案:cout###cerr###clog关于C++与C语言的关系描述中,正确的是___

A:C++语言是对C语言进行了一些改进B:C++语言和C语言都是面向对象的C:C语言是C++的一个子集D:C语言与C++语言是兼容的答案:C++语言和C语言都是面向对象的只能以成中函数方式实现的重载运算符有____

A:[]B:()C:D:=答案:[]###()###=C++的标准输出流中,有缓冲区的标准流对象是()。

A:clogB:coutC:cerrD:cin答案:cout###clog###cin下列情况中,会自动调用拷贝构造函数的是____

A:函数的形参是类的对象,调用函数进行形参和实参结合时B:将类的一个对象赋值给该类的另一个对象时C:函数的返回值是类的对象,函数执行返回调用时D:用一个对象去初始化同类的另一个对象时答案:用一个对象去初始化同类的另一个对象时;函数的形参是类的对象,调用函数进行形参和实参结合时;函数的返回值是类的对象,函数执行返回调用时在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其数据成员,对象空间的起始地址就是对象的指针。()

A:错误B:正确答案:错误包含递归调用的函数称为递归函数。()

A:正确B:错误答案:正确类是对象的抽象,而对象是类的具体实例。()

A:正确B:错误答案:正确用数组名做函数实参时,如果改变了形参数组元素的值,将同时改变实参数组元素的值。()

A:错误B:正确答案:错误对基类和派生类的关系描述中,错误的是()。

A:派生类是基类的具体化B:派生类是基类定义的延续C:派生类是基类的特殊化D:基类继承了派生类的属性答案:派生类是基类定义的延续class是声明类时必须使用的关键字,相当于声明结构体类型时必须用struct一样。()

A:错误B:正确答案:正确指针类型的数据作为函数参数时,是将一个变量的地址传送给被调用函数的形参。()

A:对B:错答案:对一个函数就是一个功能。()

A:正确B:错误答案:正确用户可以调用构造函数。()

A:正确B:错误答案:错误赋值运算符“=”的作用是将一个数据赋给一个变量。()

A:错B:对答案:=引用一维数组的元素时,可以一次引用整个数组的全部元素。()

A:正确B:错误答案:错误对象的赋值是对一个已经存在的对象赋值,必须先定义被赋值的对象,才能进行赋值。()

A:错误B:正确答案:错误this指针是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。()

A:错误B:正确答案:正确C++允许重载逻辑运算符和自增自减运算符。()

A:错误B:正确答案:错误if语句中,else总是与它上面最近的、未配对的if配对。()

A:错误B:正确答案:正确关于虚函数的描述中,正确的是()。

A:派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型B:可以将类外的普通函数声明为虚函数C:虚函数是一个非成员函数D:虚函数是一个静态成员函数答案:派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型如果一个数组,其元素均为指针类型数据,该数组称为指针数组。()

A:错误B:正确答案:正确常量的值是不能改变的,C++中的常量包括数值型常量和字符型常量。()

A:错B:对答案:错内置函数是在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。()

A:错误B:正确答案:正确声明了枚举类型后,可以定义枚举类型的变量,可以把一个整数值直接赋给一个枚举型变量。()

A:正确B:错误答案:错C++中对象之间的赋值,可以通过赋值运算符“=”来实现。()

A:错误B:正确答案:正确在函数之外定义的变量是外部变量,称为全局变量。()

A:正确B:错误答案:正确一个整型常量可以用十进制整数,八进制整数,十六进制整数3种方式表示。()

A:错误B:正确答案:正确当一个函数无返回值时,函数的类型应为()。

A:voidB:intC:任意D:char答案:void一个函数由两部分组成:函数首部和函数体。()

A:正确B:错误答案:正确可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。()

A:错误B:正确答案:正确for语句的一般格式中,“表达式一”不能省略。()

A:正确B:错误答案:错用break语句可以提前结束本次循环,继续下面的循环。()

A:正确B:错误答案:错误编译时的多态性可以通过使用什么获得()。

A:虚函数和指针B:虚函数和引用C:虚函数和对象D:重载函数和析构函数答案:虚函数和对象普通构造函数在程序中建立对象时被调用,复制构造函数在用已有对象复制一个新对象时被调用。()

A:错误B:正确答案:错误全局变量全部存放在静态存储期中。()

A:对B:错答案:对程序中的注释部分____

A:不参加编译,也不会出现在目标程序中B:参加编译,但不会出现在目标程序中C:参加编译,并会出现在目标程序中D:不参加编译,但会出现在目标程序中答案:AI参考:正确选项是【C:参加编译,并会出现在目标程序中】。\n\n注释在程序中起到说明的作用,通常不会被编译器编译成目标程序,但会在程序运行时被程序读取并执行。因此,选项C“参加编译,并会出现在目标程序中”是正确的。选项A和D都是错误的,因为注释不会被编译成目标程序;选项B也是错误的,因为注释在程序运行时会被执行,而不是在程序运行前被执行。'要实现动态联编,可以通过什么来调用虚函数()。

A:成员名限定B:派生类名C:对象指针D:对象名答案:AI参考:要实现动态联编,可以通过对象指针来调用虚函数。动态联编是指在运行时根据对象的类型来确定调用哪个函数实现的过程。通过使用对象指针,可以在运行时动态地确定要调用的虚函数,从而实现动态联编。其他选项中,成员名限定、派生类名和对象名都不能实现动态联编。因此,正确答案是C:对象指针。'一个类的友元函数可以访问该类的()。

A:公用成员B:私有成员C:所有成员D:保护成员答案:AI参考:正确选项是【B:私有成员】。\n\n私有成员是类的内部实现细节,只能由该类的成员函数和友元函数访问。因此,一个类的友元函数可以访问该类的私有成员。'C++中的输入输出是通过调用输入输出流库中的流对象cin和cout实现的。()

A:错B:对答案:AI参考:正确答案是B:对。\n\nC++中的输入输出是通过调用输入输出流库中的流对象cin和cout实现的,这是C++标准库中的一部分,用于处理输入输出操作。因此,答案为B,即正确。A选项错误,因为输入输出流库中的流对象不是通过调用分析实现的。'若x是一个布尔类型变量,则x&&!x的值是()。

A:falseB:trueC:与x值相反D:与x值相同答案:AI参考:正确答案是B:true。\n在C语言中,逻辑与运算符“&&”的优先级低于逻辑非运算符“!”,所以x&&!x实际上是先执行x&&操作,再执行!操作。由于x为布尔类型变量,其值为true或false,所以x&&!x的值取决于x的值。当x为true时,x&&!x为true&&false,即false,此时整个表达式的结果为false;当x为false时,x&&!x为false&&true,即true,此时整个表达式的结果为true。因此,选项B为正确答案。选项A、C、D均不符合逻辑运算规则。'下列函数定义错误的是()。

A:Fun(intx=0,inty)B:Fun(intx=100)C:Fun(intx=f())(假定函数f()已经定义)D:Fun(intx,inty=0)答案:AI参考:选项C:Fun(intx=f())(假定函数f()已经定义)这个函数定义是错误的。在C++中,函数参数的默认值不能是另一个表达式。也就是说,你不能在函数的参数列表中给参数赋予一个需要计算的默认值。如果你想给一个参数赋予一个表达式的结果作为默认值,那么这个表达式必须在函数体内部执行。所以选项C是错误的。'下面程序段

intfun(inta=10,intb=100)

{returna+b;}

intmain()

{intx=100;

cout<<fun(x)<<endl;

return0;

}

输出结果是()。

A:10B:100C:200D:110答案:AI参考:输出结果是选项C:200。\n\n程序段中的函数fun是一个具有默认参数的函数,它接受两个整数参数a和b,其中a的默认值为10,b的默认值为100。在main函数中,我们调用了fun函数并将变量x的值传递给它。由于x的值为100,因此a的值为10,b的值为100。所以,fun(x)的返回值为a+b,即10+100=200。因此,程序输出的结果是200。'函数模板template<typenameT>voidFunc(T,T)可具有下列哪种实例化形式()。

A:voidFunc(int,double)B:voidFunc(float,int)C:voidFunc(bool,float)D:voidFunc(char,char)答案:AI参考:正确答案是D:voidFunc(char,char)。\n\n函数模板templatevoidFunc(T,T)可以接受任意类型的两个参数,只要它们是相同的类型即可。因此,选项D中的char和char是相同的类型,所以可以实例化这个函数模板。而选项A、B和C中的参数类型不符合要求,因为int和float不是相同的类型,而bool也不符合要求。'函数调用的现场保护和返回地址存放在动态存储区。()

A:对B:错答案:AI参考:答案:B:错。函数调用的现场保护和返回地址通常存放在CPU的寄存器中,而不是动态存储区。动态存储区主要存放变量和常量。'下面语句,inta=7,b=4,c=6,d;cout<<(d=a>b?(a>c?a:c):(b));输出结果为()。

A:7B:6C:10D:4答案:AI参考:选项C:10\n\n\n由于运算符优先级的问题,语句(d=a>b?(a>c?a:c):(b))表达式的运算顺序如下:\n\n*先进行b=a>b的判断,b不等于0,因此表达式结果为1;\n*再进行(a>c?a:c)的判断,a大于c,因此a的值赋给d;\n*最后进行(b)的判断,由于a和c的值已经被确定,b赋值为6。\n\n因此,最终输出结果为d的值,即6。\n\n需要注意的是,这个语句在某些情况下可能会引起歧义,因为它使用了三目运算符(?:)和赋值运算符(=)。在实际编程中,应该尽量避免使用这种复杂的表达式,以提高代码的可读性和可维护性。'有以下程序结构,

classA//A为基类

{public:

voidf1();

inti;

protected:

voidf2();

温馨提示

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

评论

0/150

提交评论