若有定义 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)

相似考题
参考答案和解析
正确答案:C
更多“若有定义 class A{int x,y; static flo”相关问题
  • 第1题:

    有如下类的定义。应在空格处填入的语句是 ( )。 class MyClass { ______________ int x, y; public: MyClass(int a=0,int b=0) { x=a; y=b; } static void change{) { x-=10; y-=10; };

    A.static

    B.const

    C.mutable

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态成员函数的使用。由题可知,函数change()为类MyClass的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。调用静态成员函数的格式如下:类名::静态成员函数名(参数表);静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量x和y只能是类MyClass的静态数据成员,所以x和y的定义为“staticintx,y;”。

  • 第2题:

    下面程序执行的结果是【 】 include using namespace std; class A{ public: static in

    下面程序执行的结果是【 】

    include<iostream>

    using namespace std;

    class A{

    public:

    static int x;

    A(inty){cout<<x+y;}

    };

    int A::x=2;

    void main(){

    A a(5);

    }


    正确答案:7
    7 解析:程序的静态变量初始化为2,而构造函数招待过程中y变量为初始化为5,故程序执行的结果为7。

  • 第3题:

    下面程序段的输出结果为( )。 package test; public class ClassA { int x=20: static int y=6; public static void main(String args[]) { ClassB b=new ClassB; go(10); System.out.println("x="+b.x); } } class ClassB { int X; void go(int y) { ClassA a=new ClassA; x=a.Y ; } }

    A.x=10

    B.x=20

    C.x=6

    D.编译不通过


    正确答案:C
    C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的90方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量Y的值。从main方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给X和Y赋值,X=a.Y后,X值为6,再返回去执行System.out.println("x="+b.x)语句,输出为x=6,可见,正确答案为选项C。

  • 第4题:

    有如下类的定义,下划线处的语句是( )。class MyClass{_______________ int x, y;Public:MyClass (int a=0,int b=0){x=a;y=b;}static void change(){y-=10;y-=10;}};

    A.static

    B.const

    C.mutable

    D.不需要填入内容


    正确答案:A

  • 第5题:

    有以下程序:includeusing namespace std;class sample{private:int x;static int y;

    有以下程序: #include<iostrearn> using namespace std; class sample { private: int x; static int y; public: sample (int A) ; static void print (sample s); }; sample::sample(int A) { x=a; y+=x; }

    A.x=10,y=20

    B.x=20,y=30

    C.x=30,y=20

    D.x=30,y=30


    正确答案:B
    解析:本题考核静态数据成员和静态成员函数的应用。类sample中定义两个私有成员x和y,其中y为静态数据成员。并定义函数print()为静态成员函数。在主函数中,定义对象s1(10)时,通过构造函数使对象s1的私有成员x=10,静态数据成员y=10。定义s2(20)时,通过构造函数使对象s2的私有成员x=20,静态数据成员y=10+20=30。程序最后调用静态成员函数print输出对象s2的私有成员x的值20,对象s1、s2共享的静态数据成员y的值30。

  • 第6题:

    下面程序段的输出结果为 package test; public class A { int x=20; static int y=6; public static void main(String args[]) { Class B b=new Class B(); b.go(10); System.out.println(”x=”+b.x); } } class Class B { int x; void go(int y) { ClassA a=new ClassA(); x=a.y; } }

    A.x=10

    B.x=20

    C.x=6

    D.编译不通过


    正确答案:C
    解析:本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的go方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量y的值。从main()方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给x和y赋值,x=a.y后,x值为6,再返回去执行System.out.println(”x=”+b.x)语句,输出为x=6,可见,正确答案为选项C。

  • 第7题:

    若有定义:floatx=3.5,y=3.6;则表达式()的值为6。

    A.(int)x+(int)y

    B.x+y

    C.(int)(x+y)

    D.int(x+y)


    正确答案:A

  • 第8题:

    有以下源程序: package test; public class ClassA { int x=20; static int y=6; public static void main(String args[]) { ClassB b=new ClassB(); b.go(10); System.out.println("x="+b.x); } } class ClassB { int x; void go(int y) { ClassA a=new ClassA(); x=a.y; } } 上述源程序文件的运行结果为( )。

    A.x=10

    B.x=20

    C.x=6

    D.编译不通过


    正确答案:C
    解析:本题考查在Java中静态变量(类变量)的用法规则。对于static修饰的成员变量和成员方法,可以直接使用类名对它们进行访问。对于类变量,也就是static修饰的变量,在生成类的第一个实例对象时,Java运行时,系统对这个对象的每个类变量分配一块内存,以后再生成该类的实例对象时,所有实例对象将共享同一个类变量,每个实例对象对类变量的改变都会直接影响到其他实例对象,类变量除了可以通过类名直接访问外,还可以通过实例对象来访问。在本例中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是ClassB中的一个局部变量,通过调用ClassB中的go方法可以实现生成一个ClassA对象,并给这个新生成的对象赋予ClassA中的类变量y的值。

  • 第9题:

    若有程序fun(int a, int b){ static int c=0; c+=a+ b; returm c;}main(){ int x=5,y=3,z=7,r; r=fun((y, x+ y),z); r=fun (x, y); printf("%d\n", r);}

    A.23

    B.15

    C.19

    D.18


    正确答案:A
    解析:static声明的外部变量只限于被本文引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。

  • 第10题:

    现有:   class TestMain {      static int x = 2;  static { x = 4; }   static public void main(String[] args) {    int y = x + 1;   System.out.println(y);    }    }    和命令行:  java TestMain    结果为:() 

    • A、 3
    • B、 5
    • C、 编译失败
    • D、 运行时异常被抛出

    正确答案:B

  • 第11题:

    class TestMain {   static int x = 2;   static { x = 4; }   static public void main(String[] args) {   int y = x + 1;   System.out.println(y);  }  }   和命令行:   java TestMain   结果为:()

    • A、 3
    • B、 5
    • C、 编译失败
    • D、 运行时异常被抛出

    正确答案:B

  • 第12题:

    单选题
    现有:   class TestMain {      static int x = 2;  static { x = 4; }   static public void main(String[] args) {    int y = x + 1;   System.out.println(y);    }    }    和命令行:  java TestMain    结果为:()
    A

     3

    B

     5

    C

     编译失败

    D

     运行时异常被抛出


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

  • 第13题:

    若有定义: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。

  • 第14题:

    有如下类的定义。那么空格处的语句是( )。 class MyClass { ____________int x,y; public: MyClass(int x1=0,int y1=0) { x=x1; y=y1; } static void change() { x+=10; y+=10; } };

    A.static

    B.const

    C.private

    D.不需要填入内容


    正确答案:A
    解析:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。本题程序中把成员函数change()定义成静态成员函数。由于静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。所以类的数据成员x和y也必须定义成静态数据成员。

  • 第15题:

    有以下程序:include using namespace std;class sample{private: int x; static int

    有以下程序:#include <iostream>using namespace std;class sample{private: int x; static int y;public: sample(int a); static void print(sample s);};sample:: sample(int a){ x=a; y+=x;}void sample:: print(sample s){ cout<<"x="<<s. x<<",y="<<y<<end1;}int sample:: y=0;int main(){ sample s1(10); sample s2(20); sample:: print(s2); return 0;}程序运行后的输出结果是( )。

    A.x=10,y=20

    B.x=20,y=30

    C.x=30,y=20

    D.x=30,y=30


    正确答案:B

  • 第16题:

    若有以下程序:include using namespace std;class Base{private: int a,b;public: Ba

    若有以下程序: #include <iostream> using namespace std; class Base { private: int a,b; public: Base(int x, int y) { a=x; b=y; } void show() { cout<<a<<", "<<b<<end1; } }; class Derive : public Base { private: int c, d; public: Derive(int x, int y, int z,int m):Base(x,y) { c=z; d=m; } void show() { cout<<c<<", "<<d<<end1; } }; int main ( ) { Base b(50,50) ,*pb; Derive d(10,20,30,40); pb=&d; pb->show {); return 0; }

    A.10,20

    B.30,40

    C.20,30

    D.50,50


    正确答案:A
    解析:本题考核基类指针的使用。本题首先定义了一个基类Base和一个由Base派生出来的派生类Derive。在主函数中,定义了一个基类Base指针吵和基类对象b,还定义了派生类Derive的对象do然后将派生类对象d的地址赋值给指向基类Base的指针pb。由于Derive是Base的子类型,因此允许上述赋值。但这时指针pb只能使用从基类Base继承的成员,即当pb指向d对象时,pb->show还是调用基类Base的成员函数show()。所以程序最后输出的是对象d中对基类成员的初始化值,即10,20。

  • 第17题:

    有如下类的定义。空格处的语句是class MyClass{ ______ int x, y;public: MyClass(int a=0, int b=0) { x=a; y=b; } static void change() { x-=10; y-=10; }};

    A.static

    B.const

    C.private

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态数据成员和静态成员函数。类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数 change()访问了类MyClass的数据成员x和y,只能把x和y定义为静态数据成员。

  • 第18题:

    下面的例子中

    using System;

    class A

    {

    public static int X;

    static A(){

    X=B.Y+1;

    }

    }

    class B

    {

    public static int Y=A.X+1;

    static B(){}

    static void Main(){

    Console.WriteLine("X={0},Y={1}",A.X,B.Y);

    }

    }

    产生的输出结果是什么?


    正确答案:
    答:x=1,y=2

  • 第19题:

    有如下类的定义,横线处的语句是( )。 class TestClass { ______ int x,y; public: TestClass(int a=0,int b=0) { X=a: y=b; } static void change() { y-=10; y-=10; } };

    A.public

    B. private

    C.static

    D.protected


    正确答案:C

  • 第20题:

    若有以下程序:include using namespace std;class point{private: int x, y;public:

    若有以下程序: #include <iostream> using namespace std; class point { private: int x, y; public: point ( ) { x=0; y=0; } void setpoint(int x1,int y1) { x=x1; y=y1;

    A.12,12

    B.5,5

    C.12,5

    D.5,12


    正确答案:D
    解析:本题考核对象指针的定义与使用。分析程序:程序首先定义一个类point。类point中有两个私有成员,整型变量x和y,还有两个公有成员函数setpoint(intx1,inty1)和dispoint()。函数setpoint()用来设置私有成员x和y的值,而函数dispoint()用来显示私有成员x和y的值。主函数中,首先定义了类point的指针对象p,并申请了内存空间,然后调用对象p中公有成员setpoint给对象p中的私有成员x和y赋值,然后调用成员函数dispoint显示x和y的值。由此可知,最后输出的值应该是5,12。

  • 第21题:

    下列类的定义中正确的是()

    • A、class a{int x=0;int y=1;}
    • B、class b{int x=0;int y=1;};
    • C、class c{intx;int y;}
    • D、class d{intx;int y;};

    正确答案:D

  • 第22题:

    class Top {  static int x = 1;  public Top(int y) { x *= 3; }  }  class Middle extends Top {  public Middle() { x += 1; }  public static void main(String [] args) {  Middle m = new Middle();  System.out.println(x);  }  }  结果为:() 

    • A、1
    • B、2
    • C、3
    • D、编译失败

    正确答案:D

  • 第23题:

    单选题
    若有定义 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
    解析: 暂无解析