c++题库-.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c++题库-.pdf》由会员分享,可在线阅读,更多相关《c++题库-.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、假定 AB 引用是某个变量的别名,对引用的操作就是对被引用变量的操作。A.对B.错假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的无参构造函数。A.对B.错构造函数用来初始化类的新对象,构造函数与类同名,返回类型只能为void。A.对B.错用 new动态分配的内存是在堆中分配的,而不是在栈中分配的。A.对B.错使用关键字class定义的类中缺省的访问权限是私有(private)的。A.对B.错在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。A.对B.错C+语言的标识符是不区分大小写的。A.对B.错作用域运算符(:)只能用来限定成员函数所属的类。A.对B.错声明对象时
2、,类名前面不需要加class关键字。A.对B.错C+程序一般应当含有main 函数,它是C+程序执行的入口。A.对B.错可以在类的构造函数中对静态数据成员进行初始化。A.对B.错C+语言中,既允许单继承,又允许多继承。A.对B.错派生类的继承方式有两种:公有继承和私有继承。A.对B.错多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。A.对B.错类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。A.对B.错构造函数和析构函数都不能重载。A.对B.错在基类中被声明为虚函数的类的成员函数必须在每个派生类中显式声明为虚函数,才能具有多态的特征
3、。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.下
4、列哪两个函数为重载函数()。A.void a1(),void a2()B.intb(int x),float b(int x)C.char c(double y),char c(int y,double z)D.bool d(double y),bool d(double y,int x=0)6.在面对对象方法中,实现信息隐蔽依靠的是()。A.对象的封装B.对象的继承C.对象的多态D.对象的分类7.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。A.类B.对象C.函数体D.数据块8.下列关于类定义的说法中,正确的是()。A.在类里定义的函数为内联函数B
5、.类成员的默认访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义9.关于类和对象不正确的说法是()。A.类是一种类型,它封装了数据和操作B.对象是类的实例C.一个类的对象只有一个D.一个对象必属于某个类10.结构体中定义的成员默认的访问属性为()。A.publicB.private C.friend D.protected 11.类中定义的成员默认的访问属性为()。A.public B.privateC.friend D.protected 12.有关构造函数的叙述不正确的是()。A.构造函数名必须和类名一致B.构造函数在定义对象时自动执行C.构造函数无任何函数类型
6、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.关于静态数据成员的描述中错
7、误的是()。A.类的静态数据成员是该类所有对象所共享的B.类的静态数据成员在在该类每个对象中都保留一个备份C.类的静态数据成员必须进行初始化D.类的静态数据成员可以不通过对象来访问18.若一个类的数据成员用 const 关键字修饰,则该数据成员()。A.静态函数中可以对该成员赋值B.构造函数只能通过初始化列表对该成员初始化C.任何函数都不能使用该成员D.外部函数可以对该成员赋值19.有两个类 X 和 Y,且 Y 有一个构造函数 Y:Y(X x);那么以下语句:X a;Yb(a);不会调用下面的哪个函数()。A.Y 的构造函数Y(X x)B.Y 的拷贝(复制)构造函数C.X 的默认构造函数D.X
8、 的拷贝(复制)构造函数20.已知类 A 的定义。假设 x 为 A 的对象,则在类外访问 x 对象中数据成员a 和 b 分别应采用()。class A private:int a;public:int getValue()return a;int b;A.x:getValue(),x:b B.x.a,x.b C.x.a(),x.b()D.x.getValue(),x.b21.假设程序中先前已经定义了 A、B、C 三个类,他们的构造函数分别会输出A constructed、B constructed 和 C constructed,那么又定义了类 D,并在 main 函数中定义了一个D 类的对象
9、,部分代码如下:class D public:D():a(),b(),c()private:A a;B b;C c;intmain()D d;return 0;程序的输出结果为()。A.A constructed B constructed C constructedB.C constructed B constructed A constructed C.编译错误D.编译器决定22.已知类 CA 中的某个成员是类 CB 的对象,若要把这两个类定义在同一个文件中,则()。A.CA 必须定义在CB 之前B.CB 必须定义在CA 之前C.若CA 定义在CB 之后,则CA 的声明必须出现在CB 的定
10、义之前D.若CB 定义在CA 之后,则CB 的声明必须出现在CA 的定义之前23.在设计一个类的时候,如果希望允许一个不属于该类的函数访问该类的私有成员,应该使用哪个关键字()。A.public B.private C.friendD.protected 24.关于友元函数的描述中,错误的是()。A.友元函数是成员函数B.友元函数能访问类中私有成员C.友元函数破坏封装性D.友元函数声明在类体内25.如果类 A 是类 B 的友元,则()。A.类A 的成员是类B 的成员B.类B 的成员是类A 的成员C.类A 的成员函数可以访问类B 的私有成员D.类B 是类A 的友元26.已知类 A 是类 B 的友
11、元类,类 B 是类 C 的友元类,则()。A.类A 一定是类C 的友元B.类C 一定是类A 的友元C.类C 的成员函数可以访问类B 的对象的任何成员D.类A 的成员函数可以访问类B 的对象的任何成员27.已知 Point 类含有无参(默认)构造函数和有参构造函数,使用 Point a3=Point(1,2),Point(3,4),Point();时,调用了()次 Point 类的无参(默认)构造函数。A.1B.2 C.3 D.4 28.要定义一个引用变量p 使之引用类MyClass 的一个对象,正确的定义语句是()。A.MyClass p=MyClass;B.MyClass p=new MyC
12、lass;C.MyClass&p=new MyClass;D.MyClass a,&p=a;29.关于 this指针的说法不正确的是()。A.不能在程序中修改this指针B.this指针可以给其他指针赋值,但不能修改this指针C.静态成员函数中没有this指针D.this指针可以被赋值30.关于 C+的动态存储分配,下列说法正确的是()。A.new 和 delete是 C+语言中专门用于动态内存分配和释放的函数B.动态分配的内存空间也可以被初始化C.当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用
13、new 31.观察程序#include using namespace std;int main()int*first,*second;first=new int5;second=first;delete second;delete first;return 0;该程序是否正确,原因是什么?A.正确,因为first和 second 都是独立的指针变量B.不正确,因为first和 second 是相关而非独立的指针变量C.正确,second 会拷贝 first的内容D.不正确,second 和 first指向相同的内容32.C+中,不能被派生类继承的有()。A.析构函数B.虚函数C.静态成员函数
14、D.友元函数33.下列关于派生类的叙述中,错误的是()。A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变34.下列关于类型转换正确的是()。A.基类的对象可以被当作公有派生类对象使用B.派生类对象必须显式的转换为基类对象C.派生类对象可以初始化基类的引用D.基类的指针可以隐含转换为派生类的指针35.下列关于虚基类的描述中,错误的是()。A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“classB:virtual public A”说明类B为虚基类
15、D.建立派生类对象时,首先调用虚基类的构造函数36.以下说法正确的是()。A.同一个运算符可以被重载多次B.可以通过运算符重载来创建C+中原来没有的运算符C.自增运算符重载时,重载函数不允许有输入参数D.运算符函数的返回类型不能声明为基本数据类型37.若 A是一个类名,则如下语句将会产生的A对象个数为()。A a1,*a2;A*a3=new A();A&a4=a1;A.1 B.2C.3 D.4 38.类 C2是类 C1的派生类,下列说法中错误的是()。A.C1 的成员都是C2的成员B.C2 的对象可以赋值给C1的变量C.C1 的友元函数都是C2的友元函数D.创建 C2的对象时,要执行C1的构造
16、函数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.B D.A 41.将一个对象放入STL中的容器里时,()。A.实际上被放入的是该对象的一个拷贝(副本)B.实际上被放入的是该对象的指针C.实际上被放入的是该对象的引用D.实际
17、上被放入的就是该对象自身42.以下说法正确的是()。A.在 multiset容器中,可以同时存储多个相同的元素B.在 set 容器中,各元素的存储位置取决于它们的插入顺序C.向 deque 容器添加新对象时,需要比较对象的大小D.在 list容器中,各元素的存储位置取决于它们的值43.若有如下定义:set:iterator it1,it2,it3;set s;则以下语句不符合语法的是()。A.it1+;B.-it2;C.it3=it1+1;D.boolisEnd=(it1=s.end();44.关于函数对象,如下说法中正确的是()。A.如果一个类重载了“()”运算符,该类的对象是函数对象B.如
18、果一个类定义了函数指针成员变量,则该类的对象是函数对象C.函数对象类中只能定义成员函数,不能定义成员变量D.函数对象类只能定义一个函数对象45.有如下两个类定义:class AA ;class BB AA v1,*v2;BB v3;int v4;其中有一个成员变量的定义是错误的,这个变量是()。A.v1 B.v2 C.v3D.v4 46.对于如下代码,请指出错误的代码行号是()。1 class A 2 public:3 A(int a=0)4 x=a;5 6 static void f1()7 x+;8 ;9 private:10 int x;11 static int y;12 ;A.3 B
19、.4 C.7D.11 47.对于如下代码1 class B 2 public:3 void f()4 void g()f();5 6 class D:public B 7 public:8 void f()9 void g()B:f()10 11 int main()12 B b,pb=&b;13 D d,pd=&d;14 b.f();15 pd-f();16 return 0;17 其中第 14 行代码和第15 行代码分别调用的是()。A.B:f()与D:f()B.B:f()与B:f()C.D:f()与D:f()D.D:f()与B:f()48.以下程序的输出结果是()。#include us
20、ing namespace std;class A public:A(int a1,int a2):a1(a1),a2(a2)void print();void print()const;private:int a1,a2;void A:print()cout a1 ;void A:print()const cout a2 ;int main()A a(1,2);const A b(1,2);a.print();b.print();return 0;A.1 1 B.1 2C.2 1 D.2 2 49.有如下程序:#include using namespace std;class A priv
21、ate:int a;public:A(int a=0):a(a)cout 1;A(A&x)a=x.a;cout 2;A()cout a;int get_a()return a;int main()A d1(5),d2(d1);A*pd=new A(8);coutget_a();delete pd;return 0;程序运行时的输出结果是()。A.12185 B.1215588 C.128512 D.121885550.有如下程序:#include using namespace std;class A public:void setA(int);private:int a;class B pu
22、blic:void setB(int);private:int b;class C:public A,private B public:void setC(int,int,int);private:int c;void A:setA(intx)a=x;void B:setB(intx)b=x;void C:setC(int x,int y,int z)setA(x);setB(y);c=z;int main()C obj;obj.setA(5);/A obj.setB(6);/B obj.setC(6,7,9);/C return 0;main 函数中()是错误的。A.A语句B.B 语句C.C
23、 语句51.设置虚基类的目的是()。A.区分类是否有虚函数B.使类成为抽象类C.提高程序运行效率D.消除二义性52.运行时多态是基于()。A.友元函数B.虚函数C.函数重载D.运算符重载53.C+泛型编程通过()实现。A.class B.templateC.virtual D.typedef 54.关于函数声明 float fun(int a,int b)throw,下列叙述正确的是()。A.表明函数抛出float 类型异常B.表明函数抛出任何类型异常C.表明函数不抛出任何类型异常D.语法错误55.有如下两个程序片段:#include/程序片段一std:vectorvec;for(auto i
24、tr=vec.begin();itr!=vec.end();itr+)itr-print();/程序片段二std:vectorvec;for(autoitr=vec.begin();itr!=vec.end();+itr)itr-print();则下列说法中,正确的有()。(a)itr的类型为auto(b)程序二性能上要比程序一更好(c)程序一和程序二性能上没有区别A.ab B.bC.ac D.c 56.如果 X 是整型变量,则合法的形式是()。A.&(X+1)B.*X C.*&XD.&*X 57.判断以下程序的正确性,并说明原因。#include using namespace std;in
25、t main()int*first,*second;first=new int5;second=first;delete second;delete first;return 0;A.正确,因为first 和second 都指向动态内存,需要手动释放B.不正确,应该先释放first 指向的内存空间C.正确,second 会拷贝first 的内容D.不正确,second 和first 指向相同的动态内存,重复释放会可能导致未定义行为58.C+中既可以用于文件输入又可以用于文件输出的流类是()。A.fstreamB.ifstream C.ofstream D.iostream 59.下列是关于函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 题库
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内