欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】国家二级C++机试(模板)模拟试卷5及答案解析.doc

    • 资源ID:1331937       资源大小:59KB        全文页数:9页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】国家二级C++机试(模板)模拟试卷5及答案解析.doc

    1、国家二级 C+机试(模板)模拟试卷 5 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.模板声明中的第一个符号总是关键字 temp1ateB.在模板声明中用和括起来的部分是模板的形参表C.类模板不能有数据成员D.在一定条件下函数模板的实参可以省略2.有如下函数模板定义: temp1atec1ass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中,错误的是( )。(分数:2.00)A.func(3,5);B.func(30,55);C.f

    2、unc(3,55);D.funcint(3,55);3.有如下函数模板: temp1atetypename Ttypename U T cast(Uu) return u; 其功能是将 U 类型数据转换为 T 类型数据。已知 i 为 int 型变量,下列对模板函数 cast 的调用中正确的是( )。(分数:2.00)A.cast(i),B.cast(i);C.castchar*,int(i);D.castdouble,int(i);4.关于在调用模板函数时模板实参的使用,下列表述正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都

    3、可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略5.有如下函数模板: temp1atec1ass TT square(T x)return x*x;) 其中 T 是( )。(分数:2.00)A.函数形参B.函数实参C.模板形参D.模板实参6.下列函数模版中的定义中,合法的是( )。(分数:2.00)A.temp1ate typename TT abs(T x)return x0?x:x;)B.temp1ate c1ass TT abs(

    4、T x)return x0?x:x;C.temp1ate Tc1ass T abs(T x)return x0?x:x;D.temp1ate T abs(T x)retum x0?x: x;)7.C+中的模板包括( )。(分数:2.00)A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板D.变量模板和对象模板8.下列有关模板的叙述中,正确的是( )。(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参9.下面是一个模板声明的开始部分: temp1utetypename T d

    5、ouble_ 由此可知( )。(分数:2.00)A.这可能是一个函数模板的声明B.这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明10.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.调用模版函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模版参数C.模板声明中的关键字 c1ass 都可以用关键字 typename 替代D.模板的形参表中可以有多个参数11.下列关于函数模板的描述中,错误的是( )。(分数:2.00)A.从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参

    6、的信息为准B.对于常规参数所对应的模板实参,任何情况下都不能省略C.虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D.模板参数表不能为空12.下列关于模板形参的描述中,错误的是( )。(分数:2.00)A.模板形参表必须在关键字 temp1ate 之后B.模板形参表必须用括弧()括起来C.可以用 c1ass 修饰模板形参D.可以用 typename 修饰模板形参13.下列关于类模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述了一组类D.类模板中只允许有一个类型参数14.下列关于模板的叙述中,正确的是( )

    7、。(分数:2.00)A.如果一个类中存在纯虚函数,这个类就是类模板B.函数模板不能有形式参数表C.类模板是一种参数化类型的类,是类的生成器D.类模板中不能包含构造函数15.有函数模板声明和一些变量定义如下: temp1atec1ass T1, c1ass T2, c1ass T3T1 sum(T2,T3); double d1,d2; 则下列调用中,错误的是( )。(分数:2.00)A.sumdouble, double, double(d1, d2);B.sumdouble, double(d1, d2);C.sumdouble(d1,d2);D.sum(d1,d2);16.下列关于函数模板

    8、的描述中,正确的是( )。(分数:2.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数17.有如下函数模板定义: temp1atetypename T1,Typename T2 T1 Fun(T2 n)return n*50; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为( )。(分数:2.00)A.FUN(9)B.FUN9C.FUNdouble9D.FUN9(double)18.下列关于模板的描述中,错误的是( )

    9、。(分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明19.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,b10; swap(a,b,10); 下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是( )。(分数:2.00)A.temp1atetypename T void swap(T a,T b, int size);B.temp1ate typename T void swap (int size,T a,T b);C.tem

    10、p1atetypename T1, typenameT2 void swap(T1 a, T2 b, int size;D.temp1atec1ass T1, c1ass T2 void swap (T1 a, T2 b, int size);20.在定义函数模板或类模板时,开头的保留字是( )。(分数:2.00)A.typenameB.temp1ateC.c1assD.typedef21.若有函数模板 mySwap 和一些变量定义如下: temp1atec1ass T void mySwap(T x,T y); double dl,d2; int il,i2; 下列对 mySwap 的调用中

    11、,错误的是( )。(分数:2.00)A.mySwap(il,i2)B.mySwap(dl,d2)C.mySwap(il,dl)D.mySwapint(12,d2)22.模板对类型的参数化提供了很好的支持,因此( )。(分数:2.00)A.类模板的主要作用是生成抽象类B.类模板实例化时,编译器将根据给出的模板实参生成一个类C.在类模板中的数据成员都具有同样类型D.类模板中的成员函数都没有返回值23.关于关键字 c1ass 和 typename,下列表述中正确的是( )。(分数:2.00)A.程序中的 typename 都可以替换为 c1assB.程序中的 c1ass 都可以替换为 typenam

    12、eC.在模板形参表中只能用 ty)ename 来声明参数的类型D.在模板形参表中只能用 c1ass 或 typename 来声明参数的类型24.下列关于类模板的模板参数的叙述中,错误的是( )。(分数:2.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型25.下列模板声明中,有语法错误的是( )。(分数:2.00)A.temp1atetypename TT fun(T x)return x;)B.temp1atetypename TT fun(T x,int n)return x*n

    13、,)C.temp1atec1ass TT fun(T *p)return *p;)D.temp1atec1ass TT c1assAT n;26.在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是( )。(分数:2.00)A.( )B. C. D. 27.有如下模板声明: temp1atetypename T1, typename T2 c1ass A; 下列声明中,与上述声明不等价的是( )。(分数:2.00)A.temp1atec1ass T1, c1ass T2 c1ass A;B.temp1atec1ass T1, typename T2 c1ass A;C.temp1

    14、atetypename T1, c1ass T2 c1ass A;D.temp1atetypename T1, T2 c1ass A;28.若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempdoublep2; MyTemplongp3 2; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是( )。(分数:2.00)A.1B.2C.3D.029.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对

    15、象30.下列类模板的定义中语法格式错误的是( )。(分数:2.00)A.temp1atec1ass Tc1ass Buffer*;B.temp1atetypename Tc1ass Buffer*/C.temp1atec1ass T1,c1ass T2c1ass Buffer*;D.temp1ateTc1ass Bufrer*;国家二级 C+机试(模板)模拟试卷 5 答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.模板声明中的第一个符号总是关键字 temp1ateB.在模板声明中用和括

    16、起来的部分是模板的形参表C.类模板不能有数据成员 D.在一定条件下函数模板的实参可以省略解析:解析:此题考查模板的概念。模板的一般说明形式如下:temp1ate 类型形参表函数返回值类型函数名(形参表)函数体,所以选项 A、B 正确。函数模板的实参在一定条件下是可以省略的,所以选项 C错误。2.有如下函数模板定义: temp1atec1ass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中,错误的是( )。(分数:2.00)A.func(3,5);B.func(30,55);C.func(3,55); D.funcint(3,55);解析:解析:

    17、此题考查的是函数模板的使用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。本题 C 选项中,编译系统从第一个参数“3”获得信息“int”和从第二个参数获得信息“double”两者矛盾,错误;A、B 选项正确;D 选项中,函数名后的int是模板实参表,编译系统会将 double 型的形参“55”自动转化成 int 类型。3.有如下函数模板: temp1atetypename Ttypename U T cast(Uu) return u; 其功能是将 U 类型数据转换为

    18、T 类型数据。已知 i 为 int 型变量,下列对模板函数 cast 的调用中正确的是( )。(分数:2.00)A.cast(i),B.cast(i);C.castchar*,int(i);D.castdouble,int(i); 解析:解析:此题考查的是模板函数的调用。本题中 cast()函数的实参 i 只能确定模板参数 U 的类型为int,而不能确定另外一个模板参数 T,故选项 A、B 错误;C+语言不允许隐式地将 int 转化为 char*,故选项 C 错误。4.关于在调用模板函数时模板实参的使用,下列表述正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模

    19、板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略 解析:解析:此题考查的是模板实参的省略。模板实参在以下集中情况中不能省略:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数的类型如何;虚拟类型参数没有出现在模板函数的形参表中;函数模板含有常规形参。5.有如下函数模板: temp1atec1ass TT square(T x)return x*x;) 其中 T 是( )。(分数:2.

    20、00)A.函数形参B.函数实参C.模板形参 D.模板实参解析:解析:此题考查的是函数模板。声明一个函数模板的格式是:temp1ate模板形参表声明函数声明,函数体其中的模板形参表声明是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename 参数名;class 参数名;类型修饰参数名。6.下列函数模版中的定义中,合法的是( )。(分数:2.00)A.temp1ate typename TT abs(T x)return x0?x:x;) B.temp1ate c1ass TT abs(T x)return x0?x:x;C.temp1ate Tc1ass T abs

    21、(T x)return x0?x:x;D.temp1ate T abs(T x)retum x0?x: x;)解析:解析:此题考查的是函数模板。声明一个函数模板的格式是:temp1ate模板形参表声明函数声明,其中的模板形参表声明是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:t)rpename 参数名;class 参数名;类型修饰参数名。7.C+中的模板包括( )。(分数:2.00)A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板 D.变量模板和对象模板解析:解析:此题考查的是模板。在 C+语言中,模板有两类:函数模板和类模板。8.下列有关模板的叙述中,正

    22、确的是( )。(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是个函数定义 C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参解析:解析:此题考查的是模板的概念。函数模板可以含有常规形参;函数模板的一个实例就是一个函数定义;类模板中的成员函数都是模板函数;在用类模板定义对象时,由于没有像函数实参表这样的额外信息渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。9.下面是一个模板声明的开始部分: temp1utetypename T double_ 由此可知( )。(分数:2.00)A.这可能是一个函数模板的声明 B.

    23、这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明解析:解析:此题考查的是函数模板的声明。声明一个函数模板的格式是:temp1ate模板形参表声明函数声明;定义类模板的格式是:temp1ate类型形参表 class类模板名;。10.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.调用模版函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模版参数C.模板声明中的关键字 c1ass 都可以用关键字 typename 替代 D.模板的形参表中可以有多个参数解析:解析:在声明模板参数是,

    24、关键字 typename 和 class 是可以互换的,两者是等价的。但选项 C 中说的是模版声明,在类模板声明中,替换可能会引起麻烦。11.下列关于函数模板的描述中,错误的是( )。(分数:2.00)A.从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准B.对于常规参数所对应的模板实参,任何情况下都不能省略C.虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D.模板参数表不能为空 解析:解析:在调用一个模板函数时,如果编译系统能够从模板实参表判断其中或全部虚拟类型参数对应的实际参数,而且它们正好是参数表中最后的若十参数,则模板实参表中的那几个参数可以省略。12.下

    25、列关于模板形参的描述中,错误的是( )。(分数:2.00)A.模板形参表必须在关键字 temp1ate 之后B.模板形参表必须用括弧()括起来 C.可以用 c1ass 修饰模板形参D.可以用 typename 修饰模板形参解析:解析:声明一个函数模板的格式是: temp1ate模板形参表声明函数声明,其中的模板形参表声明是由一个或多个模板形参组成(如果是多个,需要用逗号隔开)。 每个模板形参具有下面的几种形式: typename参数表 class参数名 类型修饰参数名 由此可知,模板形参表必须用括弧括起来,而不是(),所以选项 B)为正确答案。13.下列关于类模板的描述中,错误的是( )。(分

    26、数:2.00)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述了一组类D.类模板中只允许有一个类型参数 解析:解析:类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。一个类模板的格式是:temp1ate模板形参表声明类声明,模板形参表声明是由一个或多个模板形参组成。在定义类模板时,可以为模板形参表声明的最后若干个参数设置默认值。14.下列关于模板的叙述中,正确的是( )。(分数:2.00)A.如果一个类中存在纯虚函数,这个类就是类模板B.函数模板不能有形式参数表

    27、C.类模板是一种参数化类型的类,是类的生成器 D.类模板中不能包含构造函数解析:解析:对于函数模板,数据类型本身成了它的参数,是一种参数化类型的函数。对于类模板,数据类型本身成了它的参数,因而是一种参数化类型的类,是类的生成器。15.有函数模板声明和一些变量定义如下: temp1atec1ass T1, c1ass T2, c1ass T3T1 sum(T2,T3); double d1,d2; 则下列调用中,错误的是( )。(分数:2.00)A.sumdouble, double, double(d1, d2);B.sumdouble, double(d1, d2);C.sumdouble(

    28、d1,d2);D.sum(d1,d2); 解析:解析:虚拟类型参数 T1 没有出现在模板函数的形参表中,因此在调用时不可能从模板函数的实参表中获得相应的信息,因此 T1 无法省略。而在选项 D)中省略了。16.下列关于函数模板的描述中,正确的是( )。(分数:2.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数 解析:解析:函数模板是一系列相关函数的模型或样板,这些函数的源代码相同,只是所针对的数据类型不同。数据类型成了函数模板的参数,所以函数模板是一种参数化类型的函数。17

    29、.有如下函数模板定义: temp1atetypename 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。18.下列关于模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足

    30、一定条件时可以省略模板实参D.模板形参只能由关键字 typename 声明 解析:解析:同一模板的声明和定义中,模板形参的名字不必相同。每个模板类型形参前面必须带上关键字 typename/class,每个非类型形参前面必须带上类型名字。19.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,b10; swap(a,b,10); 下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是( )。(分数:2.00)A.temp1atetypename T void swap(T a,T b, int size);B.temp1ate typename T

    31、 void swap (int size,T a,T b); C.temp1atetypename T1, typenameT2 void swap(T1 a, T2 b, int size;D.temp1atec1ass T1, c1ass T2 void swap (T1 a, T2 b, int size);解析:解析:由题目中函数 swap(a,b,10)调用语句可知,在对函数模板 swap 的声明语句中,应将第一、二个参数设为数组变量,第三个参数为整型变量。20.在定义函数模板或类模板时,开头的保留字是( )。(分数:2.00)A.typenameB.temp1ate C.c1ass

    32、D.typedef解析:解析:定义函数模板或类模板时,开头的保留字是 temp1ate。21.若有函数模板 mySwap 和一些变量定义如下: temp1atec1ass T void mySwap(T x,T y); double dl,d2; int il,i2; 下列对 mySwap 的调用中,错误的是( )。(分数:2.00)A.mySwap(il,i2)B.mySwap(dl,d2)C.mySwap(il,dl) D.mySwapint(12,d2)解析:解析:按照函数模板 mySwap 的定义,变量 x 和 y 应该是同一类型,而在选项 C)的定义中变量 il和 dl 属于不同的数

    33、据类型。22.模板对类型的参数化提供了很好的支持,因此( )。(分数:2.00)A.类模板的主要作用是生成抽象类B.类模板实例化时,编译器将根据给出的模板实参生成一个类 C.在类模板中的数据成员都具有同样类型D.类模板中的成员函数都没有返回值解析:解析:此题考查了类模板的概念。在定义对象的过程中,系统会自动地根据需要生成相应的类定义,这种依据类模板生成具体类的过程称为类模板的实例化。23.关于关键字 c1ass 和 typename,下列表述中正确的是( )。(分数:2.00)A.程序中的 typename 都可以替换为 c1ass B.程序中的 c1ass 都可以替换为 typenameC.

    34、在模板形参表中只能用 ty)ename 来声明参数的类型D.在模板形参表中只能用 c1ass 或 typename 来声明参数的类型解析:解析:此题考查的是 class 和 typeniune 两个关键字。关键字 class 除了能用来定义类以外还能用来声明模板的虚拟类型参数。在用作声明虚拟类型参数时 typename 与 class 可以互换,但不能使用typename 来定义类:在模板形参表中除了可以用 t)rpename 和 class 声明虚拟类型参数外,还可以使用普通类型声明常规函数,故选项 C 错误。24.下列关于类模板的模板参数的叙述中,错误的是( )。(分数:2.00)A.模板

    35、参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型 解析:解析:此题考查的是模板参数。模板参数是一种参数化的数据模型,在模板类或模板函数中,只要使用数据类型的地方都能使用模板参数来代表一种未知的数据类型。所以,模板参数可以作为成员函数的局部变量类型。25.下列模板声明中,有语法错误的是( )。(分数:2.00)A.temp1atetypename TT fun(T x)return x;)B.temp1atetypename TT fun(T x,int n)return x*n,)C.temp1a

    36、tec1ass TT fun(T *p)return *p;)D.temp1atec1ass TT c1assAT n; 解析:解析:第四个选项是定义类模板的,但是 class 前面的 T 是多余的。对于第二个选项,同一个类的对象相乘还是同一个类的对象,但是可能要考虑溢出的问题。26.在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是( )。(分数:2.00)A.( )B. C. D. 解析:解析:声明一个类模板的格式是:temp1ate模板形参声明类声明。27.有如下模板声明: temp1atetypename T1, typename T2 c1ass A; 下列声明中,与

    37、上述声明不等价的是( )。(分数:2.00)A.temp1atec1ass T1, c1ass T2 c1ass A;B.temp1atec1ass T1, typename T2 c1ass A;C.temp1atetypename T1, c1ass T2 c1ass A;D.temp1atetypename T1, T2 c1ass A; 解析:解析:在类模板中,数据类型本身成了它的参数,因而是一种参数化类型的类,是类的生成器。声明一个类模板的格式是:temp1ate模板形参表声明类声明,模板形参表声明是由一个或多个模板形参组成。对于本题来说,模板形参表中包括类型 T1 和 T2 两个类

    38、型参数,而在选项 D)中 T1 说明其类型,而 T2 没有说明其类型,与题干中的模板说明不一致。28.若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempdoublep2; MyTemplongp3 2; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是( )。(分数:2.00)A.1B.2C.3 D.0解析:解析:p2 是一个 double 型的 MyTemp,p32是一个 long 型 MyTemp 数组,其中包括两个元素。所以共有 3 个 MyTemp 的实例。29.下列关于模板的叙述中,错误的是( )。(分数:2.00)A.调用

    39、模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象 解析:解析:在定义对象的过程中,编译系统会自动地根据需要生咸相应的类定义,这种依据类模板生成类定义的过程称为类模板的实例化。类模板实例化所生成的每一个类定义就是相应类模板的一个实例。30.下列类模板的定义中语法格式错误的是( )。(分数:2.00)A.temp1atec1ass Tc1ass Buffer*;B.temp1atetypename Tc1ass Buffer*/C.temp1atec1ass T1,c1ass T2c1ass Buffer*;D.temp1ateTc1ass Bufrer*; 解析:解析:定义类模板的一般形式是: temp1ate类型名参数名 1,类型名参数名 2, class 类名 类声明体; 模板的类型参数由关键字 class 或关键字 t,pename 及其后的标识符构成。在模板参数表中关键字 class 和 typename 的意义相同。


    注意事项

    本文(【计算机类职业资格】国家二级C++机试(模板)模拟试卷5及答案解析.doc)为本站会员(Iclinic170)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开