国家二级C++机试(运算符重载、模板和C++流)模拟试卷1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级C++机试(运算符重载、模板和C++流)模拟试卷1

(总分:58.00,做题时间:90分钟)

一、选择题(总题数:29,分数:58.00)

1.运算符重载是对已有的运算符赋予多重含义,因此( )。

(分数:2.00)

A.可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义

B.可以改变一个已有运算符的优先级和操作数个数

C.只能重载C++中已经有的运算符,不能定义新运算符√

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

解析:解析:此题考查的是运算符重载。运算符重载是针对C++语言原有的运算符进行的,并不能创造新的运算符。

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

(分数:2.00)

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

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

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

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

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

3.通过运算符重载,可以改变运算符原有的( )。

(分数:2.00)

A.操作数类型√

B.操作数个数

C.优先级

D.结合性

解析:解析:此题考查的是运算符重载。运算符重载具有保持其原有的操作数个数、优先级、语法结构和结合性不变的特性。故本题选项A正确。

4.下列运算符中,不能被重载的是( )。

(分数:2.00)

A.&&

B.!=

C..√

D.++

解析:解析:此题考查的是运算符重载。在C++中,只有.、*、->*、::、?:这五个运算符不能重载。

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

(分数:2.00)

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

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

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

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

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

6.下列有关运算符重载的叙述中,正确的是( )。

(分数:2.00)

A.运算符重载是多态性的一种表现√

B.C++中可以通过运算符重载创造新的运算符

C.C++中所有运算符都可以作为非成员函数重载

D.重载运算符时可以改变基结合性

解析:解析:此题考查的是运算符重载。C++中运算符重载是多态性的一种表现;运算符重载是针对C++原有运算符进行的,不可能通过重载创造出新的运算符;除了“.”、“.*”、“->”、“::”、“?:”这五个运算符外,其它运算符都可以重载;但“=”“[]”“->”及所有的类型转换运算符只能作为成员函数重载,运算符重载不可改变其结合性、操作数个数和优先级。

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

(分数:2.00)

A.有的运算符可以作为非成员函数重载

B.所有的运算符都可以通过重载而被赋予新的含义√

C.不得为重载的运算符函数的参数设置默认值

D.有的运算符只能作为成员函数重载

解析:解析:“运算符重载”是针对C++中原有运算符进行的,不可能通过重载创造新的运算符。除了*,.*,-〉*,::,?:,.这五个运算符以外,其他运算符都可以重载。

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

(分数:2.00)

A.操作数个数

B.操作数类型√

C.优先级

D.结合性

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

9.下列关于运算符函数的描述中,错误的是( )。

(分数:2.00)

A.运算符函数的名称总是以operator为前缀

B.运算符函数的参数可以是对象

C.运算符函数只能定义为类的成员函数√

D.在表达式中使用重载的运算符相当于调用运算符重载函数

解析:解析:C++把重载的运算符视为特殊的函数,称为运算符函数。编译系统能够依据使用运算符的不同环境,即参数(操作数)的数量或类型的差异,区分同一运算符的不同含义。运算符函数作为非成员函数时,所有的操作数必须出现在参数表中。

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

(分数:2.00)

A.::运算符不能重载

B.类型转换运算符只能作为成员函数重载

C.将运算符作为非成员函数重载时必须定义为友元√

D.重载[]运算符应完成“下标访问”操作

解析:解析:C++把重载的运算符视为特殊的函数,称为运算符函数。“运算符重载”是针对C++中原有运算符进行的,不可能通过重载创造出新的运算符。

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

(分数:2.00)

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

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

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

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

相关文档
最新文档