下列语句输出结果为()。public class test{public static void main(StringArgsl[]) {String s1=n

题目

下列语句输出结果为( )。 public class test { public static void main(StringArgsl[]) { String s1=new String("How"); String s2=new String("How"); System.out.println(!(s1==s2)); } }

A.false

B.true

C.1

D.0

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

第1题:

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

有如下程序: #include<iostream> using namespace std; class Test{ public: Test() {n+=2;} ~Test() {n-=3;} static int getNum(){return n;} private: static int n; }; int Test::n=1; int main() { Test*p=new Test; delete p; cout<<"n="<<Test::getNum()<<endl; return 0; } 执行后的输出结果是( )。

A.n=0

B.n=1

C.n=2

D.n=3


正确答案:A
解析:语句Test*p=new Test;会调用类的构造函数Test() {n+=2;},使n的值由原来的1变为3,然后delete p调用类的析构函数~Test() {n-=3;},因为n是static型变量,所以会在3的基础上减 3,使得输出结果为0。

第2题:

请将下列程序的横线处补充完整,使得输出结果为bbaaincludeusing namespace std;class

请将下列程序的横线处补充完整,使得输出结果为bbaa

include<iostream>

using namespace std;

class A{

public:

______{cout<<"aa";}

};

class B:public A{

public:

~B(){cout<<"bb";}

};

int main(){

B*p=new


正确答案:~A()
~A() 解析: 此题考查的是类的构造与析构。本题要求输出的结果中包含aa,所以基类A中横线处的函数一定要被执行。横线处应是定义基类的构造或者析构函数,如果定义的是构造,那么aa肯定在new操作时就输出,而下面的bb是在析构函数中,会在delete时被输出。故可以肯定应填入基类A的析构函数定义:~A()。

第3题:

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

Vehicle message

Car message

Vehicle message

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

include <iostream.h>

class vehicle

{

int wheels;

float weight;

public:

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

void message(void){ cout<<"Vehicle message\n";}

};

class car:public vehicle

{

int passenger_load;

public:

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

void message (void){cout>>"Car message\n";}

};

class truck:public vehicle

{

int passenger_load;

float payload;

public:

int passengers(void){return passenger_load;}

};

void main()

{

vehicle * unicycle;

unicycle=new vehicle;

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

unicycle.message()

delete unicycle;

unicycle=new car;

unicycle->message();

delete unicycle;

unicycle=new truck;

unicycle->message();

delete unicycle;

}


正确答案:(1)错误:void message(void){cout"Vehicle message\n";} 正确:virtual void message(void){cout"Vehicle message\n";} (2)错误:void message(void){cout>>"Carmessage\n”;} 正确:void message(void){eout"Carmessage\n";} (3)错误:unicycle.message(); 正确:unicycle->message();
(1)错误:void message(void){cout"Vehicle message\n";} 正确:virtual void message(void){cout"Vehicle message\n";} (2)错误:void message(void){cout>>"Carmessage\n”;} 正确:void message(void){eout"Carmessage\n";} (3)错误:unicycle.message(); 正确:unicycle->message(); 解析:(1)主要考查考生对于虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;
(2)主要考查考生对于流输出操作的掌握,该处错误的使用了流输入操作;
(3)主要考查考生是否能分清对象和对象指针,对象指针使用“->”调用成员函数,而对象使用“.”调用成员函数。

第4题:

请写出下面的输出:

class B

{

public:

virtual void Print(void)

{

printf(“B::Print\n”);

}

virtual void Reprint(void)

{

printf(“B:Reprint\n”);

}

void Algo(void)

{

Print();

Reprint();

}

};

class D : public B

{

public:

virtual void Print(void)

{

printf(“D::Print\n”);

}

};

void main()

{

B *p = new D();

p->Print();

p->Algo();

}


正确答案:
 

第5题:

有如下程序:include using namespace std;class Test{public:Test(){n+=2; }~Test(){

有如下程序: #include <iostream> using namespace std; class Test { public: Test() {n+=2; } ~Test() {n-=3; } static int getNum() {return n; } private: static int n; }; int Test::n=1; int main() { Test* p=new Test; delete p; cout<<"n="<<Test::getNum()<<endl; return 0; } 执行该程序的输出结果是( )。

A.n=0

B.n=1

C.n=2

D.n=3


正确答案:A
解析:此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员n的运算具有叠加性,执行“n+=2”和“n-=3”后n的值为0。

第6题:

如下程序的输出结果是includeusing namespace std;class Test{public:Test( ){n+=2;}

如下程序的输出结果是 #include<iostream> using namespace std; class Test{ public: Test( ){n+=2;} ~Test( ){n-=3;} static int getNum( ){return n;} private: static int n; }; int Test::n=1; int main( ){ Test*P=new Test: delete P; cout<<"n="<<Test::getNum( )<<endl; return 0; }

A.n=0

B.n=1

C.n=2

D. n=3


正确答案:A
解析:静态数据成员的初始值n=1,执行Test*p=new Test;,调用构造函数后,n= 3,deletep;调用析构函数,n-=3,所以最终n=0。

第7题:

有如下程序:include usingnamespacestd:class Test{public: Test(){n+=2; ~Test(){n-

有如下程序:#include <iostream>using namespace std:class Test{public: Test() {n+=2; ~Test() {n-=3; ; static int getNum() {return n;}privaue: static int n:};int Test::n=1;int main(){ Test* p=new Test; delete p; cout<<"n="<<Test::getNum()<<end1; return 0;} 执行后的输出结果是

A.n=0

B.n=1

C.n=2

D.n=3


正确答案:A
解析:本题考核静态数据成员与静态成员函数的定义与使用方式。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员.题中变量n是静态数据成员,对象对其操作的结果具有叠加作用,main函数中先定义了Test的对象*p,然后又delete p,所以对静态数据n进行了两次操作,分别是“n+=2”和“n-=3”,n的初始值是1,那么n最后的值变为0。main函数最后通过调用静态函数getNum得到n的值,并输出。

第8题:

下列程序的运行结果是【 】。 include class SomeClass { public: SomeClass(int va

下列程序的运行结果是【 】。

include <iostream. h>

class SomeClass

{

public:

SomeClass(int value) { some_value=value;};

void show_data(void) { cout<<data<<"<<~some_value<<endl; };

static void set_data(int value) {data=value; }

private:

static int data;

int some_value

};

int SomeClass::data

void main(void)

{

SomeClass my_class(1001),your_class(2002);

your_class. set_data(4004);

my_elass. show_data()

}


正确答案:4004 1001
4004 1001 解析:本题考查静态成员变量在不同对象间的共享现象。无论哪个对象修改了其静态变量的值,其他对象再访问该变量时已经发生了变化。

第9题:

有如下程序: include using namespace std;class Test {public: Test() {n+=2;} ~Tes

有如下程序: #include <iostream> using namespace std; class Test { public: Test() {n+=2;} ~Test() {n-=3;} static int getNum(){retum n;} private: static int n; }; int Test:: n=1; int main() { Test*p=new Test; delete p; cout<<"n="<<Test:: getNum()<<end1; return 0; };执行后的输出结果是______.

A.n=0

B.n=1

C.n=2

D.n=3


正确答案:A
解析:经过一次构造函数和析构函数的调用后,执行后的输出结果是A。

第10题:

阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
【说明】
以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5-1所示。




【Java代码】
interface?DrawCircle?{? //绘制圆形 public(1) ;}class?RedCircle?implements?DrawCircle?{? ?//绘制红色圆形???????public?void?drawCircle(int?radius,intx,?int?y)??{????????????System.out.println("Drawing?Circle[red,radius:"?+?radius?+",x:"?+?x?+?",y:"?+y+?"]");???????}}class?GreenCircle?implements?DrawCircle?{????//绘制绿色圆形??????public?void?drawCircle(int?radius,?int?x,int?y)?{???????????System.out.println("Drawing?Circle[green,radius:"?+radius+",x:?"?+x+?",y:?"?+y+?"]");??????}}abstract?class?Shape?{????//形状? protected? ? (2)???;? ? public?Shape(DrawCircle?drawCircle)?{? ?this.drawCircle=?drawCircle;? ? ? public?abstract?void?draw();}class?Circle?extends?Shape?{? //圆形? ?private?int?x,y,radius;? public?Circle(int?x,int?y,intradius,DrawCircle?drawCircle)?{? ?(3)???;? this.x?=?x;? ? ? this.y?=?y;? ?this.radius?=radius;? }? ? ?public?void?draw()?{? ? drawCircle.? ?(4)? ?;? ? ? }}public?class?DrawCircleMain?{? public?static?void?main(String[]?args)?{? Shape?redCircle=new?Circle(?100,100,10,? (5) );//绘制红色圆形? Shape?greenCircle=new?Circle(200,200,10,(6) );//绘制绿色圆形? ?redCircle.draw(); greenCircle.draw();? ?}}


答案:
解析:
(1)void drawCircle (int radius,int x,int y)
(2)DrawCircle drawCircle
(3)super.drawcircle=drawcircle
(4)drawCircle(radius,x,y)
(5)new RedCircle()
(6)new GreenCircle()【解析】
第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
第三空这里用super,用super. drawcircle来引用父类的成员。
第四空调用drawCircle(radius,x,y)方法。
第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。