[计算机类试卷]国家二级C++机试(模板)模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C++机试(模板)模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(模板)模拟试卷5及答案与解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(模板)模拟试卷 5及答案与解析 一、选择题 1 下列关于模板的叙述中,错误的是 ( )。 ( A)模板声明中的第一个符号总是关键字 temp1ate ( B)在模板声明中用和括起来的部分是模板的形参表 ( C)类模板不能有数据成员 ( D)在一定条件下函数模板的实参可以省略 2 有如下函数模板定义: temp1ate c1ass T T func(T x,T y)return x*x+y*y; 在下列对 func的调用中,错误的是 ( )。 ( A) func(3,5); ( B) func(3 0,5 5); ( C) func(3,5 5); ( D) func int
2、 (3,5 5); 3 有如下函数模板: temp1ate typename Ttypename U T cast(Uu) return u; 其功能是将 U类型数据转换为 T类型数据。已知 i为 int型变量,下列对模板函数 cast的调用中正确的是 ( )。 ( A) cast(i), ( B) cast (i); ( C) cast char*,int (i); ( D) cast double,int (i); 4 关于在调用模板函数时模板实参的使用,下列表述正确的是 ( )。 ( A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于
3、虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 ( D)对于常规参数所对应的模板实参,任何情况下都不能省略 5 有如下函数模板: temp1ate c1ass T T square(T x)return x*x;) 其中 T是 ( )。 ( A)函数形参 ( B)函数实参 ( C)模板形参 ( D)模板实参 6 下列函数模版中的定义中,合法的是 ( )。 ( A) temp1ate typename T T abs(T x)return x 0? x:x;) ( B) temp1ate c1ass
4、 T T abs(T x)return x 0? x:x; ( C) temp1ate T c1ass T abs(T x)return x 0? x:x; ( D) temp1ate T abs(T x)retum x 0? x: x;) 7 C+中的模板包括 ( )。 ( A)对象模板和函数模板 ( B)对象模板和类模板 ( C)函数模板和类模板 ( D)变量模板和对象模板 8 下列有关模板的叙述中,正确的是 ( )。 ( A)函数模板不能含有常规形参 ( B)函数模板的一个实例就是 个函数定义 ( C)类模板的成员函数不能是模板函数 ( D)用类模板定义对象时,绝对不能省略模板实参 9
5、下面是一个模板声明的开 始部分: temp1ute typename T double_ 由此可知 ( )。 ( A)这可能是一个函数模板的声明 ( B)这可能是一个类模板的声明 ( C)这既可能是一个函数模板的声明,也可能是一个类模板的声明 ( D)这肯定是一个错误的模板声明 10 下列关于模板的叙述中,错误的是 ( )。 ( A)调用模版函数时,在一定条件下可以省略模板实参 ( B)可以用 int、 double这样的类型修饰符来声明模版参数 ( C)模板声明中的关键字 c1ass都可以用关键字 typename替代 ( D)模板的形参表中可以有多个参数 11 下列关于函数模板的描述中,错
6、误的是 ( )。 ( A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准 ( B)对于常规参数所对应的模板实参,任何情况下都不能省略 ( C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参 ( D)模板参数表不能为空 12 下列关于模板形参的描述中,错误的是 ( )。 ( A)模板形参表必须在关键字 temp1ate之后 ( B)模板形参表必须用括弧 ()括起来 ( C)可以 用 c1ass修饰模板形参 ( D)可以用 typename修饰模板形参 13 下列关于类模板的描述中,错误的是 ( )。 ( A)类模板的成员函数都是模板函数 ( B)可以为类模板参数
7、设置默认值 ( C)类模板描述了一组类 ( D)类模板中只允许有一个类型参数 14 下列关于模板的叙述中,正确的是 ( )。 ( A)如果一个类中存在纯虚函数,这个类就是类模板 ( B)函数模板不能有形式参数表 ( C)类模板是一种参数化类型的类,是类的生成器 ( D)类模板中不能包含构造函数 15 有函数模 板声明和一些变量定义如下: temp1ate c1ass T1, c1ass T2, c1ass T3 T1 sum(T2,T3); double d1, d2; 则下列调用中,错误的是 ( )。 ( A) sum double, double, double (d1, d2); ( B
8、) sum double, double (d1, d2); ( C) sum double (d1,d2); ( D) sum(d1, d2); 16 下列关于函数模板的描述中,正确的是 ( )。 ( A)函数模板是一个实例函数 ( B)使用函数模板定义的函数没有返回类型 ( C)函数模板的类型参数与函数的参数相同 ( D)通过使用不同的类型参数,可以从函数模板得到不同的实例函数 17 有如下函数模板定义: temp1ate typename T1,Typename T2 T1 Fun(T2 n)return n*5 0; 若要求以 int型数据 9作为函数实参调用该模板,并返回一个 dou
9、ble型数据,则该调用应表示为 ( )。 ( A) FUN(9) ( B) FUN 9 ( C) FUN double 9 ( D) FUN 9 (double) 18 下列关于模板的描述中,错误的是 ( )。 ( A)类模板的成员函数都是模板函数 ( B)函数模板是一种参数化类型的函数 ( C)满足一定条件时可以省略模板实参 ( D)模板形参只能由关键字 typename声明 19 已知主函数中通过如下语句序列实现对函数模板 swap的调用: int a10, b10; swap(a, b, 10); 下列对函数模板 swap的声明中,会导致上述语句序 列发生编译错误的是 ( )。 ( A)
10、 temp1ate typename T void swap(T a,T b, int size); ( B) temp1ate typename T void swap (int size,T a,T b); ( C) temp1ate typename T1, typenameT2 void swap(T1 a, T2 b, int size; ( D) temp1ate c1ass T1, c1ass T2 void swap (T1 a, T2 b, int size); 20 在定义函数模板或类模板时,开头的保留字是 ( )。 ( A) typename ( B) temp1ate
11、( C) c1ass ( D) typedef 21 若有函数模板 mySwap和一些变量定义如下: temp1ate c1ass T void mySwap(T x,T y); double dl,d2; int il,i2; 下列对 mySwap的调用中,错误的是 ( )。 ( A) mySwap(il,i2) ( B) mySwap(dl,d2) ( C) mySwap(il,dl) ( D) mySwap int (12,d2) 22 模板对类型的参数化提供了很好的支持,因此 ( )。 ( A)类模板的主要作用是生成抽象类 ( B)类模板实例化时,编译器将根据给出的模板实参生成一个类
12、( C)在类模板中的数据成员都具有同样类型 ( D)类模板中的成员函数都没有返回值 23 关于关键字 c1ass和 typename,下列表述中正确的是 ( )。 ( A)程序中的 typename都可以替换为 c1ass ( B)程序中的 c1ass都可以替换为 typename ( C)在模板形参表中只能用 ty)ename来声明参数的类型 ( D)在模板形参表中只能用 c1ass或 typename来声明参数的类型 24 下列关于类模板的模板参数的叙述中,错误的是 ( )。 ( A)模板参数可以作为数据成员的类型 ( B)模板参数可以作为成员函数的返回类型 ( C)模板参数可以作为成员函
13、数的参数类型 ( D)模板参数不能作为成员函数的局部变量的类型 25 下列模板声明中,有语法错误的是 ( )。 ( A) temp1ate typename T T fun(T x)return x;) ( B) temp1ate typename T T fun(T x,int n)return x*n,) ( C) temp1ate c1ass T T fun(T *p)return *p;) ( D) temp1ate c1ass T T c1assAT n; 26 在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是( )。 ( A) ( ) ( B) ( C) ( D)
14、 27 有如下模板声明: temp1ate typename T1, typename T2 c1ass A; 下列声明中,与上述声明不等价的是 ( )。 ( A) temp1ate c1ass T1, c1ass T2 c1ass A; ( B) temp1ate c1ass T1, typename T2 c1ass A; ( C) temp1ate typename T1, c1ass T2 c1ass A; ( D) temp1ate typename T1, T2 c1ass A; 28 若 MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTemp double
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 模板 模拟 答案 解析 DOC
