参考答案和解析
正确答案:C
解析:v1是需要传递地址给a,b是引用。
更多“已知函数f的原型是:void f(int *a,long &b);,变量v1、v2的定义是:int v1;long v2;,正确的调用语句 ”相关问题
  • 第1题:

    已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是( )。

    A.f(v1,v2)

    B.t(v1,&v2)

    C.f(&v1,v2)

    D.f(&v1,&v2);


    正确答案:B
    B。【解析】voidf(int*X,int&。y);第一个参数需要取值,第二个参数需要取地址,所以为v1为取值,&Lv2为取址。

  • 第2题:

    已知函数f的原型是void f(int*a,long&B.;,变量v1、v2的定义是: int v1;long:v2; 下列调用语句中正确的是( )。

    A.f(v1,&v2);

    B.f(v1,v2);

    C.f(&v1,&v2);

    D.f(&v1,v2);


    正确答案:D
    函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参,本题中函数f的第一个形参为指针,那么调用f函数时,第一一个参数必须是地址,所以必须是&v1.第二个形参为引用,所以对应实参为v2即可。故本题答案为D。

  • 第3题:

    若主函数有变量定义:int x=1 ; double y=2.3 ; 且有合法的函数调用语句f (y , x); 则下列关于函数f的原型声明中一定错误的是 。

    A.void f(double, int);

    B.int f(int , int);

    C.int f(double, double);

    D.void f(double, int, int);


    void f(double, int, int);

  • 第4题:

    已知函数f的原形是void f(int * a,long &B);,变量v1、v2的定义是: int v1;long v2; 下列调用语句中正确的是

    A.f(v1,&v2);

    B.f(v1,v2);

    C.f(&v1,&v2);

    D.f(&v1,v2);


    正确答案:D
    解析:* a是指针变量,对指针变量的引用应加&。

  • 第5题:

    已知函数f的原型是:void f(int*a,long &b);,变量v1、v2;的定义是int v1;long v2;正确,的调用语句是

    A.f(v1,& v2);

    B.f(v1,v2);

    C.f(& v1,v2);

    D.f(&v1,&v2);


    正确答案:C
    解析:本题考核形式参数与实在参数,参数值的传递。第一个参数是地址传递,所以在调用时要传入实参的地址,第二个参数引用传递,调用时直接写上实参即可。