更多“假设函数fun已经定义,其原型为“void fun(int a,int b=7,char*p=“**”);”,下列函数调”相关问题
  • 第1题:

    已知“int*p;fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是()。

    A.voidfun(inta[]);

    B.voidfun(int*&a);

    C.voidfun(int&a[]);

    D.voidfun(int&*a);


    正确答案:B

  • 第2题:

    已知函数fun的原型是“void fun(int *x, int &y);”,变量v1、v2的定义是“int v1, v2; ”,则下列选项中,对函数fun调用正确的是( )。

    A. fun(v1,&v2);

    B.fun(v1,v2);

    C.fun(&v1,v2);

    D.fun(&v1,&v2);


    参考答案:D

  • 第3题:

    以下( )成员函数表示纯虚函数。

    A.virtual int fun(int)

    B.void fun(int)=0

    C.virtual void fun()=0

    D.virtual void fun(int){}


    正确答案:C
    解析:纯虚函数是在声明虚函数时被“初始化”为。的函数。定义的一般形式为:virtual函数类型函数名(参数列表)=0。所以排除选项A)、B)、D)。

  • 第4题:

    设有以下函数: void fun(int n,char*s){…} 则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)( );pf=fun;

    B.void*pf( );pf=fun

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char);pf=&fun;


    正确答案:A
    函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

  • 第5题:

    已知函数fun的原型为

    int fun(int,int,int);

    下列重载函数原型中错误的是

    A.char fun(int,int);

    B.double fun(int,int,double);

    C.int fun(int,char木);

    D.float fun(int,int,int);


    正确答案:D
    解析:重载函数至少要在参数个数或参数类型上有所不同。选项D)的重载函数只有返回值不同,其他(参数个数及类型)完全相同。因此,本题答案为D)。

  • 第6题:

    设有以下函数:

    voidfun(intn,char}s){……}

    则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)(int,char);pf=&fun;

    B.void+pf( );pf=fun;

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char*);pf=fun;


    正确答案:D
    函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。

  • 第7题:

    下列重载函数中,正确的是( )。

    A.void fun(int a,float b);void fun(int C,float d)

    B.void fun(int a,float b);void fun(float a,int b)

    C.float fun(int a,float b);int fun(int b,float a)

    D.int fun(int a,int b);float fun(int a,int b)


    正确答案:B

  • 第8题:

    若有以下调用语句,则不正确的fun函数的首部是( )。 main() { int a[50],n; fun(n,&a[9]); ┆ }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[41])

    C.void fun(int p,int *s)

    D.void fun(int n,int a)


    正确答案:D
    解析:根据main函数中的fun函数调用语句可知,fun函数的第二个参数是一个地址值,对应的形参可以是指针变量或一维数组,所以D)不正确。

  • 第9题:

    以下正确的函数原型为()

    • A、fun1(int x;int y);
    • B、void fun1(x,y);
    • C、void fun1(int x,y);
    • D、void fun1(int,int);

    正确答案:D

  • 第10题:

    已知一个函数的定义如下:double fun(int x,double y){⋯⋯}则该函数正确的函数原型声明为()

    • A、double fun(intx,doubley)
    • B、fun(int x,doubley)
    • C、double fun(int,double);
    • D、fun(x,y);

    正确答案:C

  • 第11题:

    单选题
    设有以下函数:void fun(int n,char* s){……}则下面对函数指针的定义和赋值均是正确的是(  )。
    A

    void(*pf)();pf=fun;

    B

    void * pf();pf=fun;

    C

    void * pf();* pf=fun;

    D

    void(* pf)(int,char);pf=&fun;


    正确答案: D
    解析:
    函数指针的一般定义形式为:
    返回值类型 (* 指针变量名) ([形参列表]);
    其中,“返回值类型”说明函数的返回类型,“(* 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
    以本题函数和函数指针为例,将函数的首地址赋给指针,可以是pf=fun;或者pf=&fun;
    选项A,参数列表与题干函数不符,错误。选项B,函数指针定义格式错误。选项C。函数指针定义格式错误,复制格式也错误。答案选择D选项。

  • 第12题:

    单选题
    已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是(  )。
    A

    char fun(int,int);

    B

    double fun(int,int,double);

    C

    int fun(int,char*);

    D

    float fun(int,int,int);


    正确答案: A
    解析:
    重载函数的原则是至少要在参数个数或参数类型上不同。A项正确,参数个数与函数fun不同;B项正确,最后一项参数类型与函数fun不同;C项正确,参数个数与参数类型与函数fun不同;D项错误,只有函数返回类型不同,而其他完全相同,不能作为重载函数来使用。

  • 第13题:

    对下列程序段的描述正确的是()。includeint Fun(int,int)void main(){cout<

    对下列程序段的描述正确的是( )。 #include<iostream.h> int Fun(int,int) void main() { cout<<Fun(5,50)<<endl; } int Fun(int x,int y) { return X*X+y*y; }

    A.该函数定义正确,但函数调用方式错误

    B.该函数调用方式正确,但函数定义错误

    C.该函数定义和调用方式都正确

    D.该函数定义和调用方式都错误


    正确答案:C

  • 第14题:

    对下列程序段的描述正确的是( )。 include int fun(int,int); void main(

    对下列程序段的描述正确的是( )。 #include<iostream.h> int fun(int,int); void main() { cout<<fun(1,2)<<endl; } int fun(int x,int y) { return x+y; }

    A.该函数定义正确,但函数调用方式错误

    B.该函数调用方式正确,但函数定义错误

    C.该函数定义和调用方式都正确

    D.该函数定义和调用方式都错误


    正确答案:C
    解析:函数定义的一般形式为:类型标识符函数名(形式参数列表){声明部分;语句}。函数调用的一般格式为:函数名(实参列表)。而“int fun(int,int)”为函数声明,是可以不写形参名,只写形参的类型。所以,可以看出函数fun的定义和调用都是正确的。

  • 第15题:

    下面正确的函数定义形式为( )。

    A.void fun();{}

    B.void fun(int x;int y) {}

    C.void fun() {}

    D.void fun(int x,y) {}


    正确答案:C
    解析:选项A函数声明与函数体之间没有分号;选项D形参之间用逗号隔开;选项D形参y没有类型。

  • 第16题:

    下列函数参数默认值定义错误的是( )。

    A.Fun(int x,int y=0)

    B.Fun(int x=100)

    C.Fun(int x=0,int y)

    D.Fun(int x=f())(假定函数f()已经定义)


    正确答案:D

  • 第17题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第18题:

    若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是

    A.void fun(int a=90,double b=0.0);

    B.int fun(int a,double B) ;

    C.void fun(double a,intB) ;

    D.bool fun(int a,double b=0.0);


    正确答案:C

  • 第19题:

    若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[ ]),则以下选项中错误的调用语句是( )。

    A.fun(b);

    B.fun(&c);

    C.fun(&a[3]);

    D.fun(b[11]);


    答案:D 
    解析:fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。 

  • 第20题:

    若有函数定义:double fun(int a[10]){...},则在对该函数进行原型声明时,错误的声明语句是()

    • A、double fun(int[])
    • B、double fun(intb[10])
    • C、double fun(inta)
    • D、double fun(int*a)

    正确答案:C

  • 第21题:

    有函数原型void fun7(int*);在下列选项中,正确的调用是()

    • A、double x=2.17;fun7(&x);
    • B、int a=15;fun7(a*3.14 );
    • C、int b=100;fun7(&b);
    • D、fun7(256);

    正确答案:C

  • 第22题:

    有函数原型void fun8(int&);在下列选项中,正确的调用是()

    • A、int a=2.17;fun8(&a);
    • B、int a=15;fun8(a?3.14);
    • C、int b=100;fun8(b);
    • D、fun8(256);

    正确答案:C

  • 第23题:

    单选题
    若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是(  )。
    A

    void fun(int a=90,double b=0.0);

    B

    int fun(int a,double B);

    C

    void fun(double a,int B);

    D

    bool fun(int a,double b=0.0);


    正确答案: B
    解析:
    函数重载的原则是至少要在参数个数或参数类型上有所不同。如果只是函数的返回值类型不同,而其他完全相同,则不能作为重载函数来使用。