[计算机类试卷]国家二级C++机试(运算符重载、C++流)模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级C++机试(运算符重载、C++流)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(运算符重载、C++流)模拟试卷1及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(运算符重载、 C+流)模拟试卷 1及答案与解析 一、选择题 1 运算符重载是对已有的运算符赋予多重含义,因此 ( )。 ( A)可以对基本类型 (如 int类型 )的数据,重新定义 “+”运算符的含义 ( B)可以改变一个已有运算符的优先级和操作数个数 ( C)只能重载 C+中已经有的运算符,不能定义新运算符 ( D) C+中已经有的所有运算符都可以重载 2 下列运算符中,不能被重载的是 ( )。 ( A) & ( B) != ( C) ( D) + 3 下列关于运算符重载的 叙述中,错误的是 ( )。 ( A)有的运算符可以作为非成员函数重载 ( B)所有的运算符都可以通
2、过重载而被赋予新的含义 ( C)不得为重载的运算符函数的参数设置默认值 ( D)有的运算符只能作为成员函数重载 4 下列关于运算符重载的描述中,错误的是 ( )。 ( A):运算符不能重载 ( B)类型转换运算符只能作为成员函数重载 ( C)将运算符作为非成员函数重载时必须定义为友元 ( D)重载 运算符应完成 “下标访问 ”操作 5 下列关于运算符重载的叙述中,正确的是 ( )。 ( A) 通过运算符重载,可以定义新的运算符 ( B)有的运算符只能作为成员函数重载 ( C)若重载运算符 +,则相应的运算符函数名是 + ( D)重载一个二元运算符时,必须声明两个形参 6 有如下程序: #inc
3、lude iostream using namespace std; class Complex double re, im; public: Complex(double r, double i): re(r), im(i) double real()constreturn re; double image()constreturn im; Complex& operator+=、 (Complex a) re+=a re; im+=a im; return *this; ; ostream& operator (ostream& s, const Complex& z) return s
4、( z real() , z image() ); int main() Complex x(1, -2), y(2, 3); cout (x+=y) endl; return 0; 执行这个程序的输出结果是 ( )。 ( A) (1, -2) ( B) (2, 3) ( C) (3, 5) ( D) (3, 1) 7 下列运算符函数中肯定不属于类 FunNumber的成员函数的是 ( )。 ( A) int operator-(FunNumber); ( B) FunNumber operator-(); ( C) FunNumber operator-(int); ( D) int ope
5、rator-(FunNumber, FunNumber); 8 有如下程序: #include iostream Using namespace std; ClassAmount int amount; public; Amount(int n=0): amount(n) Int getAmount()constreturn amount; Amount &operator+=(Amount a) amount+=a amount; return; ; int main() Amount x(3), y(7); x+=y; cout x getAmount() endl; return 0;
6、已知程序的运行结果是 10,则下划线处缺失的表达式是 ( )。 ( A) *this ( B) this ( C) &amount ( D) amount 9 有如下程序: include iostream using namespace std; class Pair int m; int n; public: Pair(int i, int j): m(i), n(j) bool operator (Pair p)const;须在类体外给出定义 ; int main() Pair p1(3, 4), p2(4, 3), p3(4, 5); cout (p1 p2) (p2 p1) (p2
7、p3) (p3 p2); return 0; 运算符函数。 perator的功能是比较两个 Pair对象的大小,当左边对象大时,返回true,否则返回 false。比较规则是首先比较两对象的 m成员, m大者为大:当 m相等时比较 n, n大者为大。程序输出 0101,下列对运算符重载函数的正确定义是( )。 ( A) bool Pair: operator (Pair p)const if(m!=p m)return m p m; return n p-n; ( B) bool Pair: operator (Pair p) if(m!=p m)return m p m; return n
8、p n; ( C) bool Pair: operator (Pair p)const if(m p m)return true; return n p n; ( D) bool Pair: operator (Pair p) if(m p m)return true; return n p n; 10 将运算符 “+”重载为非成员函数,下列原型声明中,错误的是 ( )。 ( A) MycloCk operator+(MyClock, long); ( B) MycloCk operator+(MyClock, MyClock); ( C) MycloCk operator+(long, lo
9、ng); ( D) MycloCk operator+(long, MyClock); 11 有类定义如下: class Type public: Type(int i=0); Type operator-(int); friend Type operator+(Type, Type); private: int val; ; 若有对象定义 Type c1;则下列语句序列中,错误的是 ( )。 ( A) Type(3)+c1; ( B) c1+Type(3); ( C) 3-c1; ( D) c1-3; 12 有如下类模板定义: template typename T class BigNum
10、ber long n; public: BigNumber(T i): n(i) BigNumber operator+(BigNumber b) return BigNumber(n+b n); 已知 b1、 b2是 BigNumber的两个对象,则下列表达式中错误的是 ( )。 ( A) b1+b2 ( B) b1+3 ( C) 3+b1 ( D) 3+3 13 若为 Fraction类重载前增 1运算符 +,应在类体中将其声明为 ( )。 ( A) Fraction& operator+(); ( B) Fraction& operator+(int); ( C) friend Frac
11、tion& operator+(); ( D) friend Fraction& operator+(int); 14 已知将运算符 “+”和 “*”作为类 Complex的成员函数重载,设 c1和 c2是类Complex的对象,则表达式 c1+c2*c1等价于 ( )。 ( A) c1 operator*(c2 operator+(c1) ( B) c1 operator+(c2 operator*(c1) ( C) c1 operator*(c1 operator+(c2) ( D) c2 operator+(c1 operator*(c1) 15 在类中重载赋值运算符时,应将其声明为类的
12、 ( )。 ( A)静态函数 ( B)友元函数 ( C)成员函数 ( D)构造函数 16 如果利用 C+流进行输入输出,下面的叙述中正确的是 ( )。 ( A)只能借助于流对象进行输入输出 ( B)只能进行格式化输入输出 ( C)只能借助于 cin和 cout进行输入输出 ( D)只能使用运算符和进行输入输出 17 下列关于 C+流的描述中,错误的是 ( )。 ( A) cout A表达式可输出字符 A ( B) eof()函数可以检测 是否到达文件尾 ( C)对磁盘文件进行流操作时,必须包含头文件 fstream ( D)以 ios_base: out模式打开的文件不存在时,将自动建立一个新
13、文件 18 C+系统预定了 4个用于标准数据流的对象,下列选项中不属于此类对象的是( )。 ( A) cout ( B) cin ( C) cerr ( D) cset 19 下列关于输入输出流的叙述中,正确的是 ( )。 ( A)一个文件流可以与一个数据文件相联系 ( B) cin是专门从键盘输入数据的输入流类 ( C)流运算符用来从输入流中 读取数据 ( D)宽度设置的效果永久有效 20 有如下程序: #include iostream using namespace std; int main() cout fill(*); cout width(6); cout fill( ); co
14、ut 123 endl; return 0; 执行后的输出结果是 ( )。 ( A) 123 ( B) 123 ( C) *123 ( D) 123* 21 下列关于输入流类成员函数 getline()的描述中,错误 的是 ( )。 ( A)该函数是用来读取键盘输入的字符串的 ( B)该函数读取的字符串长度是受限制的 ( C)该函数读取字符串时,遇到终止符便停止 ( D)该函数读取字符串时,可以包含空格 22 已知一程序运行后执行的第一个输出操作是 cout setw(10) setfill(*) 1234; 则此操作的输出结果是 ( )。 ( A) 1234 ( B) *1234 ( C)
15、*1234 ( D) 1234* 23 假定下列语句都是程序运行后首次执行 的输出语句,其中输出结果与另外三条语句不同的语句是 ( )。 ( A) cout setfill(*) 123 setw(9) 321; ( B) cout setfill(*) setw(6) left 123 setw(6) right 321; ( C) cout 123 setfill(*) setw(6) 321; ( D) cout setfill(*) setw(9) left 123 321; 24 有如下程序: #include iostream #include iomanip using name
16、space std; int main() cout setw(10) setfill(x) setprecision(8) left; cout 12 3456793 _ 98765; return 0; 若程序的输出是 12 345679x98765xxxxx,则划线处缺失的部分是 ( )。 ( A) setw(10) ( B) setfill(x) ( C) setprecision(8) ( D) right 25 下列控制对齐方式的操作符中,错误的是 ( )。 ( A) internal ( B) center ( C) left ( D) right 26 语句 ofstream
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 运算 重载 模拟 答案 解析 DOC
