以下装箱、拆箱语句中,错误的有()A、 object obj=100;  int m=(int)obj;B、 object obj=100;  int m=obj;C、 object obj=(int)100;  int m=(int)obj;D、 object obj=(object)100;  int m=(int)obj;

题目

以下装箱、拆箱语句中,错误的有()

  • A、 object obj=100;  int m=(int)obj;
  • B、 object obj=100;  int m=obj;
  • C、 object obj=(int)100;  int m=(int)obj;
  • D、 object obj=(object)100;  int m=(int)obj;

相似考题
更多“以下装箱、拆箱语句中,错误的有()A、 object obj=100;  int m=(int)obj;B、 object obj=100;  int m=obj;C、 object obj=(int)100;  int m=(int)obj;D、 object obj=(object)100;  int m=(int)obj;”相关问题
  • 第1题:

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

    member = 0

    member = 5

    member = 10

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

    //mainl.cpp

    include <iostream>

    using namespace std;

    class MyClass

    {

    public:

    MyClass(int i)

    {

    member=i;

    }

    void SetMember(int m)

    {

    member=m;

    }

    int GetMember()const

    {

    return member;

    }

    void Print() const

    {

    cout<<"member="<<member<<end1;

    }

    private:

    int member;

    };

    int main()

    {

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

    MyClass obj1;

    obj1. Print();

    MyClass obj2(3);

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

    obj1.member = 5;

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

    MyClass. SetMember(10);

    obj1. Print();

    obj2. Print();

    return 0;

    }


    正确答案:修改后的主函数应该为: int main() { MyClass obj1(0); obj1.Print(); MyClass obj2(3); obj1.SetMember(5); obj2.SetMember(10); obj1.Print(); obj2.Print(); return 0; }
    修改后的主函数应该为: int main() { MyClass obj1(0); obj1.Print(); MyClass obj2(3); obj1.SetMember(5); obj2.SetMember(10); obj1.Print(); obj2.Print(); return 0; } 解析:本题主要考核类与对象的应用。程序中出现了3个出错标识符,说明此程序有3处错误。
    第1处错误:“MyClass obj1;obj1.Print();”,此时对象。obj1没有给出初始化值,所以应该改为“Myclass obj1(0);obj1.Print();”。
    第2处错误:“obj1.member=5;”,由于类MyClass中,数据成员member是私有成员不能通过类的对象。obj1访问。所以应该改为“obj1.SetMember(5);”。
    第3处错误:“MyClass.SetMember(10);”,此处MyClass是一个类名,这样的访问方式不合法,应该改为“obj2.SetMember(10);”。

  • 第2题:

    有如下程序:includeusing namespace std;class TestClass{static int i;public:TestC

    有如下程序: #include<iostream> using namespace std; class TestClass{ static int i; public: TestClass(){i++;} ~TestClass(){i--;} static int getVal(){return i;} }; int TestClass::i=0; void f(){TestClass obj2;cout<<obj2.getVal();} int main(){ TestClass obj 1; f(); TestClass *obj3=new TestClass;cout<<obj3->getVal(); delete obj3;cout<<TestClass::getVal(); return 0; } 程序的输出结果是( )。

    A.232

    B.221

    C.222

    D.231


    正确答案:B
    解析:有如下程序:  #includeiostream>  using namespace std;  class TestClass{    static int i;  public:    TestClass(){i++;}    ~TestClass(){i--;}    static int getVal(){return i;}  };  int TestClass::i=0;  void f(){TestClass obj2;coutobj2.getVal();}  int main(){    TestClass obj 1;    f();    TestClass *obj3=new TestClass;coutobj3->getVal();    delete obj3;coutTestClass::getVal();    return 0;  }  程序的输出结果是(  )。  

  • 第3题:

    把一个对象写到一个流中相对比较简单,具体是通过调用ObjectOutputStream类的writeObject()方法实现的,那么该方法的定义为( )。

    A.public final int writeObject(Object obj) throws IOException

    B.public final void writeObject(Object obj) throws IOException

    C.public Object writeObject(Object obj) throws IOException

    D.public final Object writeObject(Object obj) throws IOException


    正确答案:B
    解析:writeObject()方法的正确定义为: public final void writeObject(Object Obj) throws IOException。即B选项的定义是正确的。

  • 第4题:

    阅读以下程序:includeclass kk{int m;public:static int n;kk(){m=0;1void setvalu

    阅读以下程序: #include<iostream.h> class kk { int m; public: static int n; kk() { m=0; 1 void setvalue() { m++; n++; } void output() { cout<<"m="<<m<<",n="<<n<<endl; } }; int kk::n; void main() { kk obj1,obj2; obi1.Setvalue(); obj1.output(); obj2.setValue(); Obj2.output(); } 该程序的执行结果是( )。

    A.m=1,n=1

    B.m=l,n=l m=1,n=1 m=1,n=2

    C.m=1,n=1

    D.m=1,n=1 m=2,n=1 m=2,n=2


    正确答案:B

  • 第5题:

    有如下程序 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 = "+ObB) ; Test Obj1 = 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类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。

  • 第6题:

    include<iostream>

    include<string>

    using namespace std;

    class MyClass

    {

    public:

    MyClass(int i=0){member=i;}

    void SetMember(const string m){member="big"+m;m=member;}

    string GetMember(){return member;}

    void print()const{cout<<"Stu:"<<member<<endl;}

    private:

    string member;

    };

    void main()

    {

    MyClass obj1,*obj2;

    string i="wang lin";

    obj2=&obj1;

    obj2->SetMember(i);

    obj1.print();

    }


    正确答案:
    voidSetMember(conststringm){member=”big”+m;m=member;}。const修饰符的形参不能改变。应删去const或者删去m=member。

  • 第7题:

    若有以下程序:includeusing namespace std;class A{private:int x;public:int z;void

    若有以下程序:#include<iostream>using namespace std;class A {private: int x;public: int z; void setx(int i) { x=i; } int getx () { return x; }}:class B : public A{private: int m;public: int p; void setvalue(int a, int b, int c) { setx(a) ; z=b; m=c; } void display{) { cout<<getx ()<<", "<<z<<", "<<m<<end1; }};int main(){ B obj; obj. setvalue(2,3,4); obj.display(); return 0;} 程序运行以后的输出结果是

    A.产生语法错误

    B.2,3,4

    C.2,2,2

    D.4,3,2


    正确答案:B
    解析:本题考核继承与派生。当类的继承方式为公有继承时,基类的公有成员和保护成员分别作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。其他外部使用者只能通过派生类的对象访问继承来的公有成员。在本题中,数据成员z和函数setx都是基类A的公有成员,它们经过公有继承以后,在派生类B中还是公有成员,而派生类B中的函数setvalue和display都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是输出已设置的各成员的值。

  • 第8题:

    以下程序的执行结果为()。includeclass myClass{Dublic:myClass(intdata) ;myClass(

    以下程序的执行结果为( )。 #include<iostream.h> class myClass { Dublic: myClass(int data) ; myClass(){value=0; }; myClass(myClass &obj); void print(){ cout<<value<<end1; } ~myClass(){} private: int value; }; myClass::myClass(int data) {value=data; } myClass::myClass(myClass &Obj) { value=obj.value; } void main() { myClass a(100); myClass b(a) ; b.print(); }

    A.0

    B.100

    C.10

    D.程序编译时出错


    正确答案:B
    解析:题中类myClass定义了一个拷贝初始化构造函数myClass(myClass&obj)。在主函数中,系统首先自动调用相应的构造函数建立对象,然后调用拷贝构造函数对对象b进行初始化。所以程序最后的输出为100。

  • 第9题:

    11. public static void main(String[] args) {  12. Object obj =new int[] { 1,2,3 };  13. int[] someArray = (int[])obj;  14. for (int i: someArray) System.out.print(i +“ “)  15. }  What is the result? ()

    • A、 1 2 3
    • B、 Compilation fails because of an error in line 12.
    • C、 Compilation fails because of an error in line 13.
    • D、 Compilation fails because of an error in line 14.
    • E、 A ClassCastException is thrown at runtime.

    正确答案:A

  • 第10题:

    11.public static void main(String[]args){ 12.Object obj=new int[]{1,2,3}; 13.int[] someArray=(int[])obj; 14.for(inti:someArray)System.out.print(i+"") 15.} What is the result?()

    • A、123
    • B、Compilation fails because of an error in line 12.
    • C、Compilation fails because of an error in line 13.
    • D、Compilation fails because of an error in line 14.
    • E、A ClassCastException is thrown at runtime.

    正确答案:A

  • 第11题:

    单选题
    获取单列集合中元素的个数可以使用以下哪个方法?()
    A

    length()

    B

    size()

    C

    get(int index)

    D

    add(Object obj)


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

  • 第12题:

    单选题
    11.public static void main(String[]args){ 12.Object obj=new int[]{1,2,3}; 13.int[] someArray=(int[])obj; 14.for(inti:someArray)System.out.print(i+"") 15.} What is the result?()
    A

    123

    B

    Compilation fails because of an error in line 12.

    C

    Compilation fails because of an error in line 13.

    D

    Compilation fails because of an error in line 14.

    E

    A ClassCastException is thrown at runtime.


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

  • 第13题:

    public static void main(String[]args){12.Object obj=new int[]{1,2,3};13.int[] someArray=(int[])obj;14.for(inti:someArray)System.out.print(i+"")15.}What is the result?()

    A.123

    B.Compilation fails because of an error in line 12.

    C.Compilation fails because of an error in line 13.

    D.Compilation fails because of an error in line 14.

    E.A ClassCastException is thrown at runtime.


    参考答案:A

  • 第14题:

    有如下程序:include using namespace std;class Obj { static int i;public:Obj(){i+

    有如下程序:#include <iostream>using namespace std;class Obj { static int i;public: Obj(){i++;} -Obj(){i--;} static int getVal(){return i;} };int Obj::i=0;void f(){Obj ob2; cout<<ob2.getVal(); }hat main(){ Obj ob1; f(); Obj *ob3=new Obj; cout<<ob3->getVal(); delete ob3; cout<<Obj:: getVal(); return (); }程序的输出结果是( )。

    A.232

    B.231

    C.222

    D.221


    正确答案:D

  • 第15题:

    若有以下程序:include using namespace std;class A{private:int x;public:int z;voi

    若有以下程序:#include <iostream>using namespace std;class A{private: int x;public: int z; void setx(int i) { x=i; } int getx() { return x; }};class B: public A{private: int m;public: int p; void setvalue(int a, int b, int c) { setx(a); z=b; m=c; } void display() { cout<<getx()<<","<<z<<","<<m<<end1; }};int main(){ B obj; obj.setvalue(2,3,4); obj.display(); return 0;程序运行以后的输出结果是( )

    A.产生语法错误

    B.2,3,4

    C.2,2,2

    D.4,3,2


    正确答案:B

  • 第16题:

    有如下程序: #include<iostream> using namespace std; class Obj{ static int i; public: Obj{i++;} 一Obj{i一一;} static int getVal{return i;} }; int Obj::i=0: void f{Obj ob2;cout<<ob2.getVal;} int main{ Obj obl; f; Obj}ob3=new Obj;cout<<ob3一>getVal; delete ob3;cout<<Obj::getVal; return 0; } 执行这个程序的输出结果是( )。

    A.232

    B.231

    C.222

    D.221


    正确答案:D
    本题考查构造函数和析构函数的调用顺序,调用顺序为先构造的后析构,后构造的先析构。本题中先定义了一个对象ob1,会执行构造函数,那么i就变为了l;再执行函数f后,由于又定义了一个对象ob2,所以再次执行构造函数,i就变为了2,输出了2。函数执行完后执行析构函数,i变为了1,然后又定义了对象指针,i变为了2。释放ob3后,i变为了1,所以答案为D。

  • 第17题:

    若有以下程序: #include 〈iostream〉 using namespace std; class A { private: int x; public: int z; void setx(int i) { x=i; } int getx () { return x; } }; class B : public A { private: int m; public: int p; void setvalue(int a,int b, int C) { setx (A) ; z=b; m=c; } void display() { cout〈〈getx()〈〈","〈〈z〈〈","〈〈m〈〈end1; } }; int main ( ) { B obj; obj.setvalue(2,3,4); obj.display(); return 0; } 程序运行以后的输出结果是( )。

    A.产生语法错误

    B.2,3,4

    C.2,2,2

    D.4,3,2


    正确答案:B
    解析:本题考核公有继承中的类成员访问权限。当类的继承方式为公有继承时,基类的公有成员和保护成员分别作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。其他外部使用者只能通过派生类的对象访问继承来的公有成员。在本题中,数据成员z和函数setx()都是基类A的公有成员,它们经过公有继承以后,在派生类B中还是公有成员,而派生类B中的函数setValue()和display()都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是输出已设置的各成员的值。

  • 第18题:

    下面程序段的输出结果为 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(),注意根据参数个数来区分。

  • 第19题:

    有以下程序includeusing namespace std;class MyClass{public:MyClass(int n){number

    有以下程序 #include<iostream> using namespace std; class MyClass { public: MyClass(int n){number =n; } //拷贝构造函数 MyClass(MyClass& other) {number=other.number;} ~MyClass() {} private: int number; }; MyClass fun(MyClass p) { MyClass temp(p); return temp; } int main() { MyClass Obj1(10),obj2(0); MyClass obj3(obj1); obj2=fun(obj3); return 0; } 程序执行时,MyClass类的拷贝构造函数被调用的次数是

    A.5

    B.4

    C.3

    D.2


    正确答案:B
    解析:本题考核C++的拷贝构造函数。调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化;当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的析构函数被调用;在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象obj1来初始化obj3;obj3作为实参被传入;函数fun返回一个对象时;系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用4次。

  • 第20题:

    下列程序编译错误,是由于划线处缺少某个语句,该语句是______。 include class A { pr

    下列程序编译错误,是由于划线处缺少某个语句,该语句是______。

    include<iostream.h>

    class A

    {

    private:

    int numl;

    public:

    A( ):numl(0){}

    A(int i):numl(i){}

    };

    class B

    {

    private:

    int num2;

    public:

    B( ):num2(0){}

    B(int i):num2(i){}

    int my_math(A obj1, B obj2);

    };

    int B::my_math(A obj1,B obj2)

    {

    return(obj1.numl+obj2.num2);

    }

    void main(void)

    {

    A objl(4);

    B obj,obj2(5);

    cout<<"obj1+obj2:"<<obj.my_math(obj1,obj2);

    }


    正确答案:friend class B;
    friend class B; 解析:在B类中出现了对A类中私有成员numl的直接访问,这是不允许的。所以必须要把类B设成类A的友员才可以通过编译。

  • 第21题:

    获取单列集合中元素的个数可以使用以下哪个方法?()

    • A、length()
    • B、size()
    • C、get(int index)
    • D、add(Object obj)

    正确答案:B

  • 第22题:

    单选题
    以下装箱、拆箱语句中,错误的有()
    A

     object obj=100;  int m=(int)obj;

    B

     object obj=100;  int m=obj;

    C

     object obj=(int)100;  int m=(int)obj;

    D

     object obj=(object)100;  int m=(int)obj;


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

  • 第23题:

    单选题
    Given:   11. public static void main(String[] args) {   12. Object obj = new int[] { 1, 2, 3 };   13. int[] someArray = (int[])obj;   14. for (int i : someArray) System.out.print(i + " ");   15. }   What is the result? ()
    A

     Compilation fails because of an error in line 13.

    B

     A ClassCastException is thrown at runtime.

    C

     1 2 3

    D

     Compilation fails because of an error in line 14.

    E

     Compilation fails because of an error in line 12.


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