单选题若有定义 class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A a1=new A( );则下列用法中非法的是( )。A g(3,2)B f(3)C a1.f(4)D a1.g(2,5)

题目
单选题
若有定义 class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A a1=new A( );则下列用法中非法的是( )。
A

g(3,2)

B

f(3)

C

a1.f(4)

D

a1.g(2,5)


相似考题
更多“若有定义 class A{int x,y; static float f(int a){…} float g(int x”相关问题
  • 第1题:

    在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法(33)不能与该方法同时存在于类C中。

    A.int f(int x,int y)

    B.int f(float a,int b)

    C.float f(mtx,float y)

    D.int f(int x,float y)


    正确答案:A
    解析:本题考查的是面向对象程序设计中的函数名重载机制。在C++中允许在同一个作用域中的同一个函数名字对应着多个不同的函数实现,这种现象称为重载(overloading),这些函数被称为重载函数。每一个重载函数必须具有不同的函数签名,即函数参数的个数不同或者参数的类型不同。根据上述概念来解答试题(33)。在C++中有一类特殊的作用域:类作用域。类中所有的成员都具有类作用域。如果在类C的作用域中存在不止一个名字为f的方法,那么这些方法或者具有不同的参数个数,或者具有不同的参数类型。将4个备选答案依次与题干中给出的方法作比较,可以发现选项A给出的方法的名字、参数个数及参数类型都与题干中给出的方法相同,这就违背了函数名重载的原则,因此该方法不可能与题干中给出的方法共存于类C中。因此正确答案为A。

  • 第2题:

    若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

    A.2.500000

    B.2.750000

    C.3.500000

    D.0.000000


    正确答案:A

  • 第3题:

    在C++语言中,若类C中定义了一个方法int (int a,int b),那么方法(1)不能与该方法同时存在于类C中。

    A.int f(int x,int y)

    B.int f(float a,int b)

    C.float f(int x,float y)

    D.int f(int x,float y)


    正确答案:A
    解析:A选项中定义的方法与题中所定义的方法实质上是一样的。字母只是作为形参参与计算,用什么字母都无所谓。已知3个类O,P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3,类P和类Q是类O的派生类,其继承方式如下所示:classP:protectedO{…);classQ:publicO{…};

  • 第4题:

    类testl定义如下: public class test1 { public float amethod(float a,float b){ } }

    A.public foat amethod(float a,float b,foat c){ }

    B.public float amethod(float c,float d){ }

    C.public int amethod(int a,int b){ }

    D.private float amethod(int a,int b,int c){ }


    正确答案:B

  • 第5题:

    若有定义:int a=4, b=5;float x=3.4,y=2.1;,则下列表达式的值为( )。 (float) (a+b)/2+(int)x%(int)y

    A.5.5

    B.55

    C.5.5

    D.55


    正确答案:C
    解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得 4.500000。
      在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,得1。
      又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。
    注意:类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→ int→unsigned→long→float→double。

  • 第6题:

    在下面的引用定义中,正确的是 ______。

    A.int x,&y; y=x;

    B.int x,&y=x;

    C.int &y=x,x;

    D.float z; int x,y=&z;


    正确答案:B

  • 第7题:

    以下正确的函数定义是______。

    A.double f1(int x,int y)

    B.double f1(int x;int y)

    C.double f1(int x;float y)

    D.double f1(int x,y)


    正确答案:A

  • 第8题:

    下面程序输出的结果是( )。 include using namespace std; int test(int n1

    下面程序输出的结果是( )。 #include<iostream> using namespace std; int test(int n1,int n2) {return n1 +n2;} float test (int f1,float f2){return f1-f2;} float test(float x,float y){return(x+y)/2;} float test(float x,int y){return(x+y)*2;} void main(){ int a1=10; float a2=2.5f; cout<<test(a1,a2); }

    A.12.5

    B.7.5

    C.6.25

    D.25


    正确答案:B
    解析:此处为函数的重载,第一个参数为int,第二个参数为float,故执行第二个函数。

  • 第9题:

    给定java代码如下所示,在A处新增下列()方法,是对cal方法的重载。public class Test {  public void cal(int x, int y, int z) { } //A } 

    • A、public int cal(int x,int y,float z){return 0;}
    • B、public int cal(int x,int y,int z){return 0;}
    • C、public void cal(int x,int z){}
    • D、public viod cal(int z,int y,int x){}

    正确答案:A,C

  • 第10题:

    下面的方法重载,正确的是()。

    • A、int fun(int a, float b) { }  float fun(int a, float b) { }
    • B、float fun(int a, float b) { } float fun(int x, float y) { }
    • C、float fun(float a) { }  float fun(float a, float b) { }
    • D、float fun1(int a, float b) { }  float fun2(int a, float b) { }

    正确答案:C

  • 第11题:

    若有定义:int a=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()

    • A、3.5
    • B、3.0
    • C、2.5
    • D、2.0

    正确答案:A

  • 第12题:

    单选题
    下面的方法重载,正确的是()。
    A

    int fun(int a, float b) { }  float fun(int a, float b) { }

    B

    float fun(int a, float b) { } float fun(int x, float y) { }

    C

    float fun(float a) { }  float fun(float a, float b) { }

    D

    float fun1(int a, float b) { }  float fun2(int a, float b) { }


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

  • 第13题:

    若有定义:int a=4,b=5;float x=3.4,y=2.1;,则下列表达式的值为( )

    (float) (a+b)/2+(int)×%(int)y

    A.5.5

    B.55

    C.5.500000

    D.55.00000


    正确答案:C
    解析:在计算(float)(a+b) /2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。
      在计算(int)x%(int)y时,先将x和y通过强制类型转换成血型,再进行求余运算,得1。
      又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。
      [知识扩展] 类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→long→float→double。

  • 第14题:

    类A定义如下: class A { private int x=10; int getx() { return x;} } class B extends A { private int x=15; //需要覆盖getx()方法 } 在下述方法中可以在类B中覆盖getx()方法的是 ( )

    A.int getx(){…}

    B.int getx(float f){…}

    C.float getx(){…}

    D.double getx(float f){…}


    正确答案:A
    解析:在Java中子类的方法覆盖父类中的方法时要求两个方法的名称、返回值类型以及参数表必须相同。在本题中,选项B、D中方法的参数表不同于父类中的getx()方法的参数表;而选项C中方法的返回值类型与父类中getx()方法不同,所以选项A正确。

  • 第15题:

    若有定义:int x=1,y=2;float a=3.7,b=2.1;则(x+y)%2+(int)a/(int)b表达式的值为( )。


    正确答案:2
    2 解析:本题考查表达式的运算。因为x=1,y=2,所以表达式(x+y)%2=3%2=1,(int)a/(int)b=(int)}(3/2)=1,因此整个表达式的结果为(x+y)%2+(int)a/(int)b=1+1=2。

  • 第16题:

    若有定义:int a=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()

    A.3.5

    B.3.0

    C.2.5

    D.2.0


    参考答案:A

  • 第17题:

    若有定义:“int a=4,b=5;float x=3.4,y=2.1;”,则下列表达式的值为( )。 (float)(a+b)/2+(int)x%(int)y;

    A.5.5

    B.55

    C.5.500000

    D.55.00000


    正确答案:C
    在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,结果为1。又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。类型转换的一般规则是:低级类型从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→log→float→double。

  • 第18题:

    若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为______。(float)(a+b)/2+(int)x%(int)y

    A.3.5

    B.35

    C.3.5

    D.35


    正确答案:C

  • 第19题:

    在C++语言中,若类C中定义了一个方法intf(int a,int b),那么方法不能与该方法同时存在于类C中。

    A.int f(int x,int y)

    B.int f(float a,int b)

    C.float f(int x,float y)

    D.int f(int x,float y)


    正确答案:A
    解析:该题其实考查的是形参和函数重载。编译器视函数“intf(inta,intb)”和“intf(intx,inty)”为同一个函数,尽管两者的形参名称不一样,编译器只管形参的类型是不是一样。在VC6.0中,若在同一个类中定义这两个函数,编译错误信息中会提示“memberfunctionalreadydefinedordeclared”,即成员函数已定义或声明了。对于在同一可访问区内(如同一个类中)被声明的几个具有不同参数列(参数的类型、个数、顺序不同)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。这里,“重载”的“重”的意思不同于“轻重”的“重”,它是“重复”、“重叠”的意思。可见,B、C、D均与“intf(inta,intb)”构成重载。另外,值得特别强调的是,重载不关心函数的返回值类型,在同一个类中,也不允许“intf(inta,intb)”、“floatf(inta,intb)”两者同时存在,这两者不构成重载,编译器无法识别。

  • 第20题:

    float x=26f; int y=26; int z=x/y; 以上语句能正常编译和运行。


    正确答案:错误

  • 第21题:

    若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是()

    • A、x=x*3=2
    • B、x=(y==1)
    • C、i=float(x)
    • D、i%(-3)

    正确答案:B

  • 第22题:

    若有定义 class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A a1=new A( );则下列用法中非法的是( )。

    • A、g(3,2)
    • B、f(3)
    • C、a1.f(4)
    • D、a1.g(2,5)

    正确答案:C

  • 第23题:

    多选题
    public class MethodOver {   private int x, y;   private float z;   public void setVar(int a, int b, float c){   x = a;   y = b;   z = c;   }   }   Which two overload the setVar method?()
    A

    void setVar (int a, int b, float c){  x = a;  y = b;  z = c;  }

    B

    public void setVar(int a, float c, int b) {  setVar(a, b, c);  }

    C

    public void setVar(int a, float c, int b) {  this(a, b, c);  }

    D

    public void setVar(int a, float b){  x = a;  z = b;  }

    E

    public void setVar(int ax, int by, float cz) {  x = ax;  y = by;  z = cz;  }


    正确答案: D,E
    解析: 暂无解析