参考答案和解析
正确答案:C
解析:本题函数的调用。只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句“x=f(10);”时,就会产生二义性,不能确定调用函数f(10)还是调用函数f(10,'a'),此时这两个函数不能重载。
更多“一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们A.不能在同一程序中定义B.可 ”相关问题
  • 第1题:

    设有以下函数: 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正确。

  • 第2题:

    设有以下函数:

    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选项正确。

  • 第3题:

    一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )。

    A.不能在同一程序中定义

    B.可以在同一程序中定义并可重载

    C.可以在同一程序中定义,但不可以重载

    D.以上三种说法均不正确


    正确答案:B
    解析:题目中的两个函数参数个数不同,因此可以在同一程序中定义为重载函数。所以,选项B)叙述正确。

  • 第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);nf=&fun;


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

  • 第5题:

    一个函数为void f(int,char ch='a'),另一个函数为void f(iht),则它们( )。

    A.不能在同一程序中定义

    B.可以在同一程序中定义并可重载

    C.可以在同一程序中定义,但不可以重载

    D.以上三种说法均不正确


    正确答案:B
    解析: 题目中的两个函数参数个数不同,因此可以在同一程序中定义为重载函数。所以,选项B)叙述正确。