【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷7及答案解析.doc
《【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷7及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷7及答案解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(运算符重载、模板和 C+流)模拟试卷 7 及答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.下列关于函数模板的描述中,正确的是( )。(分数:2.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数2.有如下函数模板定义: templatetypename T1,Typename T2 T1 Fun(T2 n) return n*50; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 doub
2、le 型数据,则该调用应表示为( )。(分数:2.00)A.FUN(9)B.FUN9C.FUNdouble9D.FUN9(double)3.下列关于模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明4.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,b10; swap(a,b,10);下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是( )。(分数:2.00)A.templatetypename T
3、 void swap(T a,T b,int size);B.templatetypename T void swap(int size,T a,T b);C.templatetypename T1,typename T2 void swap(T1 a,T2 b,int size;D.templateclass T1,class T2 void swap(T1 a,T2 b,int size);5.在定义函数模板或类模板时,开头的保留字是( )。(分数:2.00)A.typenameB.templateC.classD.typedef6.若有函数模板 mySwap 和一些变量定义如下:( )。
4、 templateclass Tvoid mySwap(T x,T y); double d1,d2;int i1,i2; 下列对 mySwap 的调用中,错误的是(分数:2.00)A.mySwap(i1,i2)B.mySwap(d1,d2)C.mySwap(i1,d 1)D.mySwapint(i2,d2)7.模板对类型的参数化提供了很好的支持,因此( )。(分数:2.00)A.类模板的主要作用是生成抽象类B.类模板实例化时,编译器将根据给出的模板实参生成一个类C.在类模板中的数据成员都具有同样类型D.类模板中的成员函数都没有返回值8.关于关键字 class 和 typename,下列表述中
5、正确的是( )。(分数:2.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型9.下列关于类模板的模板参数的叙述中,错误的是( )。(分数:2.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型10.下列模板声明中,有语法错误的是( )。(分数:2.00)A.templatetypen
6、ame TT fun(T x)return x;B.templatetypename TT fun(T x,int n)return x*n;C.templateclass TT fun(T*p)return*p;D.templateclass TT classAT n;11.在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是( )。(分数:2.00)A.( )B. C. D. )12.有如下模板声明: templatetypename T 1,typename T2ClaSS A; 下列声明中,与上述声明不等价的是( )。(分数:2.00)A.templateclass T1
7、,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename T1,class T2class A;D.templatetypename T1,T2class A;13.若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempdoublep2; MyTemplongp32; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是( )。(分数:2.00)A.1B.2C.3D.014.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.调用模板函数时,有时
8、可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象15.下列类模板的定义中语法格式错误的是( )。(分数:2.00)A.templateclass Tclass Buffer*;B.templatetypename Tclass Buffer*;C.templateclass T1,class T2class Buffer*;D.templateTclass Buffer*;16.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插
9、入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输入流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象17.在语句 cindata;中,cin 是( )。(分数:2.00)A.C+的关键字B.类名C.对象名D.函数名18.如果利用 C+流进行输入输出,下面的叙述中正确的是( )。(分数:2.00)A.只能借助于流对象进行输入输出B.只能进行格式化输入输出C.只能借助于 cin 和 tout 进行输入输出D.只能使用运算符和进行输入输出19.下列有关 C+流的叙述中,错误的是( )。(分数:2.00)A.C+操作符 setw 设置的输出宽度永久有效B.C
10、+操作符 endl 可以实现输出的回车换行C.处理文件 IO 时,要包含头文件 fstreamD.进行输入操作时,eof()函数用于检测是否到达文件尾20.在语句“coutA:”中,cout 是( )。(分数:2.00)A.类名B.对象名C.函数名D.C+的关键字21.下列关于 C+流的描述中,错误的是( )。(分数:2.00)A.coutA表达式可输出字符 AB.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios base:out 模式打开的文件不存在时,将自动建立一个新文件22.在 C+中,cin 是一个( )。(分数:2.00)A
11、.类B.对象C.模板D.函数23.下列关于 C+预定义流对象的叙述中,正确的是( )。(分数:2.00)A.cin 是 C+预定义的标准输入流对象B.cin 是 C+预定义的标准输入流类C.cout 是 C+预定义的标准输入流对象D.cout 是 C+预定义的标准输入流类24.C+系统预定了 4 个用于标准数据流的对象,下列选项中不属于此类对象的是( )。(分数:2.00)A.coutB.cinC.cerrD.cset25.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。(分数:2.00)A.fstreamB.istrearaC.ostreamD.iomanip26
12、.在 C+中,打开一个文件时与该文件建立联系的是( )。(分数:2.00)A.流对象B.模板C.函数D.类27.下列关于输入输出流的叙述中,正确的是( )。(分数:2.00)A.一个文件流可以与一个数据文件相联系B.cin 是专门从键盘输入数据的输入流类C.流运算符用来从输入流中读取数据D.宽度设置的效果永久有效28.在 C+中既可以用于文件输入又可以用于文件输出的流类是( )。(分数:2.00)A.fstrearnB.ifstreamC.ofstreamD.iostream29.对于语句 coutendlx 中的各个组成部分,下列叙述中错误的是( )。(分数:2.00)A.cout是一个输出
13、流对象B.endl“的作用是输出回车换行C.x是一个变量D.称作提取运算符国家二级 C+机试(运算符重载、模板和 C+流)模拟试卷 7 答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.下列关于函数模板的描述中,正确的是( )。(分数:2.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数 解析:解析:函数模板是一系列相关函数的模型或样板,这些函数的源代码相同,只是所针对的数据类型不同。数据类型成了函数模板的参数,所以函数模板是一
14、种参数化类型的函数。2.有如下函数模板定义: templatetypename T1,Typename T2 T1 Fun(T2 n) return n*50; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为( )。(分数:2.00)A.FUN(9)B.FUN9C.FUNdouble9 D.FUN9(double)解析:解析:根据函数模板的定义,在选项 C 的调用中,把 double 类型传递给 T1,int 型传递给 T2。3.下列关于模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参
15、数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明 解析:解析:同一模板的声明和定义中,模板形参的名字不必相同。每个模板类型形参前面必须带上关键字 typenameclass,每个非类型形参前面必须带上类型名字。4.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,b10; swap(a,b,10);下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是( )。(分数:2.00)A.templatetypename T void swap(T a,T b,int size);B.templatetype
16、name T void swap(int size,T a,T b); C.templatetypename T1,typename T2 void swap(T1 a,T2 b,int size;D.templateclass T1,class T2 void swap(T1 a,T2 b,int size);解析:解析:由题目中函数 swap(a,b,10)调用语句可知,在对函数模板 swap 的声明语句中,应将第一、二个参数设为数组变量,第三个参数为整型变量。5.在定义函数模板或类模板时,开头的保留字是( )。(分数:2.00)A.typenameB.template C.classD.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 机试 运算 重载 模板 模拟 试卷 答案 解析 DOC
