[计算机类试卷]国家二级C++机试(运算符重载)模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C++机试(运算符重载)模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(运算符重载)模拟试卷5及答案与解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(运算符重载)模拟试卷 5及答案与解析 一、选择题 1 运算符重载是对已有的运算符赋予多重含义,因此 ( )。 ( A)可以对基本类型 (如 int类型 )的数据,重新定义 “+”运算符的含义 ( B)可以改变一个已有运算符的优先级和操作数个数 ( C)只能重载 C+中已经有的运算符,不能定义新运算符 ( D) C+中已经有的所有运算符都可以重载 2 关于运算符重载,下列表述中正确的是 ( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声明为基本数 据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建
2、C+中原来没有的运算符 3 通过运算符重载,可以改变运算符原有的 ( )。 ( A)操作数类型 ( B)操作数个数 ( C)优先级 ( D)结合性 4 下列运算符中,不能被重载的是 ( )。 ( A) ,下列关于这个函数的叙述中,错误的是 ( )。 ( A)这是运算符的重载运算符函数 ( B)这个函数所重载的运算符是一个一元运算符 ( C)这是一个成员函数 ( D)这个函数不改变类的任何数据成员的值 15 在表达式 x+y*z中, +是作为成员函数重载的运算符, *是作为非成员函数重载的运算符。下列叙述中正确的是 ( )。 ( A)。 perator+有两个参数, operator*有两个参数
3、 ( B) operator+有两个参数, operator*有一个参数 ( C) operator+有一个参数, operator*有两个参数 ( D) operator+有一个参数, operator*有一个参数 16 有如下程序: #inc1ude iostream using namespace std; c1ass Comp1ex double re, im; public: Comp1ex(double r,double i):re(r), im(i) double real()constreturn re, double image()constreturn im; Comp1e
4、x im+=a im; return *this; ; ostream cout (x+=y) end1; retum 0; 执行这个程序的输出结果是 ( )。 ( A) (1,2) ( B) (2,3) ( C) (3,5) ( D) (3,1) 17 有如下的运算符重载函数定义: double operator +(int i,int k) return double(i+k); 但定义有错误,对这个错误最准确的描述是 ( )。 ( A) +只能作为成员函数重载,而这里的 +是作为非成员函数重载的 ( B)两个 int型参数的和也应该是 int型,而这里将 +的返回类型声明为 double
5、 ( C)没有将运算符重载函数声明为某个类的友元 ( D) C+已经提供了求两个 int型数据之和的运算符 +,不能再定义同样的运算符 18 下面程序中对一维坐标点类 Point进行运算符重载 #inc1ude iostream using namespace std; c1ass Point public: Point(int val)x=val,) Pointreturn *this; Point operator+(int)Point old=*this; H(*this);return old;) Int GetX()const return x, private: int X; );
6、 int main() Point a(10); count (+a) GetX(); cout a+ GetX(); retum0; 编译和运行情况是 ( )。 ( A)运行时输出 1011 ( B)运行时输出 1111 ( C)运行时输出 1112 ( D)编译有错 19 下列运算符函数中肯定不属于类 FunNumber的成员函数的是 ( )。 ( A) int operator(FunNumber); ( B) FunNumber operator0; ( C) FunNumberoperator(int), ( D) int operator(FunNumber; FunNumber)
7、; 20 下列是重载乘法运算符的函数原型声明,其中错误的是 ( )。 ( A) MyClass operator*(double,double); ( B) MyClass operator*(double,MyClass); ( C) MyClassoperator*(MyClass,double); ( D) MyClass operator*(MyClass,MyClass); 21 己知 Value是一个类, Value是 Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是 ( )。 ( A) Value operator+(Value v,int i); (
8、B) Value operator+(Value v=value, int i); ( C) Value operator+(Value vint i=0); ( D) Value operator+(Value v=value,int i=0), 国家二级 C+机试(运算符重载)模拟试卷 5答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 此题考查的是运算符重载。运算符重载是针对 C+语言原有的运算符进行的,并不能创造新的运算符。 【知识模块】 运算符重载 2 【正确答案】 C 【试题解析】 此题考查的是运算符重载的概念。 C+语言规定, “, ”、 “*”、 “ ”、 “ ”和
9、“?: ”这五个运算符不能被重载,故选项 A错误;运算符函数的返回类型由该运算符所组成的表达式的值的类型来决定,故选项 B说法是错误的;运算符重载是针对原有运算符,并不能通过重载创造出新的运算符,故选项 D错误。 【知识模块】 运算符重载 3 【正确答案】 A 【试题解析】 此题考查的是运算符重载。运算符重载具有保持其原有的操作数个数、优先级、语法结构和结合性不变的特性。故本题选项 A正确。 【知识模块】 运算符重载 4 【正确答案】 C 【试题解析】 此题考查的是运算符重载。在 C+中,只有、 *、 *、 、?:这五个运算符不能重载。 【知识模块】 运算符重载 5 【正确答案】 A 【试题解
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 运算 重载 模拟 答案 解析 DOC
