计算机二级

假设有函数模板定义如下,下列各选项中正确的是( )。 Template T Max(T a,T b,T假设有函数模板定义如下,下列各选项中正确的是( )。 Template <class T> T Max(T a,T b,T c) { if(a<b) {if(b<c) return c; else return b;} else {if(a<c) return c; else return a;} }A.float x,y,z;float max;max=Max(x,y,z);B.float x;int

题目
假设有函数模板定义如下,下列各选项中正确的是( )。 Template T Max(T a,T b,T

假设有函数模板定义如下,下列各选项中正确的是( )。 Template <class T> T Max(T a,T b,T c) { if(a<b) {if(b<c) return c; else return b;} else {if(a<c) return c; else return a;} }

A.float x,y,z;float max;max=Max(x,y,z);

B.float x;int y,z;float max;max=Max(x,y,z);

C.float x;double y,z;float max;max=Max(x,y,z);

D.三个选项都正确

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 25 )有如下模板声明:

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;


正确答案:D

第2题:

有如下函数模板:templateT square(T x){return x*x;}其中T是A.函数形参B.函数实参C.模

有如下函数模板:template<class T>T square(T x){return x*x;}其中T是

A.函数形参

B.函数实参

C.模板形参

D.模板实参


正确答案:C
解析:本题考查的知识点是:函数模板。声明一个函数模板的格式是:
template模板形参表声明>>函数声明>
其中的模板形参表声明>是由一个或多个模板形参>组成。每个模板形参>具有下面几种形式:
(1)typename参数名>
(2)class参数名>
(3)类型修饰>参数名>
由此可见,题中的T是模板形参。故本题应该选择C。

第3题:

下列是模板声明的开始部分,其中正确的是A.templateB.templateC.template

下列是模板声明的开始部分,其中正确的是

A.template<T>

B.template<class T1,T2>

C.template<class T1,class T2>

D.template<class T1;class T2>


正确答案:C
解析:本题考核模板的声明。模板声明的开始部分为:template类型形参表>。其中,类型形参表>可以包含基本数据类型,也可以包含类类型。类型形参需要加前缀class。如果类型形参多于一个,则每个类型形参都要使用class。形参表中的参数是惟一的,而且至少在函数定义体中出现厂次。形参表中至少有一个形参的类型必须用类型形参表>中的形参来定义。所以只有C选项的声明是正确的。

第4题:

下列函数模板定义中错误的是A.templateB.template Q F(Q x){return Q+x;} Q F

下列函数模板定义中错误的是

A.template<class Q>

B.template<class Q> Q F(Q x){return Q+x;} Q F(Q x){return x+x;}

C.template<class T>

D.template<class T> T F(T x){return x * x;} bool F(T x){return x>1;}


正确答案:A
解析:在函数模板定义中,类型参数不能参与运算。

第5题:

下列对模板的声明,正确的是()。A.templateB.templateC.template

下列对模板的声明,正确的是( )。

A.template<T>

B.template<classT1,T2>

C.template<class T1,classT2>

D.template<class T1;class T2>


正确答案:C
解析:模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

第6题:

有如下函数模板声明:templateT Max(T a,T b){return(a>=b)?a:b;}下列对函数模板Max(

有如下函数模板声明: template<typename T> T Max(T a,T b){return(a>=b)?a:b;} 下列对函数模板Max()的调用中错误的是( )。

A.Max(3.5,4.5)

B.Max(3.5,4)

C.Max(double)(3.5,4.5)

D.Max<double>(3.5,4)


正确答案:B
解析: 引用模板函数和引用一般的函数在语法形式上没有任何区别。说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。

第7题:

下列函数模板的定义中,合法的是A.template T abs(T x){return x<0?-x:x;}B.templat

下列函数模板的定义中,合法的是

A.template <typename T> T abs(T x){return x<0?-x:x;}

B.template 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;}


正确答案:A
解析:本题考查的知识点是:函数模板。声明一个函数模板的格式是:
template模板形参表声明>>函数声明>
其中的模板形参表声明>是由一个或多个模板形参>组成。每个模板形参>具有下面几种形式:
(1)typename参数名>
(2)class参数名>
(3)类型修饰>参数名>
故本题应该选择A。

第8题:

有如下函数模板声明: template T Max(Ta,Tb){return(a>=b)?a:b;) 下列对函

有如下函数模板声明: template<typename T> T Max(Ta,Tb){return(a>=b)?a:b;) 下列对函数模扳Max的调用中错误是

A.Max(3.5,4,5)

B.Max(3.5,4)

C.Max<double>(3.5,4.5)

D.Max<double>(3.5,4)


正确答案:B

第9题:

下列对模板的声明中,正确的是A.templateB.templateC.template

下列对模板的声明中,正确的是

A.template<T>

B.template<class T1,T2>

C.template<class T1,class T2>

D.tamplate<class T1;class T2>


正确答案:C
解析:本题考核模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。

第10题:

下列对模板的声明中正确的是()。A.templateB.templateC.template

下列对模板的声明中正确的是( )。

A.template<T>

B.template<class T1,T2>

C.template<classT1,class T2>

D.template<class T1;class T2>


正确答案:C

更多相关问题