class Foo {  private int x;  publicFoo(intx) {this.x=x; }  p

题目
单选题
class Foo {  private int x;  publicFoo(intx) {this.x=x; }  public void setX( int x) { this.x = x; }  public int getX() { return x; }  }   public class Gamma {  static Foo fooBar( Foo foo) {  foo = new Foo( 100);  return foo;  }  public static void main( String[] args) {  Foo foo = new Foo( 300);  System.out.print( foo.getX() + “-“);  Foo fooFoo = fooBar( foo);  System.out.print( foo.getX() + “-“);  System.out.print( fooFoo.getX() + “-“);  foo = fooBar( fooFoo);  System.out.print( foo.getX() + “-“);  System.out.prmt( fooFoo.getX());  }  }  What is the output of this program?()
A

 300-100-100-100-100

B

 300-300-100-100-100

C

 300-300-300-100-100

D

 300-300-300-300-100

参考答案和解析
正确答案: C
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序: include using namespace std; class Part{ public:

有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x) { cout<<val; } ~Part() { cout<<val; } private: int val; }; class Whole { public: Whole(int x, int y, int z=0):p2(x),p1 (y),val(z) { cout<<val; } ~whole() { cout<<val; private: Part p1,p2; int val; }; int main() { Whole obj (1,2,3); return 0; }程序的输出结果是

A.123321

B.213312

C.213

D.123123


正确答案:B
解析:本题考查的知识点是:类的构造与析构。建立一个类的对象时,构造函数的执行顺序如下:
①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下:(如果一行声明了多个对象,则还要遵循自左向右)
③执行自身的构造函数。
析构顺序与之相反。本题的Whole类没有基类,但有两个Part类的成员p1和p2。根据它们定义的顺序,应该先构造p1再构造p2,而不是按Whole的构造函数中初始化列表的顺序那样构造。所以,第1个被构造的是p1(y),输出一个2;第2个被构造的是p2(x),输出一个1;最后调用自身构造函数,输出val的值3。析构函数严格与之相反。故输出结果为213312,本题应该选择B。

第2题:

classFoo{

privateintx;

publicFoo(intx){this.x=x;}

publicvoidsetX(intx){this.x=x;}

publicintgetX(){returnx;}

}

publicclassGamma{

staticFoofooBar(Foofoo){

foo=newFoo(100);

returnfoo;

}

publicstaticvoidmain(String[]args){

Foofoo=newFoo(300);

System.out.print(foo.getX()+-);

FoofooFoo=fooBar(foo);

System.out.print(foo.getX()+-);

System.out.print(fooFoo.getX()+-);

foo=fooBar(fooFoo);

System.out.print(foo.getX()+-);

System.out.prmt(fooFoo.getX());

}

}

Whatistheoutputofthisprogram?()


参考答案:B

第3题:

有如下类定义:

class Foo

{

public:

Foo(int v):value(v){} // ①

~Foo(){} // ②

private:

Foo(){} // ③

int value = 0; // ④

};

其中存在语法错误的行是

A . ①

B . ②

C . ③

D . ④


正确答案:D

第4题:

有以下程序:includeusingnamespacestd;definePI3.14classPoint{private: intx,y;pub

有以下程序: #include <iostream> using namespace std; #define PI 3.14 class Point { private: int x,y; public: Point(int a,int b) { x=a; y=b; } int getx() { return x; } int gety() { return y; } }; class Circle : public Point { private: int r; public: Circle(int a,int b,int c):Point(a,b) { r=c; } int getr() { return r; } double area() { return PI*r*r; } }; int main() { Circle c1(5,7,10); cout<<cl.area()<<endl; return 0; } 程序执行后的输出结果是

A.314

B.157

C.78.5

D.153.86


正确答案:A
解析:本题考核派生类的定义和应用。本程序设计了一个点类Point,包含了横、纵两个坐标数据x和y,由它派生出了圆类Circle,并加入了新的数据成员,即一个半径r和一个求圆面积的函数成员area。在主函数main中,首先定义了一个圆Circle类的对象c1,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10*10=314,即对象c1的函数成员area的返回值为314。

第5题:

有如下程序:includeusing namespace std;class Part{public:Part(int x=0):val(x) {c

有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x) {cout<<val;} ~Part(){cout<<val;} private: int val; }; class Whole{ public: Whole(int x ,int y, int z=0):p2(x),p1(y),val(z){cout<<val;} ~Whole(){cout<<val;} private: Part p1,p2; int val; }; int main() Whole obj(1,2,3); return 0; } 程序的输出结果是( )。

A.123321

B.213312

C.213

D.123123


正确答案:B
解析:此题考查的是类的构造与析构。在建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右),接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。析构顺序与之相反。本题中,Whole类中有两个Part类的成员p1和p2,根据它们定义的顺序,先构造p1再构造p2。所以,首先被构造的是p1(y),输出2;第二个被构造的是p2(x),输出1;最后调用析构函数,输出val的值3;析构函数调用顺序与构造函数相反。故最后输出213312。

第6题:

在如下源代码文件Test.java中, 哪个是正确的类定义?()

A.public class test { public int x = 0; public test(int x) { this.x = x; } }

B.public class Test{ public int x=0; public Test(int x) { this.x = x; } }

C.public class Test extends T1, T2 { public int x = 0; public Test (int x) { this.x = x; } }

D.public class


正确答案:BD

第7题:

10.publicclassFooimplementsjava.io.Serializable{11.privateintx;12.publicintgetX(){returnx;}12.publicFoo(intx){this.x=x;}13.privatevoidwriteObject(ObjectOutputStreams)14.throwsIOException{15.//insertcodehere16.}17.}Whichcodefragment,insertedatline15,willallowFooobjectstobecorrectlyserializedanddeserialized?()

A.s.writeInt(x);

B.s.serialize(x);

C.s.writeObject(x);

D.s.defaultWriteObject();


参考答案:D

第8题:

( 29 )有如下程序:

#include<iostream>

using namespace std;

class Part{

public:

Part(int x=0):val(x) {cout<<val;}

~Part(){cout<<val;}

private:

int val;

};

class Whole{

public:

Whole(int x ,int y, int z=0):p2(x),p1(y),val(z){cout<<val;}

~Whole(){cout<<val;}

private:

Part p1,p2;

int val;

};

int main(){

Whole obj(1,2,3);

return 0;

}

程序的输出结果是

A ) 123321

B ) 213312

C ) 213

D ) 123123


正确答案:B

第9题:

有如下类的定义。横线处的语句是( )。 class MyClass { public: MyClass(int a=0,int b=0) { X=a; Y=b; } void Change()const { X-=10; Y+=10; } private: ______intX, Y;

A.static

B.const

C.mutable

D.不需要填入内容


正确答案:C
解析:C++中const关键字用来表示一个常量,同时const也用来修饰函数。这两个概念需要明确:const所修饰的函数只能是类的成员函数,因为const所修饰的函数中,要由编译器负责保护类的成员变量不被修改。而相对的,mutable则是用来修饰类的成员变量,让该变量在const所修饰的成员函数中可以被修改。而且const修饰的函数只能是类的成员函数,mutable修饰的变量只能是类的成员变量。

第10题:

有以下程序: include class A { intx; public: A(int a) { x=a;} friend class B;

有以下程序:

include<iostream.h>

class A

{

int x;

public:

A(int a)

{

x=a;

}

friend class B;

}

class B{

public:

void print(A a){

a. x--;

cout<<a.x<<end1;

}

};

void main()

{

A a(10);

B b;

b.print(a) ;

}

程序执行后的输出结果是【 】。


正确答案:9
9 解析:本题考核友元类的应用。在程序中,类B是类A的友元类,因此,在类B的所有成员函数中均可访问类A的任何成员。在main()中,先定义类A的一个对象a(10)和类B的一个对象b。然后通过对象b调用其成员函数print输出对象a的私有成员x的值减1即9。

更多相关问题