下面程序段的输出结果为( )。 publicclass Test { int a,b; Test() { a=100; b=200; } Test(intx,inty) { a=X; b=y; } publicstaticvoidmain(Stringargs[]) { TestObj1=newTest(12,45); System.out.println("a="+Obj1.a+" b="+Obj1.b); TestObj2=newTest(); System.out.println("a="+Obj2

题目

下面程序段的输出结果为( )。 publicclass Test { int a,b; Test() { a=100; b=200; } Test(intx,inty) { a=X; b=y; } publicstaticvoidmain(Stringargs[]) { TestObj1=newTest(12,45); System.out.println("a="+Obj1.a+" b="+Obj1.b); TestObj2=newTest(); System.out.println("a="+Obj2.a+"b="+Obj2.b); } }

A.a=100b=200 a=12 b=45

B.a=12 b=45 a=100b=200

C.a=12 b=200 a=100b=45

D.a=100b=45 a=12 b=200


相似考题
更多“下面程序段的输出结果为()。publicclass Test{int a,b;Test(){a=100;b=200;}Test(intx,inty){a=X; ”相关问题
  • 第1题:

    使用VC6打开考生文件夹下的工程test30_1,此工程包含一个源程序文件test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:

    Previous=9,Next=11

    源程序文件test30_1.cpp清单如下:

    include <iostream.h>

    /***************** found *****************/

    void prevnext (int,int &,int&);

    int main ( )

    {

    int x=10,y,z;

    prevnext (x,y,z);

    cout << "Previous=" << y << ", Next=" << z<<end1;

    return 0;

    }

    /***************** found *****************/

    void prevnext (int x, int prev, int next)

    {

    /***************** found *****************/

    prev=x--;

    next=++x;

    }


    正确答案:(1)错误:在main()函数前缺少prevnext函数的声明 正确:void prevnext(intint &int &); (2)错误:void prevnext(int xint prevint next) 正确:void prevnext(int xint &prevint &next) (3)错误:prev=x--; 正确:prev=x-1;
    (1)错误:在main()函数前缺少prevnext函数的声明 正确:void prevnext(int,int &,int &); (2)错误:void prevnext(int x,int prev,int next) 正确:void prevnext(int x,int &prev,int &next) (3)错误:prev=x--; 正确:prev=x-1; 解析:(1)函数在使用前必须已经被定义,main()中调用prevnext函数,而该函数的实现在main()之后,所以在main()之前必须添加该函数的声明;
    (2)由运行结果可知,通过函数prevnext调动要改变main()中的实参值,所以prey和next都应为引用型参数:
    (3)由运行结果prev=x-1,而源程序的prev=x,x=x-1,这里涉及的是运算符的优先级问题。

  • 第2题:

    下面程序段的输出结果为( )。 public class Test { int a,b; Test { a=100; b=200: } Test(int X,int y) { a=x: b=y; } public static void main(String args[]) { Test bjl=new Test(12,45); System.OUt.println("a="+Objl.a+"b="+Objl. b); Test Obj2=new Test; System.out.println("fl="+Obj2.a+"b="+Obj2. b); } }

    A.a=100 b=200 a=12 b=45

    B.a=12 b=45a=100 b=200

    C.a=12 b=200 a=100 b=45

    D.a=100 b=45 a=12 b=200


    正确答案:B
    B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest调用的是Test,注意根据参数个数来区分。

  • 第3题:

    下面程序段的输出结果为 public class Test { int a, b; Test() { a=100; b=200; } Test(int x,int y) { a=x; b=y; } public static void main(String args[]) { Test Obj1=new Test(12,45); System.out.println("a=+Obj1.a+" b="+Obj1.B) ; Test Obj2=new Test(); System.out.println("="+Obja+" b="+ObjB) ; } }

    A.a=100 b=200 a=12 b=45

    B.a=12 b=45 a=100 b=200

    C.a=12 b=200 a=100 b=45

    D.a=100 b=45 a=12 b=200


    正确答案:B
    解析:本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObj1=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest渊用的是Test(),注意根据参数个数来区分。

  • 第4题:

    下列程序段的输出结果是______。 public class Test{ int a,b; Test( ){ a=100; b=200; } Test(int x,int y){ a=X; b=y; } public static void main(String args[ ]){ Test Obj1=new Test(12,45); System.out.println("a="+Obj1.a+"b="+Obj1.B); Test Obj2=new Test( ); System.out.println("a="+Obj1.a+"b="+Obj1.B); } }

    A.a=100 b=200 a=12 b=45

    B.a=12 b=45 a=100 b=200

    C.a=12 b=200 a=100 b=45

    D.a=100 b=45 a=12 b=200


    正确答案:B
    解析: 本程序中Test类有两个构造方法,亦即使用了重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。

  • 第5题:

    3下面程序段的输出结果为( )。public class Test{ int a, b; Test() { a=100; b=200; } Test(int x, int y) { a=x; b=y; } public static void main(String args[]) { Test Obj 1 = new Test(12,45 ); System.out.println("a="+Obja+" b="+Objb); Test Obj2 = new Test(); System.out.println("a="+Obja+" b="+Objb); }}

    A.a=100 b=200 a=12 b=45

    B.a=12 b=45 a=100 b=200

    C.a=12 b=200 a=100 b=45

    D.a=100 b=45 a=12 b=200


    正确答案:B