niusouti.com
更多“有如下函数定义;void func(int a,int & b){a++;b++;}若执行代码段:int x=0,y=1;func(x,y);则 ”相关问题
  • 第1题:

    有如下函数定义: void funC(int a,int&B.{a++;b++;} 若执行代码段: int x=0,Y=1: funC(X,y); 则变量X和y的值分别是( )。

    A.0和1

    B.1和1

    C.0和2

    D.1和2


    正确答案:C
    函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参。本题中实参x为传值方式,所以X的值不会改变;Y为引用形参,所以会改变。故本题答案为C。

  • 第2题:

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

  • 第3题:

    有如下函数模板定义: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)中两个实参的实际类型不同而未进行转换,会出现错误。

  • 第4题:

    有如下函数模板的定义: 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型。

  • 第5题:

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