您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > (完整版)c++题库
假定AB引用是某个变量的别名,对引用的操作就是对被引用变量的操作。A.对B.错假定AB为一个类,则执行ABx;语句时将自动调用该类的无参构造函数。A.对B.错构造函数用来初始化类的新对象,构造函数与类同名,返回类型只能为void。A.对B.错用new动态分配的内存是在堆中分配的,而不是在栈中分配的。A.对B.错使用关键字class定义的类中缺省的访问权限是私有(private)的。A.对B.错在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。A.对B.错C++语言的标识符是不区分大小写的。A.对B.错作用域运算符(::)只能用来限定成员函数所属的类。A.对B.错声明对象时,类名前面不需要加class关键字。A.对B.错C++程序一般应当含有main函数,它是C++程序执行的入口。A.对B.错可以在类的构造函数中对静态数据成员进行初始化。A.对B.错C++语言中,既允许单继承,又允许多继承。A.对B.错派生类的继承方式有两种:公有继承和私有继承。A.对B.错多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。A.对B.错类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。A.对B.错构造函数和析构函数都不能重载。A.对B.错在基类中被声明为虚函数的类的成员函数必须在每个派生类中显式声明为虚函数,才能具有多态的特征。A.对B.错关于运算符重载,运算符函数的返回类型不能声明为基本数据类型。A.对B.错将类的一个对象赋值给该类的另一个对象时,调用拷贝构造函数。A.对B.错模板可以使程序对任何数据类型进行同样方式的处理。A.对B.错1.编译源文件后产生的文件是()。A.目标文件B.可执行文件C.源文件D.头文件2.每个C++程序只能有一个()。A.全局变量B.函数C.头文件D.主函数3.使用内联函数的好处是()。A.增加函数调用次数B.提高代码执行效率C.减少代码量,增强代码可读性D.隐藏内部实现4.下列不是函数重载所要求的条件是()。A.函数名相同B.函数返回值类型不同C.参数类型不同D.参数个数不同5.下列哪两个函数为重载函数()。A.voida1(),voida2()B.intb(intx),floatb(intx)C.charc(doubley),charc(inty,doublez)D.boold(doubley),boold(doubley,intx=0)6.在面对对象方法中,实现信息隐蔽依靠的是()。A.对象的封装B.对象的继承C.对象的多态D.对象的分类7.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。A.类B.对象C.函数体D.数据块8.下列关于类定义的说法中,正确的是()。A.在类里定义的函数为内联函数B.类成员的默认访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义9.关于类和对象不正确的说法是()。A.类是一种类型,它封装了数据和操作B.对象是类的实例C.一个类的对象只有一个D.一个对象必属于某个类10.结构体中定义的成员默认的访问属性为()。A.publicB.privateC.friendD.protected11.类中定义的成员默认的访问属性为()。A.publicB.privateC.friendD.protected12.有关构造函数的叙述不正确的是()。A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.构造函数无任何函数类型D.在一个类中构造函数有且仅有一个13.下列关于析构函数的描述中,错误的是()。A.析构函数可以重载B.析构函数由系统自动调用C.每个对象的析构函数只被调用一次D.每个类都有析构函数14.通常拷贝构造函数的参数是()。A.对象名B.对象的成员名C.对象的引用名D.对象的指针名15.在类外定义成员函数时,需要在函数名前加上()。A.类名B.对象名C.作用域运算符D.类名和作用域运算符16.在类定义中,为说明成员的访问权限,private,protected,public可以出现次数()。A.次数没有具体限制B.每种至多一次C.public至少一次D.每种至少一次17.关于静态数据成员的描述中错误的是()。A.类的静态数据成员是该类所有对象所共享的B.类的静态数据成员在在该类每个对象中都保留一个备份C.类的静态数据成员必须进行初始化D.类的静态数据成员可以不通过对象来访问18.若一个类的数据成员用const关键字修饰,则该数据成员()。A.静态函数中可以对该成员赋值B.构造函数只能通过初始化列表对该成员初始化C.任何函数都不能使用该成员D.外部函数可以对该成员赋值19.有两个类X和Y,且Y有一个构造函数Y::Y(Xx);那么以下语句:Xa;Yb(a);不会调用下面的哪个函数()。A.Y的构造函数Y(Xx)B.Y的拷贝(复制)构造函数C.X的默认构造函数D.X的拷贝(复制)构造函数20.已知类A的定义。假设x为A的对象,则在类外访问x对象中数据成员a和b分别应采用()。classA{private:inta;public:intgetValue(){returna;}intb;};A.x::getValue(),x::bB.x.a,x.bC.x.a(),x.b()D.x.getValue(),x.b21.假设程序中先前已经定义了A、B、C三个类,他们的构造函数分别会输出Aconstructed、Bconstructed和Cconstructed,那么又定义了类D,并在main函数中定义了一个D类的对象,部分代码如下:classD{public:D():a(),b(),c(){}private:Aa;Bb;Cc;};intmain(){Dd;return0;}程序的输出结果为()。A.AconstructedBconstructedCconstructedB.CconstructedBconstructedAconstructedC.编译错误D.编译器决定22.已知类CA中的某个成员是类CB的对象,若要把这两个类定义在同一个文件中,则()。A.CA必须定义在CB之前B.CB必须定义在CA之前C.若CA定义在CB之后,则CA的声明必须出现在CB的定义之前D.若CB定义在CA之后,则CB的声明必须出现在CA的定义之前23.在设计一个类的时候,如果希望允许一个不属于该类的函数访问该类的私有成员,应该使用哪个关键字()。A.publicB.privateC.friendD.protected24.关于友元函数的描述中,错误的是()。A.友元函数是成员函数B.友元函数能访问类中私有成员C.友元函数破坏封装性D.友元函数声明在类体内25.如果类A是类B的友元,则()。A.类A的成员是类B的成员B.类B的成员是类A的成员C.类A的成员函数可以访问类B的私有成员D.类B是类A的友元26.已知类A是类B的友元类,类B是类C的友元类,则()。A.类A一定是类C的友元B.类C一定是类A的友元C.类C的成员函数可以访问类B的对象的任何成员D.类A的成员函数可以访问类B的对象的任何成员27.已知Point类含有无参(默认)构造函数和有参构造函数,使用Pointa[3]={Point(1,2),Point(3,4),Point()};时,调用了()次Point类的无参(默认)构造函数。A.1B.2C.3D.428.要定义一个引用变量p使之引用类MyClass的一个对象,正确的定义语句是()。A.MyClassp=MyClass;B.MyClassp=newMyClass;C.MyClass&p=newMyClass;D.MyClassa,&p=a;29.关于this指针的说法不正确的是()。A.不能在程序中修改this指针B.this指针可以给其他指针赋值,但不能修改this指针C.静态成员函数中没有this指针D.this指针可以被赋值30.关于C++的动态存储分配,下列说法正确的是()。A.new和delete是C++语言中专门用于动态内存分配和释放的函数B.动态分配的内存空间也可以被初始化C.当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new31.观察程序#includeiostreamusingnamespacestd;intmain(){int*first,*second;first=newint[5];second=first;delete[]second;delete[]first;return0;}该程序是否正确,原因是什么?A.正确,因为first和second都是独立的指针变量B.不正确,因为first和second是相关而非独立的指针变量C.正确,second会拷贝first的内容D.不正确,second和first指向相同的内容32.C++中,不能被派生类继承的有()。A.析构函数B.虚函数C.静态成员函数D.友元函数33.下列关于派生类的叙述中,错误的是()。A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变34.下列关于类型转换正确的是()。A.基类的对象可以被当作公有派生类对象使用B.派生类对象必须显式的转换为基类对象C.派生类对象可以初始化基类的引用D.基类的指针可以隐含转换为派生类的指针35.下列关于虚基类的描述中,错误的是()。A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“classB:virtualpublicA”说明类B为虚基类D.建立派生类对象时,首先调用虚基类的构造函数36.以下说法正确的是()。A.同一个运算符可以被重载多次B.可以通过运算符重载来创建C++中原来没有的运算符C.自增运算符重载时,重载函数不允许有输入参数D.运算符函数的返回类型不能声明为基本数据类型37.若A是一个类名,则如下语句将会产生的A对象个数为()。Aa1,*a2;A*a3=newA();A&a4=a1;A.1B.2C.3D.438.类C2是类C1的派生类,下列说法中错误的是()。A.C1的成员都是C2的成员B.C2的对象可以赋值给C1的变量C.C1的友元函数都是C2的友元函数D.创建C2的对象时,要执行C1的构造函数39.若类A和类B都是类模板T的模板类,则以下说法正确的是()。A.A的友元函数中,可以访问B的私有成员B.A的对象可以赋值给B类型的变量C.A和B共享T的静态成员变量D.A的成员函数中,不能访问B的私有成员40.若类B是从类A派生而来,而语句p.Do();在被多次执行时,有的时候调用的是类A的Do成员函数,有的时候调用的是类B的Do成员函数,那么p的类型可以是()。A.A&B.A*C.BD.A41.将一个对象放入STL中的容器里时,()。A.实际上被放入的是该对象的一个拷贝(副本)B.实际上被放入的是该对象的指针C.实际上被放入的是该对象的引用D.实际上被放入的就是该对象自身42.以下说法正确的是()。A.在multiset容器中,可以同时存储多个相同的元素B.在set容器中,各元素的存储位置取决于它们的插入顺序C.向deque容器添加新对象时,需要比较对象的大小D.在list容器中,各元素的存储位置取决于它们的值43.若有如下定义:setint::iteratorit1,it2,it3;setints;则以下语句不符合语法的是()。A.it1++;B.--it2;C.it3=it1+1;D.boolisEnd=(it1==s.end());44.关于函数对象,如下说法中正确的是()。A.如果一个类重载了“()”运算符,该类的对象是函数对象B.如果一个类定义了函数指针成员变量,则该类的对象是函数对象C.函数对象类中只能定义成员函数,不能定义成员变量D.函数对
本文标题:(完整版)c++题库
链接地址:https://www.777doc.com/doc-5419272 .html