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