计算机二级

有如下函数模板声明: template<typenameT> TMax(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)

题目

有如下函数模板声明: template<typenameT> TMax(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)

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

第1题:

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

有如下函数模板声明: template<typename T> TMax(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
解析:此题考查的是函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。本题选项B)中,编译系统从第一个参数“3.5”获得信息“double型数据”和从第二个参数获得信息“血型数据”两者矛盾,选项A)、C)正确;选项D)中,函数名后的double>是模板实参表,编译系统会将int型的形参“4”自动转化成double类型。

第2题:

有如下函数模板声明:template T 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
解析:使用模板,应避免二义性

第3题:

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

有如下函数模板声明: 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
解析: 此题考查的是函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。本题选项B)中,编译系统从第一个参数“3.5”获得信息“double型数据”和从第二个参数获得信息“int 型数据”两者矛盾,错误;A、选项C)正确:选项D)中,函数名后的double>是模板实参表,编译系统会将int 型的形参“4”自动转化成double类型。

第4题:

有如下函数模板声明: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
解析: 本题考查的是函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本意选项B中,编译系统从第一个参数“3.5”获得信息“double型数据”和从第二个参数获得信息“int型数据”两者矛盾,

第5题:

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

有如下函数模板声明:

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
解析:本题考核函数模板的使用。引用模板函数和引用一般的函数在语法形式上没有任何区别。所有的类型替换都是编译器在幕后悄悄进行的。但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确定是否匹配函数模板中对应的形参。例如,本题中的B选项,编译系统从第一个参数"3.5"获得的信息是"T对应于double",而从第二个参数"4"处获得的信息是"T对应于int",二者相互矛盾,在编译时会产生错误。对于D选项中紧跟在函数名后的double>就是模板实参表,通过它通知编译系统在调用过程中,将int型的参数"4"将换成double型。

第6题:

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

有如下函数模板声明: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

第7题:

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

有如下函数模板声明: 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
解析:本题考核函数模板的使用。引用模板函数和引用一般的函数在语法形式上没有任何区别。所有的类型替换都是编译器在幕后悄悄进行的。但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。例如,本题中的B) 选项,编译系统从第一个参数“3.5”获得的信息是“T对应于double”,而从第二个参数“4”处获得的信息是“T对应于int”,二者相互矛盾,在编译时会产生错误。对于D) 选项中紧跟在函数名后的double>就是模板实参表,通过它通知编译系统在调用过程中,int型的参数“4”将被自动换成double型。

第8题:

有如下函数模板声明: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
解析: 引用模板函数和引用一般的函数在语法形式上没有任何区别。说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。

第9题:

有如下函数模板声明: 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