以下程序调试结果为:class Base{Base(){int i = 100;System.out.print (i);}}public class Pri extends Base{static int i = 200;public static void main(String argv[]){Pri p = new Pri();System.out.print(i);}}A.编译错误B.200C.100200D.100

题目
以下程序调试结果为:class Base{Base(){int i = 100;System.out.print (i);}}public class Pri extends Base{static int i = 200;public static void main(String argv[]){Pri p = new Pri();System.out.print(i);}}

A.编译错误

B.200

C.100200

D.100


相似考题
更多“以下程序调试结果为:class Base{Base(){int i = 100;System.out.print (i);}}public class Pri extends Base{static int i = 200;public static void main(String argv[]){Pri p = new Pri();System.out.print(i);}} ”相关问题
  • 第1题:

    为完成下面的程序,应在划线处填入的语句是includeusingnamespace std;class Base{pri

    为完成下面的程序,应在划线处填入的语句是 #include<iostream> using namespace std; class Base { private: int x; public: Base (int i) { x=i; } ~Base(){} }; class Derived:public Base { public: ______________//完成类Derive构造函数的定义 }; int main() { Derived Obj; return 0; }

    A.Derived(int i):Base(i){}

    B.Derived(){}

    C.void Derived (int i):Base(i){}

    D.Derived(int i){Base(i);}


    正确答案:A
    解析:本题考核派生类中的构造函数。程序中,类Derived是基类Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。

  • 第2题:

    下面程序段的输出结果是 class Base { int i; Base() { add(1); } void add(int v) { i+=v; } void print() { System.out.println(i); } } class Extension extends Base { Extension() { add(2); } void add(int v) { i+=v*2; } } public class Test { public static void main(String args[]) { bogo(new Extension()); } static void bogo(Baseb){ b.add(8); b.print(); } }

    A.9

    B.18

    C.20

    D.22


    正确答案:D
    解析:本题考查继承和构造函数的用法。首先要明确对一个类的继承是指在父类的基础上构建了一个子类,子类继承了父类的方法和状态。题目所给程序段创建的是Extension类的实例,在运行时,从main()函数进入程序,所有调用add()方法的过程将始终和Extension类的add()方法动态绑定。初始值:i=0;创建实例new Extension();先调用父类的默认构造函数Base(),并在父类的默认构造函数中执行add(1),i=0+1×2,所以i=2,再调用子类的默认构造函数Extension(),子类的默认构造函数中执行add(2),i=2+2×2,所以i=6;执行add(8);i=6+8×2,因此,最终i=22,正确答案为选项D。

  • 第3题:

    如下程序是为变量i赋值。若程序的输出结果是180。请将程序补充完整。

    注意:不改动程序结构,不得增行或删行。

    class Base

    {

    int i;

    Base()

    {

    add(10);

    }

    void add(int v)

    {

    i+=v;

    }

    void print()

    {

    System.out.println(i);

    }

    }

    class Extension extends Base

    {

    Extension()

    {

    add(______);

    }

    void add(int v)

    {

    i+=v*2;

    }

    }

    public class ConstructTest3

    {

    public static void main(String args[])

    {

    bogo(new Extension());

    }

    static void bogo(Base b)

    {

    b.add(60);

    b.print();

    }

    }


    正确答案:20
    20 解析:本题综合考查了几个知识点,如调用子类的构造函数时,会先调用父类的构造函数;如果在子类的构造函数中没有显示调用父类的构造函数,那么创建子类的实例时,会先调用父类的缺省构造函数;方法的动态绑定。这些知识是考试的难点。以上代码创建的是Extension类的实例,所以,在运行时,所有调用add()方法的过程,将始终和Extension类的 add()方法动态绑定。以下是程序依次对变量i的改变过程。
    初始值:i=0
    Step1:创建实例new Extension()
    先调用父类的缺省构造函数Base(),注意,父类中的add方法已被子类重写。父类的缺省构造函数中执行add(10),i=0+10*2得到i=20,再调用子类的缺省构造函数Extension(),假设横线处应填入的数是x,子类的缺省构造函数中执行add(x),i=20+x*2。
    step2:执行add(60)
    i=20+x*2+60*2=180得到x=20

  • 第4题:

    下面程序的打印结果是【】。 include using namespace std; class Base { public:Base(i

    下面程序的打印结果是【 】。

    include <iostream>

    using namespace std;

    class Base

    {

    public:

    Base(int x)

    {

    a=x;

    }

    void show()

    {

    cout<<a;

    }

    private:

    int a;

    };

    class Derived : public Base

    {

    public:

    Derived(int i) :Base(i+1) ,b(i) { }

    void show()

    {

    cout<<b;

    }

    private:

    int b;

    };

    int main ( )

    {

    Base b(5) , *pb;

    Derived d(1);

    pb=&d;

    pb->show();

    return 0;

    }


    正确答案:2
    2 解析:基类Base派生出派生类Derived,在主函数中,定义了基类对象b,基类指针pb,以及派生类对象d,并让基类指针pb指向派生类对象乙在C++中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb->show();”是调用基类的成员函数show(),输出a的值2。

  • 第5题:

    写出程序的输出结果:

    public class A

    {

    public virtual void Fun1(int i)

    {

    Console.WriteLine(i);

    }

    public void Fun2(A a)

    {

    a.Fun1(1);

    Fun1(5);

    }

    }

    public class B : A

    {

    public override void Fun1(int i)

    {

    base.Fun1 (i + 1);

    }

    public static void Main()

    {

    B b = new B();

    A a = new A();

    a.Fun2(b);

    b.Fun2(a);

    }

    }


    正确答案:
     

  • 第6题:

    下列程序的运行结果是______。 include class Base { public: virtual void func(int

    下列程序的运行结果是______。

    include<iostream.h>

    class Base

    {

    public:

    virtual void func(int i){cout<<"class Base:"<<i<<end1;)

    };

    class Derived: public Base

    {

    public:

    void func(double d){cout<<"class Derived:"<<d<<endl;}

    };

    void main( )

    {

    Base a,*p=a;

    Derived b;

    p=&b;

    (*p).func(3.3);

    }


    正确答案:class Base:3
    class Base:3 解析:题中基类和派生类中有同名函数,但是参数不同。派生关系中,只有在函数类型、函数名和参数个数、参数类型完全相同时,才表现多态性。本题中参数不同,编译器便认为是两个完全不同的函数。通过基类的指针指向派生类对象时,该指针只能访问到派生类中具有多态性的成员函数,而与基类无关的函数是无法通过基类指针来访问的。故调用的是base类的 func函数,系统将3.3强制转化为整型数3。如果将派生类中的func的形参改为int型,则执行的就会是派生类的func函数,此时表现为多态。

  • 第7题:

    以下的程序的调试结果为?public class MyAr{public static void main(String argv[]) {MyAr m = new MyAr();m.amethod();}public void amethod(){static int i;System.out.println(i);}}

    A. 输出结果为 0

    B. 运行出错

    C. 输出结果为 null

    D. 编译错误


    正确答案:D

  • 第8题:

    以下的程序的调试结果为public class Scope{int i;public static void main(String argv[]){Scope s = new Scope();s.amethod();}public static void amethod(){System.out.println(i);}}

    A. 输出结果为:0

    B. 无输出

    C. 编译错误

    D. 输出null


    正确答案:C

  • 第9题:

    下列程序的输出结果是______。 include class base { int x,y; public: base(int i,i

    下列程序的输出结果是______。

    include<iostream.h>

    class base

    {

    int x,y;

    public:

    base(int i,int j){x=i;y=j;}

    virtual int add( ){return x+y;}

    };

    class three:public base

    {

    int z;

    public:

    three(int i,int j,int k):base(i,j){z=k;)

    int add( ){return(base::add( )+z);}

    };

    void main( )

    {

    three*q=new three(10,20,30);

    cout<<q->add( )<<endl;

    }


    正确答案:60
    60 解析:本题考察继承中子类对父类的继承方式,注意子类的add成员函数,它直接使用了父类的成员函数进行运算。

  • 第10题:

    public class Base {  public static final String FOO = “foo”;  public static void main(String[] args) {  Base b = new Base();  Sub s = new Sub();  System.out.print(Base.FOO);  System.out.print(Sub.FOO);  System.out.print(b.FOO);  System.out.print(s.FOO);  System.out.print(((Base)s).FOO);  } }  class Sub extends Base {public static final String FOO=bar;}  What is the result?() 

    • A、 foofoofoofoofoo
    • B、 foobarfoobarbar
    • C、 foobarfoofoofoo
    • D、 foobarfoobarfoo
    • E、 barbarbarbarbar
    • F、 foofoofoobarbar
    • G、 foofoofoobarfoo

    正确答案:D

  • 第11题:

    单选题
    class Base {  Base() { System.out.print(“Base”); }  }  public class Alpha extends Base {  public static void main( String[] args ) {  new Alpha();  new Base();  }  }  What is the result?()
    A

     Base

    B

     BaseBase

    C

     Compilation fails.

    D

     The code runs with no output.

    E

     An exception is thrown at runtime.


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

  • 第12题:

    单选题
    public class Base {  public static final String FOO = “foo”;  public static void main(String[] args) {  Base b = new Base();  Sub s = new Sub();  System.out.print(Base.FOO);  System.out.print(Sub.FOO);  System.out.print(b.FOO);  System.out.print(s.FOO);  System.out.print(((Base)s).FOO);  } }  class Sub extends Base {public static final String FOO=bar;}  What is the result?()
    A

     foofoofoofoofoo

    B

     foobarfoobarbar

    C

     foobarfoofoofoo

    D

     foobarfoobarfoo

    E

     barbarbarbarbar

    F

     foofoofoobarbar

    G

     foofoofoobarfoo


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

  • 第13题:

    在下列程序的划线处应填入的语句是class Person { private int a;}public class Man extends Person{ public int b; public static void main (String arg []){ Person p=new Person(); Man t=new Man(); int i: }}

    A.i=w;

    B.i=b

    C.i=p.a;

    D.i=t.b;


    正确答案:D
    解析:选项A)w没有被声明过,不能使用。选项B)虽然b是类Man的public成员变量,但是在静态方法中不能使用类中的非静态成员。选项C)a是类Person的private成员,在类外不能直接引用。选项D)b是类Man的public成员变量,且是int 型,可以通过类的实例变量t用并赋值给一个int型变量。

  • 第14题:

    有以下程序 include using namespace std; class Base { int a; public: Base(int x)

    有以下程序

    include <iostream>

    using namespace std;

    class Base

    {

    int a;

    public:

    Base(int x){ a=x; }

    void show(){ cout<<a; }

    class Derived : public Base

    {

    int b;

    public:

    Derived(int i) :Base(i+1),b(i){}

    void show() { cout<<b;

    };

    int main ()

    {

    Base b(5),*pb;

    Derived d(1);

    pb=&d;

    pb->show ();

    return 0;

    }

    运行后的打印结果是______。


    正确答案:2
    2 解析:本题考核基类指针与派生类指针的使用。本例程序中类Derived是从基类Base公有继承来的。main()中定义了基类对象b和一个基类指针pb,又定义了派生类Derived的对象d。由于Derived是Base的子类型,因此可以将派生类Derived的对象d的地址赋值给指向基类Base的指针pb,但这时指针pb只能使用从基类Base继承的成员。所以通过对象指针Pb调用的show函数是基类的成员函数show(),从而输出基类私有数据成员a的值2。

  • 第15题:

    有如下程序: include using namespace std class Base{ int b; public: Base(int i) {

    有如下程序:

    include<iostream>

    using namespace std

    class Base{

    int b;

    public:

    Base(int i) {b=i;}

    Void disp ( ) {cout<<"Base:b="<<b<<''; }

    };

    class Base1:virtual public Base{

    public:

    Base1(int i):Base(i){}

    };

    class Base2:virtual public Base{

    public:

    Base2(int i):Base(i){}

    };

    class Derived:public Basepublic Base1{

    int d;

    public:

    Derived(int i ,int j):Base1(j),Base2(j),【 】

    { d=i; }

    void disp() {cout<<"Derived:d="<<d<<' ';}

    };

    int main()

    Derived objD(1,2);objD. disp()

    objD. Base::disp();

    objD. Base1::disp()

    objD. Base2::disp();

    return 0;

    }

    请将程序补充完整,使程序在运行时输出:

    Derivd:d=1 Base:b=2 Base:b=2 Base:b=2


    正确答案:Base(j)
    Base(j) 解析:因为程序在运行时输出:Derivde:d=1 Base:b=2 Base:b=2 Base:b=2,而前两个Base:b=2 Base:b=2分别来自Base1(j),Base2(j),而在程序类的声明中,Base类也具有输出Base:b=2的功能。所以,程序中应补充的代码为Base(j)。

  • 第16题:

    下面程序段的输出结果是( )。 class Base { int i; Base { add(1); } void add(int v) { i+=v: } void print { System.out.println(i); } } class Extension extends Base { Extension { add(2); } void add(int v) { i+=v*2: } } public class Test { public static void main(String args[]) { bogo(new Extension); } static void bogo(Base b) { add(8); print; } }

    A.9

    B.18

    C.20

    D.22


    正确答案:D
    D。【解析】本题考查继承和构造函数的用法。首先要明确对一个类的继承是指在父类的基础上构建了一个子类,子类继承了父类的方法和状态。题目所给程序段创建的是Extension类的实例,在运行时,从main函数进入程序,所有调用add方法的过程将始终和Extension类的add方法动态绑定。初始值:i=0;创建实例newExtension;先调用父类的默认构造函数Base,并在父类的默认构造函数中执行add(1),i=O+1×2,所以i=2,再调用子类的默认构造函数Extension,子类的默认构造函数中执行add(2),i-2+2×2,所以i=6;执行add(8);i=6+8×2,因此,最终i=22,正确答案为选项D。

  • 第17题:

    当你编译运行下列程序代码,会得到什么结果?

    private class Base{ Base(){ int i = 100; System.out.println(i); } }

    public class Pri extends Base{ staticint i = 200;

    public static void main(String argv[]){ Pri p = new Pri(); System.out.println(i); } }

    A.这段代码不能通过编译

    B.输出200

    C.输出100和200

    D.输出100


    正确答案:A

  • 第18题:

    设有类定义如下:

    class Base{

    public Base(int i){}

    }

    public class MyOver extends Base{

    public static void main(String arg[]){

    MyOver m = new MyOver(10);

    }

    MyOver(int i){

    super(i);

    }

    MyOver(String s, int i){

    this(i);

    //Here

    }

    }

    以下哪条语句可以安排在//Here处 ?

    A.MyOver m = new MyOver();

    B.super();

    C.this("Hello",10);

    D.Base b = new Base(10);


    正确答案:D

  • 第19题:

    以下程序的运行结果为?

    class ValHold{

    public int i = 10;

    }

    public class ObParm{

    public static void main(String argv[]){

    ObParm o = new ObParm();

    o.amethod();

    }

    public void amethod(){

    int i = 99;

    ValHold v = new ValHold();

    v.i=30;

    another(v,i);

    System.out.print( v.i );

    }

    public void another(ValHold v, int i){

    i=0;

    v.i = 20;

    ValHold vh = new ValHold();

    v = vh;

    System.out.print(v.i);

    System.out.print(i);

    }

    }

    A.10030

    B. 20030

    C. 209930

    D. 10020


    正确答案:D

  • 第20题:

    设有如下代码:

    class Base{}

    public class MyCast extends Base{

    static boolean b1=false;

    static int i = -1;

    static double d = 10.1;

    public static void main(String argv[]){

    MyCast m = new MyCast();

    Base b = new Base();

    //Here

    }

    }

    则在 //Here处插入哪个代码将不出现编译和运行错误。

    A.b=m;

    B.m=b;

    C.d =i;

    D.b1 =i;


    正确答案:AC

  • 第21题:

    Which are syntactically valid statement at// point x?()     class Person {     private int a;  public int change(int m){  return m;  }     }  public class Teacher extends Person {     public int b;  public static void main(String arg[]){     Person p = new Person();     Teacher t = new Teacher();    int i;  // point x     }    } 

    • A、 i = m;
    • B、 i = b;
    • C、 i = p.a;
    • D、 i = p.change(30);
    • E、 i = t.b.

    正确答案:D,E

  • 第22题:

    class Base {  Base() { System.out.print(“Base”); }  }  public class Alpha extends Base {  public static void main( String[] args ) {  new Alpha();  new Base();  }  }  What is the result?()  

    • A、 Base
    • B、 BaseBase
    • C、 Compilation fails.
    • D、 The code runs with no output.
    • E、 An exception is thrown at runtime.

    正确答案:B

  • 第23题:

    单选题
    What will be written to the standard output when the following program is run?()   class Base {  int i;  Base() {   add(1);   }   void add(int v) {  i += v;  }   void print() {  System.out.println(i);  }   }   class Extension extends Base {  Extension() {  add(2);  }   void add(int v) {  i += v*2;  }  }   public class Qd073 {   public static void main(String args[]) {  bogo(new Extension());  }   static void bogo(Base b) {  b.add(8);  b.print();   }   }
    A

    9

    B

    18

    C

    20

    D

    21

    E

    22


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