面向对象程序设计智慧树知到期末考试答案章节答案2024年青岛理工大学_第1页
面向对象程序设计智慧树知到期末考试答案章节答案2024年青岛理工大学_第2页
面向对象程序设计智慧树知到期末考试答案章节答案2024年青岛理工大学_第3页
面向对象程序设计智慧树知到期末考试答案章节答案2024年青岛理工大学_第4页
面向对象程序设计智慧树知到期末考试答案章节答案2024年青岛理工大学_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计智慧树知到期末考试答案+章节答案2024年青岛理工大学异常也适用类的层次结构,与虚函数的规则相同。

答案:错如果派生类中没有给出纯虚函数的具体实现,这个派生类仍然是一个抽象类。(

答案:对实现动态多态的条件之一是继承关系中必须有同名的虚函数,并且它们是覆盖关系(即函数原型相同)(

答案:对函数形参的作用城是该函数的函数体。()

答案:对friend关键字表示(

)。

答案:友元cout是(

)的一个对象,处理标准输出。

答案:osteam按照标识符的要求,(

)符号不能组成标识符。

答案:连接符下列关于C++程序书写,正确的说法是(

)。

答案:一个语句可分成几行书写下列说法错误的是(

)。

答案:公有继承的基类中的private成员在派生类中仍是private的表达式(int)2.1416的值为(

)。

答案:2设intx;,则经过(

)后,语句*px=0;可将x值置为0。

答案:int*constpx=&x;假定变量m定义为“intm=7;”,则定义变量p的正确语句为(

)。

答案:int*p=&m;下面有关静态成员的描述中,正确的是(

答案:在建立对象前,就可以为静态数据成员赋值可用作C++语言用户标识符的一组标识符是(

)。

答案:a3_b3

_123

YNC++和C一样都是面向对象程序设计语言。

答案:错运算符重载实际就是函数重载,是通过静态联编实现的,是在编译时根据操作数的类型,决定该运算符的具体含义,即确定具体调用的哪个函数。(

答案:对运算符重载后,不论使用成员函数重载还是使用友元函数重载,运算符函数的名字都必须由关键字operator加上被重载的运算符构成。(

答案:对与数据成员一样,不同对象的成员函数分配不同的空间。

答案:错使用内联函数不会增大空间开销。

答案:错在有多个函数和函数模板名字相同的情况下,编译器会先找参数完全匹配的普通函数(非由模板实例化而得的函数),再找参数完全匹配的模板函数,再找实参经过自动类型转换后能够匹配的普通函数,上面的都找不到,则报错。(

答案:对如果一个类模板包含一个模板友元,类模板可以授权给所有友元模板实例,也可以只授权给特定实例。(

答案:对如果一个函数没有返回值,定义时需用void说明。()

答案:对下列对派生类的描述中,(

)是错误的。

答案:派生类中继承的基类成员的访问权限到派生类保持不变下列for循环的次数为(

)。for(inti(0),x=0;!x&&i<=5;i++)

答案:6阅读下面类模板的定义:templateclassPerson{public:

Person(Tname,intage):m_name(name),m_age(age){}private:

Tm_name;

intm_age;};templateclassDeriveClass:publicPerson{public:

DeriveClass(Tname,intage,T2sex):Person(name,age){

m_sex=sex;

}private:

T2m_sex;};s,age和sex分别是string、int和char类型的参数,则下面定义对象的语句正确的是(

)。

答案:DeriveClassd(s,age,sex);有以下语句structS{

intg;

charh;}T;则下面叙述中不正确的是(

)。

答案:S是struct类型的变量阅读下面的程序,选出程序运行的结果,体会类模板的静态成员函数和静态数据成员的用法。(

)#includeusingnamespacestd;templateclassClassX{public:

staticintcount;ClassX(){count++;}

staticintGetCount()

{

returncount;

}};templateintClassX::count=0;intmain(){

ClassX

class1;

ClassX

class2;

class1.count=10;

cout<<class2.GetCount()<

class3;

ClassX

class4;

cout<<class3.GetCount()<答案:10

2

2以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是(

)。

答案:x/y*z下面表述错误的是(

)。

答案:this指针是字符指针当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为(

)。

答案:ifstreamfin(“A:xxk.dat”,ios::nocreate)采用重载函数的目的是(

)。

答案:使用方便,提高可读性下列输出字符“A”的方法中,()是错误的。

答案:cout<假定一个类的构造函数为B(intx,inty){a=x--;b=a*y--;},则执行Bx(3,5);语句后,x.a和x.b的值分别为(

答案:3和15假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是(

答案:classderived:privatestudent{

//………….}假定AB为一个类,则(

)为该类的拷贝构造函数的原型说明。

答案:AB(AB&x);下列(

)是C++语言的有效标识符?

答案:_No1(

)不是面向对象系统所包含的要素。

答案:重载存储以下数据,占用存储字节最多的是(

)。

答案:0.0下列各运算符中,(

)优先级最高。

答案:*(单目)表示“x大于1而小于10”的逻辑表达式是(

)。

答案:x>1&&x<10设置虚基类的目的是(

)。

答案:消除二义性用关键字(

)标记的函数被称为虚函数。

答案:virtual所谓多态性是指(

)。

答案:不同的对象调用相同名称的函数下列关于类概念的描述中,(

)是错误的。

答案:类就是C语言中的结构类型下列关于纯虚函数和抽象类的描述中,不正确的是(

)。

答案:可以定义一个抽象类的对象在C++的STL中容器是一种(

)。

答案:标准类模板下列(

)的调用方式是引用调用。

答案:形参是引用,实参是变量下列变量名中,(

)是合法的。

答案:CHINA设有以下类的定义:#includeclassA{protected:inta;public:

A(inti=0){a=i;}};classB:publicA{intb;Public:B(inti=0,intj=0):A(j){b=i;}};则下列语句中错误的是(

)。

答案:Aa1(8);Ba2=a1;对赋值运算符进行重载时,应声明为(

)。

答案:类的成员函数C++语言属(

)。

答案:面向对象语言C++是面向对象程序设计语言。

答案:对C++仅仅是C语言的高版本而已。

答案:错在一个类中,若将一个数据成员说明为static,这种成员称为静态数据成员。与一般的数据成员不同,无论建立了多少个对象,都只有一个静态数据的拷贝。(

答案:对流提取运算符“<<”的重载函数的返回值类型应是ostream对象的引用。(

答案:对在C++中,new操作符可以用来动态的创建对象和对象数组?

答案:对静志生存期的标识符的寿命是短的,而动态生有期的标识符的寿命是长的。()

答案:错如果一个类模板包含一个非模板友元,则友元被授权可以访问该类模板所有的模板实例。(

答案:对如果类的数据成员没有动态申请的数据空间,编程者可以不定义拷贝构造函数。

答案:对通常缺省的赋值运算符重载函数是能够胜任工作的。但是,如果类的数据成员中包含指向动态分配的内存的指针成员时,系统提供的默认赋值运算符重载函数会出现危险,造成指针悬挂。(

答案:对若在创建一个对象时需动态申请存储空间,则应定义(

)以实现“深”拷贝。

答案:拷贝构造函数以下程序的运行结果是()。#includeusingnamespacestd;voidf(intx,inty){intt;if(xintmain(){inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);cout答案:4,3,5对类的构造函数和析构函数描述正确的是()。

答案:构造函数可以重载,析构函数不能重载有以下程序:#include

using

namespace

std;int

main(

){

int

i,s=0;

for(i=1;i<10;i+=2)

s+=i;cout<答案:自然数1~9中的奇数之和下面不正确的字符串常量是(

)。

答案:’abc’C++语言程序的执行,总是起始于(

)。

答案:main函数下列的模板说明中,正确的是(

)。

答案:template<classT1,classT2>在inta=3;*p=&a;中,*p的值是(

)。

答案:3下列关于read(

)函数的描述中,(

)是对的。

答案:该函数只能按照规定读取所指定的字符串;C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream.h提供了基本结构。I/O操作分别由两个类istream和(

)。

答案:ostreamC++程序从上机到得到结果的几个操作步骤依次是(

)。

答案:编辑、编译、连接、运行在C++STL中算法是一种(

)。

答案:函数模板关于封装,下列说法中不正确的是(

)。

答案:通过封装,对象的属性都是不可见的为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(

)。

答案:内联函数C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream.h提供了基本结构。I/O操作分别由两个类istream和(

)。

答案:ostream以下说法中正确的是(

)。

答案:C++程序总是从main函数开始执行在C++中,要实现动态联编,必须使用(

)调用虚函数。

答案:基类指针或基类引用下列定义中,(

)是定义指向数组的指针p。

答案:int*p[5]关于对象和类的关系,说法正确的是(

)。

答案:同一类的不同对象,其具有的操作可不同,具体的操作也不同。能作为C++程序的基本单位是(

)。

答案:函数以下代码运行结果是(

)。#includeusingnamespacestd;classB{};classD:publicB{};

intmain()

{

Dderived;

try

{throwderived;}

catch(Bb)

{cout<<'Catchabaseclass';}

catch(Dd){cout<<'CatchaDerivedclass';}

return0;}

答案:Catchabaseclass在函数说明时,下列哪一项是不必要的?(

答案:参数名字类模板参数可以有缺省实参,给参数提供缺省实参的顺序是从左向右。(

答案:错构造函数和析构函数不可以被继承。

答案:对int*buffer=newint[256]是分配256个字节。

答案:错当需要实例化类模板时,必须为非类型参数显式提供一个编译时常数值。(

答案:对deque容器是顺序容器的一种,容器中的元素在内存中连续顺序存放,可以随机存取任何元素,而且在头尾插入和删除都能在常数时间内完成。(

答案:对对于任意类ClassX,如果没有用户自定义的赋值运算符,那么系统会自动的为其生成缺省的赋值运算符重载函数,实现类ClassX的两个对象的赋值,即将一个对象的数据成员的值逐个赋值给另一个对象的对应数据成员。(

答案:对一个对象在创建时一定会自动调用构造函数。

答案:对list容器是一个双向链表,容器中每个元素中都有一个指针指向后继元素,也有一个指针指向前驱元素(

答案:对假定AB为一个类,则执行“ABa(2),b[3],*p[4];”语句时调用该类构造函数的次数为()。

答案:4设voidf1(int*m,long&n);inta;longb;则以下调用合法的是(

)。

答案:f1(&a,b);在C++中,char类型数据在内存的存储形式是(

)。

答案:ASCII码重载运算符的实质是函数调用,如果classA类将前置单目运算符“++”重载为其友元函数,c是classA类的对象,则执行c++,则相当于执行了哪个函数(

)。

答案:operator++(c,0);下列关于对象概念的描述中,(

)是错误的。

答案:对象是一个状态和操作(或方法)的封装体(

)能正确输出结果:C++。

答案:chars[]='C++';cout<假设有函数模板定义如下:templateAdd(Ta,Tb,T&c)

{

c=a+b;

}

下列选项正确的是(

)。

答案:doublex,y,z;

Add(x,y,z);在下列double型常量表示中,(

)是错误的。

答案:E15;在C++中,关于下列设置参数默认值的描述中,正确的是()。

答案:设置参数默认值时,应该全部参数都设置下列符号中,可以作为变量名的是(

)。

答案:a3BC++源程序扩展名是()。

答案:.cpp在类模板定义的外面定义一个成员函数模板时,需要在前面加上template及模板参数表。(

答案:对赋值运算符只能作为成员函数进行重载,而不能作为友元函数重载。(

答案:对在面向对象程序设计里,由文件获得数据称作“由文件重构对象”。

答案:对多态是通过绑定实现的。一个源程序需要经过编译、连接才能形成可执行的文件,在这个过程中要把函数名(标识符)和它要调用的函数的内存地址连接在一起,这个过程被称为绑定又叫做联编。(

答案:对new分配的内存都有类型信息。

答案:对以下关于私有和保护成员的叙述中,不正确的是(

)。

答案:私有成员不能被外界引用,保护成员可以定义char*p=”abcd”,能输出p的值的语句为(

)。

答案:cout<下面有关构造函数的描述中,正确的是(

)。

答案:构造函数的名字与类名完全相同使用虚函数保证了在通过一个基类类型的指针(含引用)调用一个虚函数时,C++系统对该调用进行(

)。

答案:动态联编结构化程序设计所规定的三种基本控制结构是(

)。

答案:顺序、选择、循环构造函数是在(

)时被执行的。

答案:创建对象C++类体系中,不能被派生类继承的有(

)。

答案:构造函数以下关于函数模板叙述正确的是(

)。

答案:通过使用不同的类型参数,函数模板可以生成不同类型的函数从程序片断:charname[]="C++";course(name);可判断函数course的调用采用的是(

答案:传址调用下列语句中,new运算符用法错误的是(

)。

答案:string*ps=newstring(10);关于结构化程序设计方法说法错误的是(

)。

答案:数据和处理数据的过程代码是分离的、相互独立的实体。假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为(

)。

答案:n+1下面的标识符中,(

)是文件级作用域。

答案:外部静态类标识符C++程序从上机到得到结果的几个操作步骤依次是(

)。

答案:编辑、编译、连接、运行派生类还可以作基类派生出新的派生类。

答案:对抽象类只能作为其他类的基类,不允许声明抽象类的对象,也不可以声明抽象类的指针或引用。(

答案:错内部静态类变量与自动类变量作用城相同,但是生存期不同。()

答案:对异常处理中,如果没有匹配所抛出的对象类型的catch语句块,这时系统调用默认abort函数终止程序。

答案:对当在try块中抛出异常后,程序最后将回到try块。

答案:错阅读下面的程序,体会类模板的友元的概念,选出程序运行的结果(

)。#include#includeusingnamespacestd;templateclassclassA{public:

classA(Tx=10,Ty=10):x(x),y(y){}

template

friendclassclassB;private:

Tx;

Ty;};templateclassclassB{public:

classB(Qsum):sum(sum){}

voidcalcSum(constclassA“&my)

{

sum+=my.x+my.y;

}

template

friendostream&operator<<(ostream&out,classB&run);private:

Qsum;};templateostream&operator<<(ostream&out,classB&run){

cout<my1;

classAmy2;

classBrun1(0);

run1.calcSum(my1);

run1.calcSum(my2);

cout<答案:40”下列字符列中,可作为C++语言程序自定义标识符是(

)。

答案:file在ios类中有3个成员函数可以对状态标志进行操作,(

)函数是用来设置状态标志的函数。

答案:longios::flags()设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(

)。

答案:*p=5;C++程序中的语句必须以(

)结束。

答案:分号values是list<double>类的容器,下面哪个操作是不合法的?(

答案:cout<<values[i];使用派生类的主要原因是(

答案:提高代码的可重用性设有基类定义:classbase{

private:inta;

protected:intb;

public:intc;};派生类采用何种继承方式可以使成员变量c能被派生类的对象访问(

)。

答案:公有继承在C++语言中,函数值类型的定义可以是默认类型,此时函数值的默认类型是(

)。

答案:int下述关于break语句的描述中,(

)是正确的。

答案:break语句可用于if体内,它将退出if语句。程序中主函数的名字为(

)。

答案:main下面的哪个保留字不能作为函数的返回类型?(

)。

答案:new下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(

)合适。

答案:内联函数关于成员函数特征的下列描述中,(

)是错误的。

答案:成员函数一定是内联函数;下面对静态数据成员的描述中,正确的是(

答案:静态数据成员是类的所有对象共享的数据文件的打开方式分为创建文件流对象模式和使用open函数模式。

答案:对内联函数中不可以包括复杂语句,如switch及循环语句等。

答案:对返回值类型、参数个数和类型都相同的函数也可以重载。()

答案:错虚函数表是在程序运行阶段建立的。(

答案:错构造函数可以重载是构造函数的特征。

答案:对list容器的最大优点就是插入或删除列表中元素时无需移动其他元素的存储位置,时间效率高。(

答案:对<模板参数表>中包含一个或多个用逗号分开的模板参数项,每一项由关键字typename或class开始。(

答案:对下标操作符[]通常用于访问数组元素。重载该运算符用于增强操作C++数组的功能。(

答案:对下标运算符“[]”不能被重载为类的友元函数,只能被重载为类的成员函数。(

答案:对下面的程序输出结果是什么?#includeusingnamespacestd;intmain(){staticinta[]={1,2.4};for(inti=0;i<(sizeof(a)/sizeof(int));i++)cout<答案:12假设OneClass为一个类,则该类的拷贝构造函数的声明语句为(

)。

答案:OneClass(OneClass&p);按解释中的要求在下列程序划线处填入的正确语句是:(

)#includeclassBase{public:voidfun(){cout<<'Base::fun'<答案:Base::fun();有以下程序#include

usingnamespacestd;intmain(){int

a,b,d=25;a=d/10%9;b=a-1;cout<答案:2,1有以下程序#includeusingnamespacestd;intmain(){charstr[]='ChinaBeijing',*p=str;cout<答案:ng能正确表示逻辑关系“a≥=10或a≤0”的C语言表达式是(

)。

答案:a>=10‖a<=0有以下程序#includeusingnamespacestd;intmain(){

char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout<答案:abbd数字字符0的ASCII值为48,若有以下程序#includeusingnamespacestd;intmain(){

char

a='1',b='2';cout<答案:2

2设有如下程序:#includeclassA{

public:

inti;

display(){cout<<”classA”;}};classB{public:

inti;

display(){cout<<”classB”;}};classC:public:A,publicB{

intj;public:

inti;show(){j=i*i;display();}};voidmain(){

Cdemo;demo.show();}主程序运行时将(

)。

答案:因类定义的语法错而不能运行在派生类中,重定义一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(

)。

答案:全部相同在C++中继承方式有几种(

答案:3若一个类中含有纯虚函数,则该类称为(

)。

答案:抽象类在程序代码:A::A(inta,int*b){this->x=a;this->y=b;}中,this的类型是(

)。

答案:A*一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是(

)。

答案:可行性假定AB为一个类,则执行ABx;语句时将自动调用该类的(

答案:无参构造函数下列哪项(

)不是面向对象程序设计的主要特征?

答案:结构运算符+、<=、=、%中,优先级最低的运算符是(

)。

答案:=在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(

)。

答案:全部相同不能作为函数重载判断的依据的是(

答案:返回类型cin是(

)的一个对象,处理标准输入。

答案:isteamC++与C语言相比(

)。

答案:更灵活更先进在声明类时,下面的说法正确的是(

)。

答案:private,public,protected可以按任意顺序出现下列存储类标识符中,(

)的可见性与存在性不一值。

答案:内部静态类;假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是(

)。

答案:1.0/a/b/c程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(

)符号作为分隔符。

答案:空格或回车下列关于虚函数的说明中,正确的是(

)。

答案:虚函数不得是静态成员函数。以下4个选项中,不能看作一条语句的是()。

答案:a=0,b=0,c=0;关于静态成员的描述中,(

)是错误的。

答案:静态数据成员定义后必须在类体内进行初始化。关于getline()函数的下列描述中,(

)是错误的。

答案:该函数中所使用的终止符只能是换行符;若有语句“inta[10],x,*p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(

)。

答案:x=p[3];关于delete和delete[]

下列描述中,(

)是错误的。

答案:对一个指针可以使用多次delete运算符;下列各运算符中,(

)优先级最低。

答案:?:下面有关友元函数的描述中,正确的说法是(

答案:友元函数是独立于当前类的外部函数下列有关重载函数的说法中正确的是()。

答案:重载函数必须有不同的形参列表在一个被调用函数中,关于return语句使用的描述,(

)是错误的。

答案:被调用函数中,一个return语句可返回多个值给调用函数。复合语句应用(

)括起来。

答案:大括号用已有对象初始化新建对象时须调用(

)。

答案:拷贝构造函数若要用派生类的对象访问基类的保护成员,以下观点正确的是(

)。

答案:可采用公有继承使用派生类的主要原因是(

)。

答案:提高代码的可重用性预处理命令在程序中都是以(

)符号开头的。

答案:下列关于C++函数的说明中正确的是(

)。

答案:编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式。派生类的构造函数的成员初始化列中,不能包含(

)。

答案:基类的子对象初始化;下列各种函数中,(

)不是类的成员函数。

答案:友元函数deletep表示释放p所占用的空间。

答案:错类模板可以派生类模板,这时,派生类模板的参数表中应包含基类模板的参数。(

答案:对标准模板库STL是C++标准支持的类模板和函数模板的集合,通过提供模板机制和包含通用算法,支持泛型程序设计,极大的提高了代码的可重用性,提高了程序开发的效率。(

答案:对顺序容器中的元素在容器中的位置同元素的值无关,也就是说容器中的元素不是排序的。(

答案:对程序的错误可以分为逻辑错误和语法错误。

答案:错重载函数在编译时表现出多态性,就是静态联编;而虚函数则在运行时表现出多态性是动态联编(

答案:对从流中取得数据称为提取操作,用符号<答案:错在一个成员初始化列表中同时出现对虚基类和非虚基类构造函数的调用时,虚基类的构造函数在非虚基类的构造函数之后执行。

答案:错在设置了参数的默认值后,调用函数的对应实参就必须省略。(

)

答案:错使用内联函数是以牺牲增大空间开销为代价的。()

答案:对有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b;b=p[5];b中的值是(

)。

答案:6以下有关类与结构体的叙述不正确的是(

)。

答案:用struct不能声明一个类型名;而class可以声明一个类名类MyA的拷贝构造函数的原型是(

答案:MyA(MyA&)若有以下定义,则说法错误的是(

)。inta=100,*p=&a;

答案:变量p的值为100假设所有变量均为整型,则表达式(a=5,b=2,a++,a+b)的值是(

答案:8x=y=z=1;t=++x||++y&&++z;

答案:1类的析构函数的作用是(

)。

答案:删除对象设整型变量a值为9,则下列表达式中使b的值不为4的表达式(

)。

答案:b=a%2以下程序的输出结果是(

)。voidswap1(constintc[]){

intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){

intt;t=c0;c0=c1;c1=t;}intmain(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);cout<答案:编译错误假设有模板定义如下:templateTMin(Tm1,Tm2){return(m1}下面哪个模板的不是上面模板的重载?()

答案:templatefloatMin(Tm1,Tm2){return(m1}设有以下类的定义:#includeclassA{protected:inta;public:

A(inti=0){a=i;}

intGeta(){returna;}};classB:publicA{Aa1;Public:

//B类构造函数的定义voidShow()

{cout<答案:B(inti=0,intj=0):A(i),A(j){}类MyClass的定义如下:classMyClass{intvalue;public:MyClass(){value=0;}SetVariable(inti){value=i;}};则对下列语句序列正确的描述是()。MyClass*p,my;p=&my;

答案:语句p->SetVariable(5);与语句my.SetVariable(5);等价以下叙述中不正确的是(

)。

答案:一个类中可以有多个构造函数、多个析构函数有如下程序:执行后的输出结果应该是:(

)#includeclassA{public:A(){cout<<'A';}};classC:publicA{public:C(){cout<<'C';}};voidmain(){Ccobj;}

答案:AC以下程序代码的执行结果是(

)。intmain()

{

inti;

for(i='A';i<'I';i++,i++)

cout<答案:aceg拷贝构造函数具有的下列特点中,(

)是错误的。

答案:拷贝构造函数的名字不能用类名下列程序的输出结果是(

)。#includeusingnamespacestd;intmain(){inti=1;cout<<++i<<i++<<i<<i++<<++i<<endl;return0;}

答案:23345以下程序的运行结果是(

)。#include"iostream"usingnamespacestd;intfunc(inta,intb){return(a+b);}intmain(){intx=2,y=5,z=7,r;r=func(func(x,y),z);cout<答案:14设有intx=11,则表达式(x++*1/3)的值是(

)。

答案:3下面(

)项是对构造函数和析构函数的正确定义。

答案:X::X(参数),

X::~X()重载运算符的实质是函数调用,如果在类classA上将运算符“+”重载为其成员函数,c1和c2是classA类的对象,那么执行c1+c2,则相当于执行了哪个函数(

)。

答案:c1.operator+(c2);要求打开文件D:\file.dat,并能够写入数据,正确的语句是(

)。

答案:fstreaminfile("D\file.dat",ios::in|ios::out);关于对象概念的描述中,(

)是错误的。

答案:对象就是C语言中的结构变量;要进行文件的输出,除了包含头文件iostream外,还要包含头文件(

)。

答案:fstreamios类中有些成员函数可以对状态标志进行操作,(

)函数是用来将参数指定的标志位设为1。

答案:longios::setf(longflags)若定义cin>>str;当输入ObjectWindowsProgramming!,所得的结果是(

答案:str=Object派生类不能访问基类中的哪些成员?(

答案:公有继承的私有成员;如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(

)。

答案:a.operator++()实现运行时的多态性用(

)。

答案:虚函数通常,拷贝构造函数的参数是(

答案:某个对象的引用名下列(

)是正确的语句。

答案:;以下叙述中错误的是(

)。

答案:用户所定义的标识符允许使用关键字(

)不是构造函数的特征。

答案:构造函数必须指定类型说明。关于类的静态成员函数描述错误的是(

)。

答案:在创建对象前不存在最初的计算机编程语言是(

答案:机器语言在私有继承的情况下,基类的公有成员在派生类对象中的访问权限(

)。

答案:受限制从一个文件中读一个字节存于charc;正确的语句为(

)。

答案:file.read((char*)&c,sizeof(c));下列属于动态多态的是(

)。

答案:虚函数;关于保护继承的说法正确的是(

)。

答案:基类的公有成员、保护成员可被子类继承下来,而且性质都改变为保护成员,私有成员不被继承。建立类模板对象的实例化过程为(

)。

答案:类模板—模板类—对象关于getline()函数的下列描述中,(

)是错误的。

答案:该函数中所使用的终止符只能是换行符。如果类A被说明成类B的友元,则(

)。

答案:类B不一定是类A的友元。下列有关重载函数的说法中正确的是(

)。

答案:重载函数必须有不同的形参列表下列给字符数组进行初始化中,(

)是正确的。

答案:chars1[]='12345abcd';一个类可包含析构函数的个数是(

)。

答案:1个下列关于析构函数描述正确的是(

)。

答案:不能指定返回类型在C++中,关于下列设置默认参数的描述中,(

)是正确的。

答案:设置参数默认值时,应该是先设置右边的再设置左边的。关于内联函数说法错误的是(

)。

答案:递归函数可以被用来作为内联函数。下列有关类的说法不正确的是(

)。

答案:一个类只能有一个对象以下语句或语句组中,能正确进行字符串赋值的是(

)。

答案:char*sp='right!';以下选项中,(

)是不正确的字符常量。

答案:'a'values是deque<double>类的容器,下面哪个操作是不合法的?(

答案:values.push_back('a');在哪种派生方式中,派生类可以访问基类中的protected成员(

)。

答案:public和protected在传值调用中,要求(

)。

答案:形参和实参对应的类型一致,个数相等;关于继承中二义性的描述中(

)是错误的。

答案:基类和派生类中同时出现的同名函数,也存在二义性问题函数重载是指(

)。

答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同语句cout<<"a\bre'hi'you";的输出结果是(

)。提示,\b是退格符。

答案:re'hi'you在下面有关析构函数特征的描述中,正确的是(

)。

答案:析构函数不能指定返回类型友元的作用之一是(

答案:提高程序的运行效率cin是(

)的一个对象,处理标准输入。

答案:isteam关于类模板,描述错误的是(

)。

答案:根据建立对象时的实际数据类型,编译器把类模板实例化为模板类对于int*pa[5];的描述,(

)是正确的。

答案:pa是一个具有5个元素的指针数组,每个元素是一个int型指针;在公有继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(

)。

答案:保持不变适宜采用inline定义函数情况是()。

答案:函数代码少、频繁调用下述叙述正确的是(

)。

答案:字符数据内存中存放的是整数值当一个函数无返回值时,定义它是函数的类型应是(

)。

答案:void对象之间的相互作用和通信是通过消息。下列哪项不是消息的组成部分(

答案:要执行的函数的内部结构下列的各类函数中,(

)不是类的成员函数。

答案:友元函数如果从原有类定义新类可以实现的是()。

答案:继承机制循环while(inti=0)i--;执行次数是(

)。

答案:0当问题出现时,程序会抛出一个异常。这是通过使用

catch关键字来完成的。

答案:错析构函数不能抛出异常。

答案:对try

块中的代码标识将被激活的特定异常,它后面通只能跟着一个catch块。

答案:错C++通过throw语句和try...catch语句实现对异常的处理。

答案:对函数参数和异常对象都有的传递方式方式是(

)。

答案:指针传递###引用传递###值传递要在C++中进行文件处理,必须在C++源代码文件中包含头文件和。

答案:对将一个字符charc=’A’写到文件中错误的语句为(

)。

答案:file.write((constchar*)c,sizeof(c));###file.write(c,sizeof(c));下面关于C++输入输出的说法正确的是(

答案:C++通过一种称为流的机制提供了输入和输出方法;###流是一种灵活且面向对象的I/O方法;cout是(

)的一个对象,处理标准输出。

答案:ostream设己定义浮点型变量data,按data在内存中的表示原样输出到显示器上,正确的语句是(

)。

答案:cout.write((char*)&data,sizeof(double));在C++中,用getline函数读取string对象时(

)。

答案:读取字符直至遇到换行符,如果第一个字符是换行符,则返回空string;执行以下程序:char*str;cin>>str;cout<答案:输出乱码或出错当使用ifstream定义一个文件流,并将一个打开文件的文件与之连接,文件默认的打开方式为(

)。

答案:ios::in函数模板中可以有不止一个类型参数,每一个类型参数前面都要加typename或class来说明。(

答案:对函数模板实例化时,没有普通传值参数的类型转换机制。(

答案:对下面是类模板的定义语句templateclassClassX{

};x,y,z分别是char、double、float类型的变量,则下面定义对象的语句哪一个是错误的?()

答案:ClassXobj;把通过函数模板按实际类型生成的函数称为模板函数,这个过程称为实例化。编译程序实例化后的模板函数自动生成目标代码。(

答案:对编译器会选择实参经过自动类型转换后能够匹配的模板函数进行匹配。(

答案:错下面vector容器的定义不正确的是(

答案:vectorv;下面定义类模板模板参数的定义语句错误的是(

)。

答案:template关于函数模板,描述错误的是(

)。

答案:函数模板必须由程序员实例化为可执行的模板函数类模板templateclassX{

},其中,函数模板f定义为该类模板实例化的每个模板类的友元,则其说明应为(

)。

答案:template

friendvoidf(X&);顺序容器(vector,list,deque)中,能通过pop_front()删除最前面的元素的是(

)。

答案:vector,deque假设有函数模板定义如下:templateintMin(T*a,intsize){Ttemp=a[0];intj=0;for(inti=1;iif(a[i]temp=a[i];j=i;}returnj+1;}假设ArrayX已定义为float型的数组,则求该数组前10个元素中最小元素的位置的语句为()。

答案:Min(ArrayX,10);以下类模板、模板类、普通类之间的派生方式正确的是(

答案:从普通类派生出类模板###从模板类派生出类模板###从模板类派生出普通类###从类模板派生出新的类模板类模板Array的模板参数定义如下:template则下面哪个对象的定义是错误的?(

答案:Arraya;下面的说法错误的是(

)。

答案:函数模板和类模板的实例化的过程是通过动态联编实现的。当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。(

答案:对当一个类有子类时,该类的析构函数必须是虚函数,否则子类的析构函数不会被调用,使得子类对象被撤销之前动态申请的资源没有被释放,造成内存泄漏。(

答案:对析构函数的作用是在对象撤销之前做必要的“清理现场”的工作。(

答案:对下列属于动态多态的是(

)。

答案:虚函数operator运算符就是运算符重载函数的函数名,比如:operator+就是函数名。(

答案:对重载之后的运算符可以改变运算符的优先级和结合性,也能改变运算符操作数的个数及语法结构。(

答案:错当编译器在编译程序的过程中看到某个类中有虚函数的标志时,就会为这个类的实际对象创建一个指针即虚函数表指针vtbl,以指向类中的虚函数表。虚函数表里包含了所有的虚函数代码的地址,以NULL结束。虚函数如果在派生类被重写,就由派生类重写的虚函数地址来代替。(

答案:对重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。(

答案:对有虚函数的类,其对象的空间比没有虚函数的类多了一个指针的空间,这个指针就是指向虚函数表的指针。(

答案:对基类中定义的虚函数为整个类族提供了一个通用的框架,说明了一般类所应该具有的行为,派生类根据自己的情况给出自己的定义,即对基类中定义的虚函数进行重定义。(

答案:对C++中的虚函数的作用主要是实现了多态机制,即父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际子类的成员函数。多态机制可以简单地概括为“一个接口,多种方法”。(

答案:对双目运算符重载为友元函数时有两个参数即运算符的两个操作数,而重载为成员函数时只有一个参数,即运算符的第二个操作数(

)。

答案:对构造函数可以定义为虚函数,析构函数不可以定义为虚函数。(

答案:错运算符重载为类的成员函数和重载为友元函数不同的是,重载为成员函数时声明和定义中省略了第一个参数,因为成员函数总是与对象捆绑使用的,被捆绑的对象就是被操作的第一参数。(

答案:对如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。

答案:对下面叙述不正确的是()。

答案:基类的公有成员在派生类中仍然是公有的假设ClassY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为()。

答案:X,Y;Y,X以下基类中的成员函数表示纯虚函数的是()。

答案:virtualvoidtt()=0对基类和派生类的关系描述中,错误的是()。

答案:基类继承了派生类的属性在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()。

答案:私有成员关于this指针使用说法正确的是()。

答案:保证每个对象拥有自己的数据成员,但共享处理这些数据的代码拷贝构造函数创建对象时,使用已经存在的同类对象来进行初始化,由编译器自动调用。

答案:对拷贝构造函数,是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。

答案:对如果一个对象被声明为常对象,则不能调用该对象的非const型的成员函数(除了由系统自动调用的隐式构造函数和析构函数)。

答案:对this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。

答案:对下列不能作为类的成员的是(

)。

答案:自身类对象在类中说明的成员可以使用关键字的是(

)。

答案:public所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(

)。

答案:类下面程序输出结果是(

)。#includeusingnamespa

温馨提示

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

最新文档

评论

0/150

提交评论