有如下函数模板定义:template T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用有如下函数模板定义:template <class T>T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用中,错误的是( )。A.func(3,5);B.func(3.0,5.5);C.func(3,5.5);D.func<int>(3,5.5);

题目
有如下函数模板定义:template T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用

有如下函数模板定义:template <class T>T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用中,错误的是( )。

A.func(3,5);

B.func(3.0,5.5);

C.func(3,5.5);

D.func<int>(3,5.5);


相似考题
更多“有如下函数模板定义:template T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用 有如下函数模板定义:template <class T>T func (Tx, Ty){ return x*x+ y*y;}在下列对func 的调用中,错误的是( )。A.func(3,5);B.func(3.0,5.5);C.func(3,5.5);”相关问题
  • 第1题:

    有如下函数模板定义: template T func(Tx,Ty){return x*x+y*y;} 在下列对func

    有如下函数模板定义: template<class t> T func(Tx,Ty){return x*x+y*y;} 在下列对func的调用中,错误的是

    A.func(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5)


    正确答案:C
    解析:模板类型参数歧义。

  • 第2题:

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

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

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

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

    C.template <class T> T F(Tx){return x*x;}

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


    正确答案:A
    解析:本题考核函数模板的定义。模板定义的类型参数表>中包含一个或多个由逗号分隔的类型参数项,每一项由关键字class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型。A) 选项中标识符Q作为类型参数,不能用作数据类型参与"Q+x"的运算。

  • 第3题:

    函数模板:templateT add(T x, T y) {return x+y;}下列对add函数的调用不正确的是A.add<

    函数模板:template<class T> T add(T x, T y) {return x+y;} 下列对add函数的调用不正确的是

    A.add<>(1,2)

    B.add<int>(1,2)

    C.add(1.0,2)

    D.add(1.0,2.0)


    正确答案:C
    解析:对于templateclass T>
      T add (T x, T y) {return x+y;}
      调用时可以省略模板实参的声明,但是要求x和y的数据类型必须是一样的。

  • 第4题:

    有如下函数模板定义:template T func(T x, T y){return x*x*y*y;)在下列对func的调用中

    有如下函数模板定义: template <class 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>(3,5.5);


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

  • 第5题:

    以下模板定义:templateT fun(T x,T y){return x*x+y*y;}下面对fun的调用中错误的是()。A

    以下模板定义: template<class T> T fun(T x,T y){return x*x+y*y;} 下面对fun的调用中错误的是( )。

    A.fun<int>(2,6.5)

    B.fun(2,6.5)

    C.fun<>(2,6)

    D.fun(2,6)


    正确答案:B

  • 第6题:

    下面的函数模板定义中错误的是()。A.templateB.template QF(Qx){return Q-x;}

    下面的函数模板定义中错误的是( )。

    A.template<class Q>

    B.template<class Q> QF(Qx){return Q-x;} QF(Qx){return x+x;}

    C.template<class T>

    D.template<class T> TF(Tx){return x*x;} boolP(Tx){return X>1;)


    正确答案:A

  • 第7题:

    有如下函数模板定义:templateT func(T x, T y){return x*x+y*y;}在下列对func的调用中,

    有如下函数模板定义: template<class 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>(3,5.5);


    正确答案:C

  • 第8题:

    有如下函数模板的定义:templateT func(Tx, Ty){return x*x+ y*y;}在下列对func的调用中

    有如下函数模板的定义:template<class T>T func(Tx, Ty){return x*x+ y*y;}在下列对func的调用中不正确的是( )。

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C

  • 第9题:

    函数模板:templateT add(Tx,Ty){returnx+y;}下列对add函数的调用不正确的是()。A.add<>(

    函数模板:template<class T> T add(Tx,Ty){returnx+y;} 下列对add函数的调用不正确的是( )。

    A.add<>(1,2)

    B.=add<int> (1,2)

    C.add(1.0,2)

    D.add(1.0,2.0)


    正确答案:C

  • 第10题:

    有如下函数模板的定义:templateT func(T x,T y){return x*x+y*y;}在下列对func的调用中

    有如下函数模板的定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func的调用中不正确的是

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。对于C)选项,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D)选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成int型。

  • 第11题:

    函数模板:template<class T>T add(T x,T y){return x+y;}下列对add函数的调用不正确的是

    A.add<>(1,2)
    B.add<int>(1,2)
    C.add(1.0,2)
    D.add(1.0,2.0)

    答案:C
    解析:
    对于template<class T>T add(T x,T y){return x+y;}调用时可以省略模板实参的声明,但是要求x和y的数据类型必须是一样的。

  • 第12题:

    已知函数定义def func(**p):return sum(p.values()),那么表达式func(x=1,y=2,z=3)的值为。


    正确答案:6

  • 第13题:

    下列函数模板定义中错误的是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
    解析:在函数模板定义中,类型参数不能参与运算。

  • 第14题:

    主调函数中的两个变量a和b,要求调用函数交换a、b的值,返回交换结果,则以下正确的函数是______。

    A.funa(int*x,int*y) {int*p; *p=*x;*x=*y;*y=*p; }

    B.funb(int x,int y) {int t; t=x;x:y=y=t;}

    C.func(int*x,int*y) {*x=*y;*y=*x;}

    D.fund(int *x,int*y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


    正确答案:D
    解析:选项A中指针变量p没有明确的指向,选项B是值传递方式,显然不能改变实参中的值,选项C不能完成交换,实参中的值都变成一样的,只有选项D是正确的。

  • 第15题:

    主调函数中的两个变量a和b,要求调用函数交换a、b值,返回交换结果,则以下正确的函数是______。

    A.funa(int*x,int*y) { int*p; *p=*x;*x=*y;*y=*p; }

    B.funb (int x,int y) {int t;t=x;x=y;y=t;}

    C.func(int *x,int*y) {*X=*y;*y=*x;}

    D.fund(int *x,int *y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


    正确答案:D

  • 第16题:

    有如下函数模板的定义:template Tfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中不

    有如下函数模板的定义: template <class T> T func(T x,T y){ return x*x+y*y;} 在下列对func的调用中不正确的是

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。对于C选项,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成int型。

  • 第17题:

    有如下函数模板的定义:templateT func(T x,T y){return x*x+y*y;}在下列对func()的调用

    有如下函数模板的定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func()的调用中,不正确的是( )。

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析:对于选项C,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于选项D中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成血型。

  • 第18题:

    有如下函数模板的定义: template T func(Tx,Ty){ return x*x+y*y;}A.func(3,5);B.func

    有如下函数模板的定义: template <class T> T func(Tx,Ty){ return x*x+y*y;}

    A.func(3,5);

    B.func<>(3,5);

    C.func(3,5.5);

    D.func<int> (3,5.5);


    正确答案:C
    解析:本题考核函数模板的使用。对于C选项,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于D选项中紧跟在函数名后的int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成int型。

  • 第19题:

    有如下函数模板定义:templateT func(T x,T y){return x*x+y*y;}在下列对func的调用中,

    有如下函数模板定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func的调用中,错误的是( )。

    A.fimc(3,5);

    B.func(3.0,5.5);

    C.func(3,5.5);

    D.func<int>(3,5.5);


    正确答案:C
    解析: 选项C)中两个实参的实际类型不同而未进行转换,会出现错误。

  • 第20题:

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

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

    A.函数形参

    B.函数实参

    C.模板形参

    D.模板实参


    正确答案:C
    解析:此题考查的是函数模板。声明一个函数模板的格式是:
      template模板形参表声明>函数声明,{函数体}
      其中的模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。

  • 第21题:

    下面的函数模板定义中错误的是______ 。A.template QF (Q x){return Q +x;}B.template<

    下面的函数模板定义中错误的是______ 。

    A.template<class Q > QF (Q x){return Q +x;}

    B.template<class Q > QF (Q x){returnx/x;}

    C.template <class T > T F(T x) {return x*x;}

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


    正确答案:A
    解析:Q只是模板的语法要求,不能作为一个值。

  • 第22题:

    假设有函数模板定义如下,下列各选项中正确的是( )。 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.三个选项都正确


    正确答案:A
    解析:使用函数模板,要求形参必须为相同类型。

  • 第23题:

    已知函数定义def func(**p):return’’.join(sorted(p)),那么表达式func(x=1,y=2,z=3)的值为()。


    正确答案:'xyz'