一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )。A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上三种说法均不正确

题目

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

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

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

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

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


相似考题
更多“一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )。A.不能在同一程序中定 ”相关问题
  • 第1题:

    已知一个类A,类A有三个公有成员:void f1(int),void f2(int)和int a;定义指向类A成员函数的指针是( )。

    A.A*p;

    B.int A::*Pc=&A.a;

    C.void(A::*pA) ();

    D.void(A::*p


    正确答案:C
    解析:A定义了一个类的对象指针;B定义一个类A数据成员指针;C定义了一个类A的成员函数指针;D定义一个类A的对象指针数组。

  • 第2题:

    考虑下面的函数原型: void f(int a,int b=7,char c='@'); 下面的函数调用中,不合法的是

    A.f(5)

    B.f(5,8)

    C.f(6,'&')

    D.f(0,0,'@')


    正确答案:C
    解析:当一个函数中有多个默认参数时,则形参分布中默认参数应从右到左逐渐定义。在函数调用时,系统按从左到右的顺序将实参与形参结合,当实参的数组不足时,系统将按同样的顺序用说明或定义中的默认值来补齐所缺少的参数。在C)选项中,函数调用中只有两个实参,系统按从左到右的顺序将实参与形参结合时,实参'&'将赋值给血型形参b,显然则是非法的。

  • 第3题:

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

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

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

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

    D.以上说法均不正确


    正确答案:C
    解析:只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句“x=f(10);”时,就会产生二义性,不能确定调用函数R10)还是调用函数f(10,,a,),此时这两个函数不能重载。

  • 第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题:

    下面的函数原型非法的是 ______。

    A.void f(int a=1,int b=1)

    B.int f(double f,char s,int i=1,int j)

    C.void f(int a, int b)

    D.int f(double f,char s,int i=1,int j=0)


    正确答案:B

  • 第6题:

    类中包含了一个静态成员函数,则main函数中和P.fl(P);语句具有同样功能的语句为______。

    include<iostream.h>

    class M

    {

    public:

    M(int A){A=a;B+=a;}

    static void fl(M m);

    private:

    int A;

    static int B;

    };

    void M::f1(M m)

    {

    cout<<"A="<<m.A<<endl;

    cout<<"B="<<m.B<<endl;

    }

    int M::B=10;

    void main( )

    {

    M P(5);

    P.f1(P);

    }


    正确答案:M::f1(P);
    M::f1(P); 解析:由于f1是类M的静态成员函数,即说明类M的任何对象都共享一份f1,因此,不仅可以从对象那里访问f1,还可以用域操作符::通过类名来访问。

  • 第7题:

    设有以下函数:

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

  • 第8题:

    在下列原型所示的C++函数中,按“传值”方式传递参数的是

    A.void f1(int x);

    B.void f2(int*x);

    C.void f3(const int*x);

    D.void f4(int&x);


    正确答案:A

  • 第9题:

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

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

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

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

    D.以上说法均不正确


    正确答案:C
    解析:本题函数的调用。只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句“x=f(10);”时,就会产生二义性,不能确定调用函数f(10)还是调用函数f(10,'a'),此时这两个函数不能重载。

  • 第10题:

    若有以下程序段: void x(int n); void main() { void x(int n); x(5); } void x(int n){ cout<<n: } 则以下叙述不正确的是 ______。

    A.若只在子函数中对函数x进行声明,则只能在主数中正确调用函数x

    B.若只在子函数前面对函数x进行声明,则其后的所有函数中都可以正确调用函数x

    C.对于以上程序,编译时系统会提示出错信息:提示对x函数重复声明

    D.函数x无返回值,所以可用void定义x的函数类型


    正确答案:C

  • 第11题:

    下面的函数声明中,()是“void BC(int a, int b);”的重载函数

    • A、 int BC(int x, int y);
    • B、 void BC(int a, char b);
    • C、 float AA(int a, char b);
    • D、 int BC(int a, int b=0);

    正确答案:B

  • 第12题:

    单选题
    下面的函数声明中,()是“void BC(int a, int b);”的重载函数
    A

     int BC(int x, int y);

    B

     void BC(int a, char b);

    C

     float AA(int a, char b);

    D

     int BC(int a, int b=0);


    正确答案: A
    解析: 暂无解析

  • 第13题:

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

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

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

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

    D.以上说法均不正确


    正确答案:C

  • 第14题:

    若有以下程序:includevoid f(int n);main(){void f(int n); f(5);}void f(int n){prin

    若有以下程序: #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n);}则以下叙述中不正确的是( )。

    A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

    C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明

    D.函数f无返回值,所以可用void将其类型定义为无返回值型


    正确答案:C
    解析:f函数没有重复说明,在main函数中是对f函数声明,在main函数外则是对f函数的定义。

  • 第15题:

    若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n); f(5);}void f(int n){ printf("%d\n",n);}则以下叙述中不正确的是A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:对f函数重复说明D.函数f无返回值,所以,可用void将其类型定义为无返回值型


    正确答案:C
    C语言规定,一个函数中调用另一个函数(即被调用函数)需要具备的条件有:
    ① 被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。
    ② 如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要的信息“包含”到本文件中。
    ③ 如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
    在本题中,选项C是不正确的,从程序中我们可以看出,首先在主函数前面声明了函数f,按照函数调用的规则,主函数可以调用该函数了,但在主函数中又重复声明了该函数,其声明的形式完全一样,虽然重复了操作,但编译时系统不会报错,仍属于合理操作。

  • 第16题:

    若有以下程序includevoidf(intn);main() (voidf(intn); f(5); }void f(intn) {printf(

    若有以下程序 #include <stdio.h> void f(int n); main() ( void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是

    A.若只在主函数中对函数f进行说明,则只能在土函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正碗调用函数f

    C.对于以上程序,编译时系统会提示出错信息:提示对f函数重复况明

    D.函数f无返回值,所以可用void将其类型定义为无值型


    正确答案:C
    解析:本题考核的知识点是函数说明的方法。若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次,因此选项C是错误的。所以,4个选项中C为所选。

  • 第17题:

    以下程序的执行结果为【】。 include using namespace std; void overload(int num) {cou

    以下程序的执行结果为【 】。

    include<iostream>

    using namespace std;

    void overload(int num)

    {

    cout<<num<<end1;

    }

    void overload(char ch)

    {

    char c=ch+1;

    cout<<c<<end1;

    }

    int main()

    {

    overload('X');

    return 0;

    }


    正确答案:Y
    Y 解析:本题考核函数重载。在本题中,函数overload()有两次实现。第一次实现中,其形参为int型;第2饮实现中,其形参为char型,所以构成了函数重载。主函数中调用overload()函数时传递的实参为字符'X',所以执行函数的第2次实现。输出Y。

  • 第18题:

    在下面的函数声明中,______ 是“void BC (int a,int b);”的重载函数。

    A.int BC (int a,int b)

    B.void BC(int a,char b)

    C.float BC (int a,int b,int c=0)

    D.void BC (int a,int b=0)


    正确答案:D
    解析:如果重载函数voidBC(inta,intb),则参数个数和返回值等都要与其相同。

  • 第19题:

    在下列原型所示的C++函数中,按“传值”方式传递参数的是( )。

    A.void fl(int X);

    B.void t2(int*X);

    C.void f3(Const int*X);

    D.void f4(int&x);


    正确答案:A
    函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参。其中B、C选项都是传递变量指针,D选项为引用形参,所以本题答案为A。

  • 第20题:

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

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

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

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

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


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

  • 第21题:

    以下程序输出结果是 ______。includevoid n(int i);void f2(int i);char st[]=”Howd

    以下程序输出结果是 ______。 #include<iostream.h> void n(int i); void f2(int i); char st[]=”Howdoyoudo!”; void fl(int i){ cout<<st[i]; if(i<3){ i+=2: f2(i): } } void f2(int i) { cout<<st[i]; if(i<3) { i+=2; f1(i); } } void main() { int i=0; f1(i); }

    A.How

    B.do

    C.Hwo

    D.Hwoy


    正确答案:C

  • 第22题:

    类中包含了一个静态成员函数,则main函数中和P.f1(P);语句具有同样功能的语句为______。

    include<iostream.h>

    class M

    {public:

    M(int A){A=a;B+=a;}

    static void f1(M m);

    private:

    int A;

    static int B;};

    void M::f1(M m)

    {

    cout<<“A=“<<m.A((end1;

    cout<<“B=”<<m.B<<en


    正确答案:M::f1(P);。
    M::f1(P);。 解析: 由于f1是类M的静态成员函数,即说明类M的任何对象都共享一份f1,因此,不仅可以从对象那里访问f1,还可以用域操作符::通过类名来访问。

  • 第23题:

    若有以下程序 #include void f(int n) main() { void f(int n); f(5); } void f(int n); { printf("%d/n",n); } 则以下叙述不正确的是()

    • A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    • B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f
    • C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明
    • D、函数f无返回值,所以可用void将其类型定义为无值型

    正确答案:C