国家二级C++机试(运算符重载、C++流)模拟试卷2(题后含答案及解析).docVIP

国家二级C++机试(运算符重载、C++流)模拟试卷2(题后含答案及解析).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

国家二级C++机试(运算符重载、C++流)模拟试卷2(题后含答案及解析)

题型有:1.选择题

选择题

1.关于运算符重载,下列表述中正确的是()。

A.C++已有的任何运算符都可以重载

B.运算符函数的返回类型不能声明为基本数据类型

C.在类型转换符函数的定义中不需要声明返回类型

D.可以通过运算符重载来创建C++中原来没有的运算符

正确答案:C

解析:此题考查的是运算符重载的概念。C++语言规定,“.”、“.*”、“->*”、“::”和“?:”这五个运算符不能被重载,故选项A错误:运算符函数的返回类型由该运算符所组成的表达式的值的类型来决定,故选项B说法是错误的;运算符重载是针对原有运算符,并不能通过重载创造出新的运算符,故选项D错误。知识模块:运算符重载

2.下列关于运算符重载的描述中,正确的是()。

A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符

B.一元运算符只能作为成员函数重载

C.二元运算符重载为非成员函数时,参数表中有一个参数

D.C++中可以重载所有的运算符

正确答案:A

解析:此题考查的是运算符的重载。运算符重载为成员函数时,形参个数一般为运算符元数减1:重载为非成员函数时,形参个数一般和运算符元数相等。所以二元运算符重载为非成员函数时,参数表中应有两个参数,C选项错误;运算符重载为成员函数,若参数表中无参数,重载的是一元运算符,选项A正确:一元运算符中,“-”(取负)、“++”、“--”等均可重载为成员函数;C++语言中,“.”、“.*”、“->*”、“::”、“?:”五个运算符不能重载。知识模块:运算符重载

3.运算符重载时不需要保持的性质是()。

A.操作数个数

B.操作数类型

C.优先级

D.结合性

正确答案:B

解析:运算符重载应该体现为原有运算符的功能在新的数据类型上的延伸。重载的运算符保持原有运算符的操作个数、优先级和结合性三个最基本的特征。知识模块:运算符重载

4.下列关于运算符重载的描述中,错误的是()。

A.可以通过运算符重载在C++中创建新的运算符

B.赋值运算符只能重载为成员函数

C.运算符函数重载为类的成员函数时,第一操作数是该类对象

D.。重载类型转换运算符时不需要声明返回类型

正确答案:A

解析:运算符重载应尽可能保持其原有的基本语义,而不是创建新的运算符。重载的运算符应该体现为原运算符的功能在新数据类型上的延伸,它的使用应当使程序中算法的表达式显得更流畅、自然,使阅读程序的人在不借助于其他说明资科的情况下就能够正确理解。知识模块:运算符重载

5.已知在一个类体中包含如下函数原型:VOLUMEoperator-(VOLUME)const;下列关于这个函数的叙述中,错误的是()。

A.这是运算符.的重载运算符函数

B.这个函数所重载的运算符是一个一元运算符

C.这是一个成员函数

D.这个函数不改变类的任何数据成员的值

正确答案:B

解析:此题考查的是运算符的重载。运算符“-”有一元和二元两种,在本题中它作为一个二元运算符,所以它不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。知识模块:运算符重载

6.有如下的运算符重载函数定义:doubleoperator+(inti,intk){returndouble(i+k);}但定义有错误,对这个错误最准确的描述是()。

A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的

B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

C.没有将运算符重载函数声明为某个类的友元

D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

正确答案:D

解析:此题考查的是运算符的重载。C++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A错误;运算符重载对返回值类型没有限制,故选项B错误;C++并不强制要求非成员重载的运算符一定是某个类的友元,所以C选项错误;题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个int型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择D选项。知识模块:运算符重载

7.下列是重载乘法运算符的函数原型声明,其中错误的是()。

A.MyClassoperator*(double,double);

B.MyClassoperator*(double,MyClass);

C.MyClassoperator*(MyClass,double);

D.MyClassoperator*(MyClass,MyClass);

正确答案:A

文档评论(0)

iwen博览 + 关注
实名认证
文档贡献者

iwen博览

1亿VIP精品文档

相关文档