1、二级 C+笔试 3及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于多态性的描述,错误的是(分数:2.00)A.C+语言中的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态绑定2.下列运算符中,在 C+语言中不能重载的是(分数:2.00)A.*B. =C.:D./3.下列关于虚基类的描述,错误的是(分数:2.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构
2、造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数4.C+语言对 C语言做了很多改进,C+语言相对于 C语言的最根本的变化是(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念5.下列有关数据库的描述,正确的是(分数:2.00)A.数据库是一个 DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件6.下面对静态数据成员的描述中,正确的是(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静
3、态数据成员不能受 private控制符的作用D.静态数据成员可以直接用类名调用7.链表不具有的特点是(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比8.下列说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline定义9.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(分数:2.00)A.公有类型B.私
4、有类型C.保护类型D.友元类型10.下列程序的输出结果为 # include iostreamh void main( ) char * a =“hello“,“the“,“world“; char * * pa=a; pa +; cout * pa endl; (分数:2.00)A.helloB.theC.worldD.hellotheworld11.下面对于友元函数描述正确的是(分数:2.00)A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员12.下列程序的运行结果是 # include iostreamh
5、class A int a; public: A( ) a=0; A(int aa) a=aa; cout a+; ; void main( ) A x,y (2),z(3); cout endl; (分数:2.00)A.00B.23C.34D.2513.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(分数:2.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对14.栈和队列的共同特点是(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点15.下列选项,不正确的是(分数:2.
6、00)A.for(int a=1;a =C.: D./解析:解析:不能被重载的运算符还包括:“”,“* ”,“- * ”和“?:”。3.下列关于虚基类的描述,错误的是(分数:2.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用 C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数解析:解析:虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。4.C+语言对 C语
7、言做了很多改进,C+语言相对于 C语言的最根本的变化是(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念 解析:解析:C+语言最重要的特点是其为一种面向对象的程序设计语言,但是 C+语言也包含了全部的c语言的特征。5.下列有关数据库的描述,正确的是(分数:2.00)A.数据库是一个 DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:解析:数据库(Database,简称 DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所
8、共享。数据库中的数据具有“集成”、“共享”之特点。6.下面对静态数据成员的描述中,正确的是(分数:2.00)A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员不能受 private控制符的作用D.静态数据成员可以直接用类名调用 解析:解析:静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。7.链表不具有的特点是(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素 C.插入删除不需要移动元素D.所需空间与线性表长度成正比解析:解析:链表采用的是链式存储结构,它克服了顺序存储结构的缺
9、点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间;链式存储结构是一种非随机存储结构。8.下列说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline定义解析:解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行
10、时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。9.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(分数:2.00)A.公有类型B.私有类型C.保护类型D.友元类型 解析:解析:所谓的访问控制只包含公有类型、私有类型和保护类型 3种,友元可以是一个函数,也可以是一个类。10.下列程序的输出结果为 # include iostreamh void main( ) char * a =“hello“,“the“,“world“; char * * pa=a; pa +; co
11、ut * pa endl; (分数:2.00)A.helloB.the C.worldD.hellotheworld解析:解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中 a是指针数组,pa 是指向指针数组行的指针,所以 Pa自加 1相当于指向下一行。11.下面对于友元函数描述正确的是(分数:2.00)A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员解析:解析:友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私
12、有成员。12.下列程序的运行结果是 # include iostreamh class A int a; public: A( ) a=0; A(int aa) a=aa; cout a+; ; void main( ) A x,y (2),z(3); cout endl; (分数:2.00)A.00B.23 C.34D.25解析:解析:本题考查的是对构造函数的掌握,另外“+”运算符是右结合的, 所以在进行输出的时候都是先把原来的输出后再自加 1。13.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(分数:2.00)A.ios:inB.ios:outC.io
13、s:in | ios:outD.以上都不对 解析:解析:使用 fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。14.栈和队列的共同特点是(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同点解析:解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。15.下列选项,不正确的是(分数:2.00)A.for(int a=1;aSetNu
14、m(50);)解析:解析:本题考查的是考生使用对象指针调用成员函数的能力,指针调用成员函数应该使用符号“-)”。47.继承的方式有公有继承、私有继承和 【13】 3 种。(分数:2.00)填空项 1:_ (正确答案:【13】保护继承)解析:解析:继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择 3种不同的继承方式。48.表达式 operator + (x,y)还可以表示为 【14】 。(分数:2.00)填空项 1:_ (正确答案:【14】x+y)解析:解析:本题考查的是运算符函数的调用,可以像一般函数那样用函数名进行调用,也可通过运算符构成表达式的形式进行调用。49.类模板的使用实际上是将类模板实例化成一个具体的 【15】 。(分数:2.00)填空项 1:_ (正确答案:【15】类)解析:解析:本题考查的是类模板的使用方式,就是把类模板的一般化定义实例化为一个真正的类。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1