计算机二级

分析下面程序,哪一行代码能正确赋值?()class Demo {public void method() {final int num1 = 10;static int num2 = 20;abstract int num3 = 30;private int num4 = 40;}}A.final int num1 = 10;B.static int num2 = 20;C.abstract int num3 = 30;D.private int num4 = 40;

题目
分析下面程序,哪一行代码能正确赋值?()class Demo {public void method() {final int num1 = 10;static int num2 = 20;abstract int num3 = 30;private int num4 = 40;}}

A.final int num1 = 10;

B.static int num2 = 20;

C.abstract int num3 = 30;

D.private int num4 = 40;

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

执行下面程序段,屏幕上将输出( )。 public class Test { private int x=10,y=20; public Test (int x,int y) { System.out.println (x+this.x); System.out.println (y+y); } public static void main (String[] args) { Testt= new Test(30,50); } }

A.无输出

B.20 40

C.40 100

D.40 70


正确答案:C
解析:通过new生成一个类的实例时,自动调用该类的构造方法,本题中的构造方法中有两个输出语句,因此A不正确。其余三个答案主要是考查局部变量和成员变量的区别。在方法中如要用成员变量,为区别于局部变量,必须用this关键字。第一个输出语句中的x为参数,是局部变量,其值为30,this.x引用的是成员变量,其值为10,因此第一个语句输出的值为40;第二个输出语句中的y都是局部变量,每一个y的值是接收到的参数值50,因此输出为100。

第2题:

下面这个程序的结果是includeclass A{private:int a;public:void seta();int geta(

下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta();int geta();}; void A∷seta() {a=1;} int A∷geta() {return a;} class B { pnvate: int a; publiC: void sera();int geta();}; void B∷seta() {a = 2;} int B∷geta() {return a;} class C:public A,public B { private: int b; public: void display();}; void C∷display() { int b=geta(); cout<<b;} void main() { C c; c.seta(); c.display();}

A.1

B.2

C.随机输出1或2

D.程序有错


正确答案:D
解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第3题:

有如下类定义:

class Test

{

public:

Test(){ a = 0; c = 0;} // ①

int f(int a)const{this->a = a;} // ②

static int g(){return a;} // ③

void h(int

B . {Test::b = b;}; // ④

private:

int a;

static int b;

const int c;

};

int Test::b = 0;

在标注号码的行中,能被正确编译的是

A . ①

B . ②

C . ③

D . ④


正确答案:C

第4题:

下面这个程序的结果是 include class A { private: int a; public: void seta( ) ;

下面这个程序的结果是

#include<iostream.h>

class A

{

private:

int a;

public:

void seta( ) ;int geta( ) ;};

void A: :seta( )

{ a=1;}

int A: :geta( )

{ retum a;}

class B

{ private:

int a;

public:

void seta( ) ;int geta( ) ;};

void B: :seta( )

{a=2;}

int B: :geta( )

{return a;}

class C: public A,public B

{ private:

int b;

public:

void display( ) ;};

void C: :display( )

{ int b=geta( ) ;

cout < < b;}

void main( )

{ C c;

c. seta( ) ;

c. display( ) ;}

A.1

B.2

C.随机输出1或2

D.程序有错


正确答案:D
解析:在类A中有geta( ) 函数,在类B中也有geta( ) 函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第5题:

给出下列代码,如何使成员变量m被方法fun( )直接访问?Class Test{private int m;public static void fun( ){} }

A.将private int m改为protected int m

B.将private int m改为public int m

C.将private int m改为static int m

D.将private int m改为int m


正确答案:C

第6题:

下列程序的功能是为变量赋值,程序运行后,输出i=51。请改动main方法中的错误,使程序能够正确编译、运行并输出正确的结果。

注意:不改动程序结构。

class A

{

private int a;

public void setA (int x)

{

a=x;

}

public int getA()

{

return a;

}

}

public class MethodTest

{

public static void main(String args[])

{

A a=A();

a.getA(51);

int i=a.getA();

System.out.println ("i="+i);

}

}


正确答案:改正后的main方法如下: public static void main(String args[]) { A a=new A(); a.getA(51); int i=a.getA(); System.out.println("i="+i); }
改正后的main方法如下: public static void main(String args[]) { A a=new A(); a.getA(51); int i=a.getA(); System.out.println("i="+i); } 解析:本题综合考查类及类成员的定义与使用方面的知识。该程序中定义了两个类:A和MethodTest,类A中封装了一个私有的成员变量a和两个公有的方法setA和getA。在类MethodTest中包含了main方法。创建对象应使用new操作符来实例化对象,程序在创建对象a时未使用new,故存在错误。由于a是对象a的私有变量,在main方法中不能直接访问,只能通过对象a的公有方法setA和getA来访问。公有方法setA的功能是将传递回来的参数值赋给a,所以应当调用setA方法来为变量a赋值。

第7题:

下面程序的输出结果是什么? class C1{ static int j=0; public void method(int a){ j++; } } class Test extends C1{ public int method(){ return j++; } public void result(){ method(j); System.out.println(j+method()); } public static void main(String args[]){ new Te

A.0

B.1

C.2

D.3


正确答案:C

第8题:

有以下程序:includeusing namespace std;class A{private:int a;public:A(int i){a=i

有以下程序: #include<iostream> using namespace std; class A {private: int a; public: A(int i) {a=i;} void disp() {cout<<a<<“,”;}}; class B {private: int b; public: B(int j) {b=j;} void disp() {cout<<b<<“,”;

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析: 本题中,派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。

第9题:

给出下列代码,如何使成员变量m被方法fun( )直接访问? class Test{ private int m; public static void fun( ){ … } }

A.将private int m改为protected int m

B.将private int m改为public int m

C.将private int m改为static i

D.将private int m改为int m


正确答案:C
解析:在静态方法中不能直接访问非静态的成员,如果要在fun()中直接访问变量m,应将变量m用static修饰。

第10题:

有以下程序:include using namespace std;class A{private:int a;public:A (int i){a

有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A (int i) { a=i; } void disp() { cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<","; } }; class C : public B,public A { private: int c; public: C(int k) :A(k-2),B(k+2) { c=k; } void disp () { A::disp (); B::disp (); cout<<c<<endl; } }; int main () { C obi (10); obj.disp (); return 0; } 程序执行后的输出结果是

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析:本题考核派生类构造函数的使用。本题中,派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。

更多相关问题