关键词不能为空

当前您在: 主页 > 英语 >

C++考试题答案

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:44
tags:

-

2021年3月3日发(作者:sudden)


一、单选题(每题


1


分,共

10


分)



1

.假定


AB


为一个类,则执行“


A B


a(4) , b[3] , * p[2]


”语句 时,自动调用该类构造函数


的次数为




B





A. 3


B. 4


C. 6


D. 9



2.


假定要对类


AB


定义加号操作符重载成员函数,实现两个


A B


类对象的加法,并返回相加


结果,则该成员函数的声明语句为 :



B





A.


AB


operator+(AB


& a , AB


& b)


B.


AB


operator+(AB


& a)


C.


operator+(AB


a)


D.


AB


& operator+( )



3.


关于


virtual void Draw()=0

< p>
,下面说法正确的有几个(


C


< br>



(1)


它是纯虚函数


(



)


(2)


它在定义它的类中不能实现


(


< p>
)


(3)


定义它的类不可实例化


(



)


(4)


如果一个类要继承一个


ADT


类,必须要实现其中的 所有纯虚函数


(



)//


可以不实现


,


派生


之后的类 仍旧作为一个抽象类


.


A. 1

































B. 2


C. 3

































D. 4



4. stl::deque


是一种什么数据类型?




A




A.


动态数组



B.


链表



C.


堆栈



D.






5.


下列关于构造函数的描述中,错 误的是(


d





??A)


构造函数可以设置默认参数;




B)


构造函数在定义类对象时自动执行






??C)


构造函数可以是内联函数;






D)


构造函数不可以重载





6. C++


类体系中,不能被派生类继承的有(



b






A




转换函数




B




构造函数




C




虚函数




D




静态成员函数




??



7


、每个类(



c


)构造函数。




A


、只能有一个




B


、只可有公有的




C


、可以有多个




D


、只可有缺省的






8


、当类中有私有成员的时候,重载赋值操作符时,应声明为(



a


)函数。




A




友元




B







C




成员




D




多态





9


、在公有继承的情况下,基类成员在派生类中的访问权限(



b





A




受限制




B




保持不变




C




受保护




D




不受保护





10


、通过(



a


)调用虚函数时,采用动态绑定。




A




对象指针




B




对象名




C




成员名限定




D




派生类名





二、多选题(每个


2


分,共

< p>
10


分)



1

< p>
、下列哪些写法是对的,而且是常量。





ABCEGH

正确,


D


错误





A 125






B -.456






C 1.25e20




D 'AB'


E E6 F 0238 G 0xabcdef H



2.


下面哪些运算符不能被重载?




ABD




A.


做用域运算符“


::

< p>



B.


对象成员运算 符“


.




C.


指针成员运算符“


->




D.


三目运算符“


? :





3.


以下说法正确的是?





ABC





A.


头文件中的



ifndef/define/endif


是为了防止该头文件被重复引用。



B.


对于


#include




,编译器从标准库路径开始搜索



filename.h





对于


#include




filename.h

< p>



,编译器从用户的工作路径开始搜索



filename.h


C.


C++


语言支持函数重载,


C


语言不支持函数 重载。函数被


C++


编译后在库中的名字与

C





语言的不同。



D. fopen


函数只是把文件目录信息调入内存。




4. vector::iterator


重载了下面哪些运算符?




ACD





A. ++









B. >>


C. *


(前置)



D. ==



5


.已知系统中已定义函数


fp,


其原形是:




int fp(char c,int k=0,double d=100.0);



则下列函数中可以加以重载的是(



AD






fp();



fp(char c);



fp(char,int);



fp(char,int,int);



原因如下:



int k=0,double d=100.0



上面的形式已经指定



后两个参数等于可以省略




所以



fp


可 以有


3


钟调用方式:




fp(c)---> fp(char)



fp(c,k)---> fp(char int)



fp(c,k,d) ---> fp(char int double)



A


没有用到可以重载




D


的最后参数是

int,


可以重载



三、填空题( 每个


1


分,共


15

分)



1. new


< p>
__


delete_


__


对应,


malloc



_


fre


e___


对应,


他们 之间


_


不能


__

交叉混用。


calloc


的功


能是


_


_


动态分配内存,并初始化数值为< /p>


0


___



re alloc


的功能是


_


改变原有内存区 域的大小


_





2.


C++


的特性有


(抽象、封装、继承、多态性)


< br>3.


在用


class


定义一个类 时,数据成员和成员函数的默认访问权限是



private



4.


含有纯虚函数的类称为



抽象基类




5.


已知


int DBL(int n){return n + n;}



long DBL(long n){return n+n;}


是一个函数模

板的两个实例,则该函数模板的定义是




template T DBL(T n){


return n+n;}



6.


定义重载函数时,应在



参数的数量






类型




有所不同










7


当建立一个新对象时,程序自动调用



类的构造函数





四、判断题(每个


1


分,共


10


分)




1


)函数体内声明 的静态变量,至多只会被初始化一次。



r




2


)对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个

< p>
数、参数顺序以及返回值的类型不能完全相同。



r



3


)< /p>


inline


函数表示编译器一定会将函数体直接插入到调用此函 数的地方,这样可以


加快程序的运行速度。


w



(4



将类


A


所有构造函数的可访问性都限制为私有的,


那么在


main


函数中不可能得到

< br>类


A


的实例对象。



r





5



名字空间是可以多层嵌套的;


对于类


A


中的函数成员和数据成员,

< p>
它们都属于类



A


代表的 一层名字空间。


r





6


)若在类


Base


和派生类


Derived


中,分别声明一个 同名的整型成员变量


int x; ,


那么通过


Derived


类的实例对象,不可能输出基类


Bas e


中的变量


x


的值。

< br>


W





7


)若类


A


是类


B


的友员类,且类


B

< p>
是类


C


的友员类,那么类


A


也是类


C


的友员类。



w




8



虽然抽象类的析构函数可以 是纯虚函数,


但要实例化其派生类对象,


仍必须提供

< p>
抽象基类中析构函数的函数体。



w





9


)构造函数的初始化列表中的内容,不会影响构造对象中成员数据 的初始化顺序。



r



10



c++


可以任意使用


c


中的函数


w




五、简答题


(


每个


3


分,共

15



)


1





引用



与多态的关系?


引用是除指针外另一个可以产生多态效果的手段。


这意味 着,


一个基类的引用可以指向它的派生


类实例。



2.


函数模板与类模板有什么区别?



答:


函数模板的实例化是由编译程序在处理函数调用时自动完成 的,


而类模板的实例化必须由程


序员在程序中显式地指定。



3.


请讲一讲析构函数和虚函数的用法和作用?


< br>答


:


析构函数也是特殊的类成员函数,它没有返回类型, 没有参数,不能随意调用,也没有重载。


只是在类对象生命期结束的时候,


由系统自动调用释放在构造函数中分配的资源。


系统会默认生


成一个析构函数


.


另:



析构函数一般在对象撤消前做收尾工作,比如回收内存等工作,



虚函数一般用于多态


,


那么什么是多态


?


就是在运行时,能依据其类型确认调用那个函数,也称滞


后联编。



如果是纯虚函数,则纯粹是为了 在统一调用。含有纯虚函数的类称为抽象类


,


不能实例化对象< /p>


,



要用作接口类



如果将析构函数设为虚析构


,


则在 多态时


,


可以触发子类的析构函数


.


注意


:


子类重新定义父类的虚函数的做 法叫覆盖


,override,


而不是


overload(


重载


).

-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:44,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700019.html

C++考试题答案的相关文章