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(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+C+程序设计模拟试卷程序设计模拟试卷(六六)C+C+程序设计模拟试卷程序设计模拟试卷(六六)一、单项选择题一、单项选择题(本大题共本大题共2020小题,每小题小题,每小题1 1分,共分,共2020分分)在每小题列出的四个备选项中在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。分。1.1.当一个类的某个函数被说明为当一个类的某个函数被说明为virtualvirtual时,该函数在该类的所有派生类中()时,该函数在该类的所有派生类中()A.A.都是虚函数都是虚函
2、数B.B.只有被重新说明时才是虚函数只有被重新说明时才是虚函数C.C.只有被重新说明为只有被重新说明为virtualvirtual时才是虚函数时才是虚函数D.D.都不是虚函数都不是虚函数答案:答案:A A解析:在基类声明为解析:在基类声明为virtualvirtual的函数为虚函数,在派生类中只要有相同的函数(函数名相的函数为虚函数,在派生类中只要有相同的函数(函数名相同、返回值相同、形参类型和个数相同)即使不用同、返回值相同、形参类型和个数相同)即使不用virtualvirtual说明,也都是虚函数。说明,也都是虚函数。2.2.以下基类中的成员函数表示纯虚函数的是以下基类中的成员函数表示纯虚
3、函数的是()()A.A.virtual void vf(int)virtual void vf(int)B.B.void vf(int)=0void vf(int)=0C.C.virtual void vf()=0virtual void vf()=0D.D.virtual void yf(int)virtual void yf(int)答案:答案:C C解析:纯虚函数是特殊的虚函数,没有函数体,形式为:解析:纯虚函数是特殊的虚函数,没有函数体,形式为:virtualvirtual返回类型函数名(形参返回类型函数名(形参列表)列表)0 0;因此选;因此选C C项。项。3.3.下面对静态数据成员
4、的描述中,正确的是()下面对静态数据成员的描述中,正确的是()A.A.静态数据成员可以在类体内进行初始化静态数据成员可以在类体内进行初始化B.B.静态数据成员可以直接用类名或者对象名来调用静态数据成员可以直接用类名或者对象名来调用C.C.静态数据成员不能用静态数据成员不能用privateprivate控制符修饰控制符修饰D.D.静态数据成员不可以被类的对象调用静态数据成员不可以被类的对象调用答案:答案:B B解析:静态成员可用类名或者对象名来调用,静态数据成员必须在类外进行初始化。静态解析:静态成员可用类名或者对象名来调用,静态数据成员必须在类外进行初始化。静态成员可以用成员可以用public
5、public、privateprivate和和protectedprotected修饰。所以选修饰。所以选B B项。项。4.4.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()也就是()A.A.类类B.B.对象对象C.C.函数体函数体D.D.数据块数据块答案:答案:A A解析:类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。解析:类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。5.5.类类B B是类是类A A的公有派生类,类的公有派生类,类A A
6、和类和类B B中都定义了虚函数中都定义了虚函数func(),pfunc(),p是一个指向类是一个指向类A A对象的指针对象的指针,则,则p-A:func()p-A:func()将()将()A.A.调用类调用类A A中的函数中的函数func()func()B.B.调用类调用类B B中的函数中的函数func()func()C.C.根据根据p p所指的对象类型而确定调用类所指的对象类型而确定调用类A A中或类中或类B B中的函数中的函数func()func()D.D.既调用类既调用类A A中函数,也调用类中函数,也调用类B B中的函数中的函数答案:答案:A A解析:指向类成员指针的使用,解析:指向类
7、成员指针的使用,A:func()A:func()是明确调用是明确调用A A类的类的funcfunc函数,所以不管函数,所以不管p p指向基指向基类或者派生类对象,都执行基类虚函数。注意类或者派生类对象,都执行基类虚函数。注意p-A:func()p-A:func()和和p-fun();p-fun();进行区分。如果使用进行区分。如果使用p-p-fun()fun(),因为,因为p p指向派生类对象,由动态多态性可知要调用派生类的虚函数。指向派生类对象,由动态多态性可知要调用派生类的虚函数。6.6.在面向对象的程序设计中,首先在问题域中识别出若干个在面向对象的程序设计中,首先在问题域中识别出若干个(
8、)()A.A.函数函数B.B.类类C.C.文件文件D.D.过程过程答案:答案:B B解析:面向过程的和面向对象都具有、函数、文件和过程这些概念,而面向对象程序才有解析:面向过程的和面向对象都具有、函数、文件和过程这些概念,而面向对象程序才有类和对象的特征。所以选择类和对象的特征。所以选择B B。7.7.在下列成对的表达式中,运算结果类型相同的一对是()在下列成对的表达式中,运算结果类型相同的一对是()A.A.7.07.02.02.0和和7.07.02 2B.B.5 52.02.0和和5 52 2C.C.7.07.02 2和和7 72 2D.D.8 82 2和和6.06.02.02.0答案:答案
9、:A A解析:小数默认的类型为解析:小数默认的类型为doubledouble类型,整数除以整数结果是取整的结果。类型,整数除以整数结果是取整的结果。A A、B B、C C和和D D项的第一项项的第一项分别是分别是doubledouble、doubledouble、doubledouble和和intint类型的类型的,第二项分别是第二项分别是doubledouble、intint、intint和和doubledouble类型,所类型,所以选择以选择A A项。项。8.8.下列不具有访问权限属性的是()下列不具有访问权限属性的是()A.A.非类成员非类成员B.B.类成员类成员C.C.数据成员数据成员
10、D.D.函数成员函数成员答案:答案:A A解析:类成员包括成员函数和数据成员,都可以使用访问权限解析:类成员包括成员函数和数据成员,都可以使用访问权限publicpublic、privateprivate和和protectedprotected来修来修饰饰,而普通的变量不能使用访问权限来说明。而普通的变量不能使用访问权限来说明。9.9.以下有关继承的叙述正确的是以下有关继承的叙述正确的是()()A.A.构造函数和析构函数都能被继承构造函数和析构函数都能被继承B.B.派生类是基类的组合派生类是基类的组合C.C.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员派生类对象除了能访问自己的
11、成员以外,不能访问基类中的所有成员D.D.基类的公有成员一定能被派生类的对象访问基类的公有成员一定能被派生类的对象访问答案:答案:C C解析:构造函数和析构函数不能被派生类继承,解析:构造函数和析构函数不能被派生类继承,A A项错误。派生类是基类的扩展,项错误。派生类是基类的扩展,B B项错。项错。派生类可以访问基类公有和保护类型的成员,不能访问基类私有成员。派生类可以访问基类公有和保护类型的成员,不能访问基类私有成员。D D项基类是公有的成员项基类是公有的成员,若采用私有继承,派生类对象不能直接访问。选择,若采用私有继承,派生类对象不能直接访问。选择C C项。项。10.10.下列有关模板和继
12、承的叙述正确的是下列有关模板和继承的叙述正确的是()()A.A.模板和继承都可以派生出一个类系模板和继承都可以派生出一个类系B.B.从类系的成员看,模板类系的成员比继承类系的成员较为稳定从类系的成员看,模板类系的成员比继承类系的成员较为稳定C.C.从动态性能看,从动态性能看,继承类系比模板类系具有更多的动态特性继承类系比模板类系具有更多的动态特性D.D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系答案:答案:D D解析:类是相同类型事物的抽象,具有不同的操作。而模板是不同类型的事物,具体相同解析:类是相
13、同类型事物的抽象,具有不同的操作。而模板是不同类型的事物,具体相同的操作的抽象。类模板的实例化后,各个对象没有任何关系。而类对象是通过派生、继承等关系的操作的抽象。类模板的实例化后,各个对象没有任何关系。而类对象是通过派生、继承等关系的关系。的关系。11.11.适宜采用适宜采用inlineinline定义函数情况是()定义函数情况是()A.A.函数体含有循环语句函数体含有循环语句B.B.函数体含有递归语句函数体含有递归语句C.C.函数代码少、频繁调用函数代码少、频繁调用D.D.函数代码多、不常调用函数代码多、不常调用答案:答案:C C解析:内联函数具有程序代码少、频繁调用和执行效率高的特征,所
14、以选择解析:内联函数具有程序代码少、频繁调用和执行效率高的特征,所以选择C C项。项。12.12.要采用动态多态性,说法正确的是()要采用动态多态性,说法正确的是()A.A.基类指针调用虚函数基类指针调用虚函数B.B.派生类对象调用虚函数派生类对象调用虚函数C.C.基类对象调用虚函数基类对象调用虚函数D.D.派生类指针调用虚函数派生类指针调用虚函数答案:答案:A A解析:使用基类的指针或引用,由指向或引用的对象来决定调用不同类的虚函数。所以选解析:使用基类的指针或引用,由指向或引用的对象来决定调用不同类的虚函数。所以选择择A A。13.13.C+C+类体系中,不能被派生类继承的有()类体系中,
15、不能被派生类继承的有()A.A.转换函数转换函数B.B.构造函数构造函数C.C.虚函数虚函数D.D.静态成员函数静态成员函数答案:答案:B B解析:构造函数不能被继承,而转换函数、虚函数和静态成员函数都可以被继承,所以选解析:构造函数不能被继承,而转换函数、虚函数和静态成员函数都可以被继承,所以选择择B B项。项。14.14.下列不是描述类的成员函数的是()下列不是描述类的成员函数的是()A.A.构造函数构造函数B.B.析构函数析构函数C.C.友元函数友元函数D.D.拷贝构造函数拷贝构造函数答案:答案:C C解析:构造函数、析构函数、拷贝构造函数都是特殊的成员函数,友元则不是成员函数。解析:构
16、造函数、析构函数、拷贝构造函数都是特殊的成员函数,友元则不是成员函数。所以选择所以选择C C项。项。15.15.下列不能作为类的成员的是()下列不能作为类的成员的是()A.A.自身类对象的指针自身类对象的指针B.B.自身类对象自身类对象C.C.自身类对象的引用自身类对象的引用D.D.另一个类的对象另一个类的对象答案:答案:B B解析:类的定义,如果有自身类对象,使得循环定义,解析:类的定义,如果有自身类对象,使得循环定义,B B项错误。在类中具有自身类的指针,可项错误。在类中具有自身类的指针,可以实现链表的操作,当然也可以使用对象的引用。类中可以有另一个类的对象,即成员对象。所以实现链表的操作
17、,当然也可以使用对象的引用。类中可以有另一个类的对象,即成员对象。所以选择以选择B B选项。选项。16.16.下列不是描述类的成员函数的是()下列不是描述类的成员函数的是()A.A.构造函数构造函数B.B.析构函数析构函数C.C.友元函数友元函数D.D.拷贝构造函数拷贝构造函数答案:答案:C C解析:友元函数不是类成员,只是它可以访问类中的成员。解析:友元函数不是类成员,只是它可以访问类中的成员。17.17.关于对象概念的描述中,说法错误的是()关于对象概念的描述中,说法错误的是()A.A.对象就是对象就是C C语言中的结构变量语言中的结构变量B.B.对象代表着正在创建的系统中的一个实体对象代
18、表着正在创建的系统中的一个实体C.C.对象是类的一个变量对象是类的一个变量D.D.对象之间的信息传递是通过消息进行的对象之间的信息传递是通过消息进行的答案:答案:A A解析:解析:A A对象在对象在C C中才有,包括数据和操作两项,而中才有,包括数据和操作两项,而C C中的变量只有数据,没有操作。所中的变量只有数据,没有操作。所以以A A项错误。项错误。18.18.派生类的构造函数的成员初始化列表中,不能包含()派生类的构造函数的成员初始化列表中,不能包含()A.A.基类的构造函数基类的构造函数B.B.基类的对象初始化基类的对象初始化C.C.派生类对象的初始化派生类对象的初始化D.D.派生类中
19、一般数据成员的初始化派生类中一般数据成员的初始化答案:答案:C C解析:派生类的构造函数的成员初始化,包括基类成员、基类对象成员和派生类成员。因解析:派生类的构造函数的成员初始化,包括基类成员、基类对象成员和派生类成员。因为本身就是初始化定义的对象,在构造函数中再进行该类对象的初始化产生了循环定义,或者类为本身就是初始化定义的对象,在构造函数中再进行该类对象的初始化产生了循环定义,或者类中不能包括本身类的成员对象。所以选择中不能包括本身类的成员对象。所以选择C C项。项。19.19.关于关于newnew运算符的下列描述中,错误的是()运算符的下列描述中,错误的是()A.A.它可以用来动态创建对
20、象和对象数组它可以用来动态创建对象和对象数组B.B.使用它创建的对象或对象数组可以使用运算符使用它创建的对象或对象数组可以使用运算符deletedelete删除删除C.C.使用它创建对象时要调用构造函数使用它创建对象时要调用构造函数D.D.使用它创建对象数组时必须指定初始值使用它创建对象数组时必须指定初始值答案:答案:D D解析:解析:new new创建的对象数组不能指定初始值,所以调用无参的构造函数,选择创建的对象数组不能指定初始值,所以调用无参的构造函数,选择D D项。项。20.20.假定一个类的构造函数为假定一个类的构造函数为A(int aa,int bb)a=aa+;b=a*+bb;A
21、(int aa,int bb)a=aa+;b=a*+bb;,则执行,则执行A x(4,5);A x(4,5);语句语句后,后,x.ax.a和和x.bx.b的值分别为()的值分别为()A.A.4 4和和5 5B.B.4 4和和2020C.C.4 4和和2424D.D.2020和和5 5答案:答案:C C解析:执行构造函数将数据成员进行赋值,解析:执行构造函数将数据成员进行赋值,aa+aa+是后加,先赋值是后加,先赋值a a4 4,+bb,bb+bb,bb变量值先自变量值先自加为加为6 6,再与,再与a a相乘,所以相乘,所以b b2424。二、填空题(本大题共二、填空题(本大题共2020小题,每
22、小题小题,每小题1 1分,共分,共2020分)请在每小题的空格中填上正确答分)请在每小题的空格中填上正确答案。错填、不填均无分。案。错填、不填均无分。1.1.在在C+C+中,编译指令都是以中,编译指令都是以_(符号)开始。(符号)开始。答案:答案:#C+C+的源程序可包括各种编译指令,以指示编译器对源代码进行编译之前先对其进行预处理。所的源程序可包括各种编译指令,以指示编译器对源代码进行编译之前先对其进行预处理。所有的编译指令都以有的编译指令都以#开始,每条指令单独占用一行,同一行不能有其他编译指令和开始,每条指令单独占用一行,同一行不能有其他编译指令和C+C+语句(注释语句(注释例外)例外)
23、2.2.在函数前面用在函数前面用_保留字修饰时,则表示该函数表为内联函数。保留字修饰时,则表示该函数表为内联函数。答案:答案:inline inline解析内联函数,用来提高程序运行速度。在类内部定义的函数也是内联函数。解析内联函数,用来提高程序运行速度。在类内部定义的函数也是内联函数。3.3.执行下列程序执行下列程序int a=21,j=16;int a=21,j=16;cout.setf(ios:hex);cout.setf(ios:hex);couta;couta;cout.unsetf(ios:hex);cout.unsetf(ios:hex);coutjendl;coutjendl;
24、程序的输出结果是程序的输出结果是_。答案:答案:1516 1516解析解析a a2121以十六进制输出,以十六进制输出,j=16j=16以十进制输出。以十进制输出。4.4.在单继承和多继承方式中,面向对象的程序设计应尽量使用在单继承和多继承方式中,面向对象的程序设计应尽量使用_继承。继承。答案:单答案:单解析多继承是单继承的扩展,且多继承易产生二义性等问题。解析多继承是单继承的扩展,且多继承易产生二义性等问题。5.5.函数模板中紧随函数模板中紧随templatetemplate之后尖括号内的类型参数都要冠以保留字之后尖括号内的类型参数都要冠以保留字_。答案:答案:class class解析类模
25、板的使用。解析类模板的使用。template,template,也可以引入多参数的如:也可以引入多参数的如:template classtemplate class Tn6.6.在在C C中,访问指针所指向的对象的成员使用中,访问指针所指向的对象的成员使用_运算符。运算符。答案:答案:或或.解析使用指针访问成员有两种方法:成员运算符“解析使用指针访问成员有两种方法:成员运算符“.”或指向运算符“”或指向运算符“.”。”。7.7.定义类的动态对象数组时,系统只能够自动调用该类的定义类的动态对象数组时,系统只能够自动调用该类的_构造函数对其进行初始化。构造函数对其进行初始化。答案:无参答案:无参解
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 模拟 试卷
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内