执行下面代码,结果正确的是_______。 class MyClass: __a = 10 b = 100 x = MyClass() print(x.b) print(x.__a)A.100 10B.100 0C.100 程序报错D.100 100

题目

执行下面代码,结果正确的是_______。 class MyClass: __a = 10 b = 100 x = MyClass() print(x.b) print(x.__a)

A.100 10

B.100 0

C.100 程序报错

D.100 100


相似考题
更多“执行下面代码,结果正确的是_______。 class MyClass: __a = 10 b = 100 x = MyClass() print(x.b) print(x.__a)”相关问题
  • 第1题:

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

    MyNumber=0

    MyNumber=1

    MyNumber=2

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

    //RevMain6.cpp

    include<iostream>

    using namespace std;

    class MyClass

    {

    public:

    MyClass(int i)

    {

    MyNumber=i;

    }

    void SetMember(int m)

    {

    MyNumber=m;

    }

    int GetMember()const

    {

    return MyNumber;

    }

    void Print() const

    {

    cout<<"MyNumber="<<MyNumber<<end1;

    }

    private:

    int MyNumber;

    };

    int main()

    {

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

    MyClass *pObj=new MyClass(O);

    pObj.Print();

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

    pObj->MyNumber = 1;

    pObj->Print();

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

    MyClass. SetMember(2);

    (*pObj).Print();

    return O;

    }


    正确答案:

  • 第2题:

    若有如下类声明class MyClass{public: MyClass(){cout<<1;}};执行下列语句MyClass a,b[2],*p[2];以后,程序的输出结果是

    A.11

    B.111

    C.1111

    D.11111


    正确答案:B
    解析:本题考查的知识点是:对象的构造。本题一共声明了1个MyClass对象a,1个包含2个MyClass对象的数组b和1个包含2个MyClass对象指针的数组p。所以一共创建了3个MyClass类的对象(声明对象指针时并不会创建对象),即调用了3次构造函数。故本题应该选择B。

  • 第3题:

    使用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);”。

  • 第4题:

    有以下类定义class MyClass{public: MyClass() {cout<<1;}};则执行语句MyClass a,b [2],*p[2];后,程序的输出结果是( )。

    A.11

    B.111

    C.1111

    D.11111


    正确答案:B

  • 第5题:

    为使该程序执行结果为10,那么应该在程序划线处填入的语句是()。includeusing namespac

    为使该程序执行结果为10,那么应该在程序划线处填入的语句是( )。 #include<iostream> using namespace std; class MyClass { public: MyClass (int a) { x=a; } ___________ //取x值 private: int x; }; int main() { MyClass my(10); cout<<my.GetNum()<<end1; return 0; }

    A.return x;

    B.int GetNum(){ return x;}

    C.intreturn x;

    D.void GetNum(){return x;}


    正确答案:B
    解析:此题为完成类的定义。由题可知,横线处要填的语句为类中的成员函数,它实现的功能是取x的值(即返回x的值)。又由主函数中的语句“coutmy.GetNum()end1;”可知,此成员函数的函数名为GetNum()。其函数体为:{returnx;}。

  • 第6题:

    下列程序的执行结果是【 】。 include < iostream. h> class Myclass { public: void GetSum(int a)

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

    include < iostream. h>

    class Myclass

    {

    public:

    void GetSum(int a)

    static int Sum:

    private:

    int A;

    };

    int Myclass:: Sum =10; //必须在类外部对静态数据成员初始化

    void Myelass: :GetSum(int a)

    {

    A=a;

    Sum+=A;

    }

    void PrintSum(Myclass& A)

    {

    cout<<"Sum="<<A.Sum<<end1;

    }

    void main( )

    {

    Myclass M,N;

    M. GetSum(3)

    N. GetSum(7)

    PrintSum(M);

    }


    正确答案:sum=20
    sum=20 解析:本题考察静态数据成员在同类的不同对象间的数据传递功能。Sum为所有对象的公共数据,M对象和N对象分别对sum进行累加,故结果为20。

  • 第7题:

    类的说明如下,请指出错误的地方 ______。 class Myclass { int a=111; public: Myclass(int x, int y); Myclass(int val); ~Myclass(); }

    A.int a=111;

    B.Myclass(Int x, int y);

    C.Myclass(int val);

    D.~Myclass();


    正确答案:A

  • 第8题:

    有以下程序include using namespace std;class MyClass{public:MyClass(int n) { num

    有以下程序#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 obj 1 (10), obj 2(0); MyClass obi 3 (obj 1); obj2=fun(obj3); return 0;}程序执行时,MyClass 类的拷贝构造函数被调用的次数是( )。

    A.5

    B.4

    C.3

    D.2


    正确答案:B

  • 第9题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i) { value=new int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中,正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my,value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D

  • 第10题:

    有如下程序:includeusing namespace std;class MyClass{public:MyClass(int x):val(

    有如下程序: #include<iostreanl> using namespace std; class MyClass{ public: MyClass(int x):val(x){ } void Set(int x){val=x;} void Print( )eonst{eout<<"val="<<val<<'\t';} private: int val; }; int main( ){ eonst MyClass objl(10); MyClass obj2(20); objl.Print(); //语句1 obj2.Print( ); //语句2 objl.Set(20); //语句3 obj2.Set(30); //语句4 return 0; } 其主函数中错误的语句是

    A.语句1

    B.语句2

    C.语句3

    D.语句4


    正确答案:C

  • 第11题:

    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。

  • 第12题:

    以下程序的执行结果为()。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。

  • 第13题:

    有如下程序:includeusing namespace std;class MyClass{public:MyClass(int x):val(x

    有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(int x):val(x){} void Print()const{cout<<“const:val=”<<<val<<‘\’;} void Print(){cout<<“val=”<<val<<‘t’;} private: int va1; }; int main(){ cons

    A.val=10 const:val=20

    B.const:val=10 const:val=20

    C.const:val=10 val=20

    D.val=10 val=20


    正确答案:B
    解析: 本题考查提派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。

  • 第14题:

    已知下列程序的输出结果是23,请将横线处缺失的部分补充完整。 include using namespace

    已知下列程序的输出结果是23,请将横线处缺失的部分补充完整。

    include<iostream>

    using namespace std;

    class MyClass{

    public:

    void Print()const{cout<<23;}

    };

    int main(){

    MyClass*p=new MyClass();

    ______.Print();

    return 0;

    }


    正确答案:(*p)
    (*p) 解析:此题考查的知识点是成员函数的调用。通过对象调用成员函数使用“.”运算符,而通过对象的指针调用成员函数则使用“->”运算符。题目中,Print()函数之前已经有一个“.”,所以此处应填入一个对象,所以就把指针p转化成指针所指的对象,填入表达式(*P)。

  • 第15题:

    在下面程序的横线处填上适当的语句,使该程序执行结果为10。 include using namespace

    在下面程序的横线处填上适当的语句,使该程序执行结果为10。

    include <iostream>

    using namespace std;

    class MyClass

    {

    public:

    MyClasS(int A)

    {

    X=a;

    }

    【 】//取x的值

    private:

    int x;

    };

    int main()

    {

    MyClass my(10);


    正确答案:int GetNum(){return x;}
    int GetNum(){return x;} 解析:由主函数中调用对象my成员函数GetNum()可得到,成员函数GetNum()的功能是返回其私有数据成员x的值。

  • 第16题:

    执行下面程序后输出的正确结果是( )。 public class Test{ public static void main(String args[]){ System.out.print(100%3); System.out.print(","); System.out.print(100%0); } }

    A.1,1

    B.1,1.0

    C.1.0, l

    D.1.0,1.0


    正确答案:B

  • 第17题:

    有以下程序:include using namespace std;class myclass{private: int a,b;public: v

    有以下程序: #include <iostream> using namespace std; class myclass { private: int a, b; public: void init( int i, int j ) { a = i; b = j; } friend int sum( myclass x ); }; int sum( myclass x ) { return x.a + x.b; } int main () { myclass y; y.init( 15, 20 ); cout<<sum( y )<<end1; return 0; } 执行后的输出结果是( )。

    A.15

    B.20

    C.5

    D.35


    正确答案:A
    解析:本题主要考察C++中友元函数的使用。程序中,首先定义一个myclass类,其中包含private类型数据成员inta和intb;并含有成员函数voidinit(),其功能为初始化数据成员a和b,使其值分别为a=i和b=i;同时声明了一个友元函数intsum(),其函数定义在类声明体外,功能为返回myclass类的对象中的两个数据成员之和。程序主函数中,首先创建一个myclass类的对象y,并调用y的初始化函数对其变量进行赋值操作,执行该语句后,应该有:y.a=15和y.b=20。程序最后调用函数sum()计算对象y中数据成员的和,由于sum()为类myclass的友元函数,因此其可以自由访问对象y中的数据成员,显然其返回值为:15+20=35。

  • 第18题:

    下列程序的执行结果为______。 include class Myclass { public: void GetSum(int a)

    下列程序的执行结果为______。

    include<iostream.h>

    class Myclass

    {

    public:

    void GetSum(int a);

    static int Sum;

    prtvate:

    int A;

    };

    int Myclass::Sum=10;//必须在类外部对静态数据成员初始化

    void Myclass::GetSum(int a)

    {

    A=a;

    Sum+=A:

    }

    vold PrintSum(Myclass& A)

    {

    cout<<"Sum="<<A. Sum<<endl;

    }

    void main( )

    {

    Myclass M,N;

    M.GetSum(3);

    N.GetSum(7);

    PrintSum(M);

    }


    正确答案:sum=20
    sum=20 解析:本题考察静态数据成员在同类的不同对象间的数据传递功能。Sum为所有对象的公共数据,M对象和N对象分别对sum进行累加,故结果为20。

  • 第19题:

    已知类MyClass声明如下:

    class MyClass{

    int n;

    public:

    MyClass(int k):n(k){}

    int getValue()const{return n;}

    };

    在下列数组定义中正确的是

    A.MyClass xl[2];

    B.MyClass x2[2]={new MyClass(1),new MyClass(2)};

    C.MyClass * x3[2];

    D.MyClass * x412]={MyClass(1),MyClass(2)};


    正确答案:C
    解析:MyClass类中只定义了一个构造函数,即Myclass(int k):n(k){},这个构造函数只有一个形参,因此A)选项错误;类中并没有提供有“MyClass*”类型转化为“MyClass”类型的功能,因此B)选项错误;同理,类中也没有提供“MyClass”类型转化为“My-Class*”类型的功能,D)选项错误。C选项是定义了一个指向MyClass类型的指针数组,故本题选c)。

  • 第20题:

    有如下程序:includeusing namespace std;class MyClass{public: MyClass(int x):val(

    有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(int x):val(x) {} void Print() const {cout<<"const:val="<<val<<'\t';} void Print() {cout<<"val="<<val<<'t';} private: int val; }; int main() const MyClass obj1(10); MyClass obi2(20); obj1.Print(); obj2.Print(); return 0; } 程序的输出结果是( )。

    A.val=10 const:val=20

    B.const:val=10 const:val=20

    C.const:val=10 val=20

    D.val=10 val=20


    正确答案:C
    解析:此题考查的是常成员函数的重载。常成员函数是使用const关键字说明的函数。COHM关键字可用于区分重载函数。此时,常对象调用常成员函数,一般对象调用一般成员函数;题目中的Print()就是通过const重载的两个成员函数,主函数中声明的。obj1是常对象,obj2是一般对象。故输出结果是const::val=10val=20。

  • 第21题:

    如下程序的输出结果是includeusing namespace std;class MyClass{public:MyClass(int

    如下程序的输出结果是 #include<iostream> using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x)}cout<<2;} }; int main( ){ MyClass objl(1),obj2(2),ohj3(objl); return 0; }

    A.112

    B.111

    C.121

    D.113


    正确答案:A
    解析:MyClass objl(1),ohj2(2),obj3(objl);创建objl和obj2对象时调用第一个构造函数,打印1,创建obj3对象时调用第二个构造函数,打印2。

  • 第22题:

    有如下程序: #inClude<iostream> using namespaCe std; Class MyClass{ publiC: MyClass(int X):val(X){} void PrintConst}tout<<”Const:val=”<<val<<’\t’;} void Print{tout<<”val=”<<val<<’\t’;} private: int val; }; int main{ Const MyClass objl(10); MyClass obj2(20); objl.Print; obj2.Print; retum 0; } 执行这个程序的输出结果是( )。

    A.val=10 Const:val=20

    B.Const:val=10 Const:val=20

    C.Const:val=10 val=20

    D.val=10 val=20


    正确答案:C
    本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,普通对象调用普通成员函数。所以本题中obj1为常对象,执行obj1.print后,会执行常构造函数,输出const:val=10;而obj2为普通对象,执行obj2.print时,会执行默认构造函数,输出va1=20。放答案为C。

  • 第23题:

    有以下程序include using namespace std;class MyClass{public: MyClass(int n) { nu

    有以下程序 #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(obj 1); obj2=fun(obj3); return 0; } 程序执行时,MyClass 类的拷贝构造函数被调用的次数是______ 次。

    A.5

    B.4

    C.3

    D.2


    正确答案:B
    解析:对象初始化和复制时,都要拷贝构造函数。所以程序执行一共调用了4次构造函数

  • 第24题:

    对于下面定义的类MyClass,请在函数f( )中添加对象成员把n的值修改为50。

    class MyClass

    {

    public:

    MyClass(int x){n=x;}

    void SetNum(int n1){n=n1;}

    private:

    int n;

    };

    void f()

    {

    My Class*ptr=new MyClass(45);

    【12】

    }


    正确答案:
    ptr->SetNum(50);