itgle.com
更多“已知p是一个指向类sample数据成员m的指针,s是类sample的一个对象。如果要给m赋值为5,哪个是正确的?”相关问题
  • 第1题:

    ( 22 ) Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是

    Sample a[2], *p = new Sample;

    A ) 0

    B ) 1

    C ) 2

    D ) 3


    正确答案:D

  • 第2题:

    使用VC6打开考生文件夹下的工程MyProj7。此工程包含一个源程序文件MyMain7.cpp。其中定义了类Sample,但类Sample的定义并不完整。

    请按要求完成下列操作,将类Sample的定义补充完成:

    ①定义私有数据成员n,它是int型的数据。请在注释“//* *1**”之后添加适当的语句。

    ②完成重载构造函数Sample()的定义,使Sample对象的默认值:n=0。请在注释“//* *2* *”之后添加适当的语句。

    ③完成成员函数add()的类体内的定义,使成员函数返回的Sample对象的值n为两类Sample对象s1和s2的私有成员n的和。请在注释“//* *3* *”之后添加适当的语句。

    ④完成成员函数disp()的类外定义,使其以“n=”的格式将Sample对象的值输出到屏幕上。请在注释“* *4* *”之后添加适当的语句。

    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

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

    //MyMain7.cpp

    include<iostream>

    using namespace std;

    class Sample

    {

    private:

    //* * 1* *

    public:

    Sample(){}

    //* *2* *

    Sample add(Sample s1,Sample s2)

    {

    //* *3* *

    }

    void disp();

    };

    void Sample: :disp()

    {

    //* * 4 * *

    }

    int main()

    {

    Sample s1(10),s2(5),s3;

    cout<<"s1:";

    s1.disp();

    cout<<"\n S2:";

    s2,disp();

    s3.add(s1,S2);

    cout<<"\n s3.add(s1,s2)\n s3:";

    s3.disp();

    return 0;

    }


    正确答案:

  • 第3题:

    已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidf1(int),void f2(int)和int a。

    A.Sample*p

    B.Int Samale::*pc=&Sample::a

    C.Void(Sample::*Pa)()

    D.Sample*P[10]


    正确答案:C

  • 第4题:

    己知类sample是一个抽象类,其成员函数display是无形参、无返回类型的纯虚函数,请完成其声明:

    class sample{

    public:

    sample(){};

    ______

    };


    正确答案:virtual viod display()=0;
    virtual viod display()=0; 解析: 此题考查的是纯虚函数。纯虚函数定义格式是在虚函数的后面加上“=0”。与虚函数不同的是,纯虚函数允许没有函数体,故本题应填入的内容是virtual viod display()=0;。

  • 第5题:

    已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidfl(int),void f2(int)和int a。

    A.Sample*p

    B.Int Samale::*pc=&Sample::a

    C.Void (Sample::*Pa) ()

    D.Sample *P[10]


    正确答案:C

  • 第6题:

    有如下类定义,请将Sample类的拷贝构造函数补充完整。

    class Sample{

    public:

    Sample(){)

    ~Sample(){if(p)delete p;)

    Sample(const Sample& s){

    ______

    }

    void SetData(int data) {p=new int(data);}

    private:

    int*p;

    };


    正确答案:p=new int; p=s.p;
    p=new int; p=s.p; 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第7题:

    已知类 Sample中的一个成员函数说明如下: void Set (Sample &a); 其中,Sample&a的含意是( )。

    A.指向类Sample 的指针为a

    B.将a的地址值赋给变量Set

    C.a是类Smple的对象引用,用来作函数Set() 形参

    D.变量Sample与a按位相与作为函数Set()的参数


    正确答案:C

  • 第8题:

    已知类sample是一个抽象类,其成员函数display是无形参、无返回类型的纯虚函数,请完成其声明:

    sample{

    public:

    sample( ){ };

    ______

    };


    正确答案:virtual void display( )=0;
    virtual void display( )=0;

  • 第9题:

    已知p是一个指向类Sample数据成员m的指针,s是类Sample的一个对象。如果要给 m赋值为5,( )是正确的。

    A.s.p=5

    B.s->p=5

    C.s.*p=5

    D.*s.p=5


    正确答案:C

  • 第10题:

    有如下类定义:

    class Sample{

    public:

    Sample();

    ~Sample();

    private:

    static int data;

    };

    将静态数据成员data初始化为0的语句是【 】。


    正确答案:Sample::data=0;
    Sample::data=0; 解析:将静态数据成员data初始化为0的语句是“Sample::data=0;”,因为Sample是一个公共类,可以这样进行初始化。

  • 第11题:

    有如下类声明:classSample{intx;};则Sample类成员x是Sample类的()。

    • A、公有数据成员
    • B、保护数据成员
    • C、私有数据成员
    • D、以上选项都不正确

    正确答案:C

  • 第12题:

    单选题
    p是指向类A数据成员a的指针,a是类A的一个对象。在给a成员赋值为5的下列表达式中,正确的是()。
    A

    a.p=5

    B

    a->p=5

    C

    a.*p=5

    D

    *a.p=5


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

  • 第13题:

    ( 10 )类 Sample 的构造函数将形参 data 赋值给数据成员 data 。请将类定义补充完整。

    class Sample{

    public:

    Sample(int data=0);

    Private:

    Int data;

    };

    Sample::Sample(int data){

    【 10 】

    }


    正确答案:

  • 第14题:

    在下面的类定义中,this指针的用途是______。 include class Sample { int x,y; publi

    在下面的类定义中,this指针的用途是______。

    include<iostream.h>

    class Sample

    {

    int x,y;

    public:

    Sample(int i,int j){x=i;y=j;}

    void assign(Sample sa);

    };

    void Sample::assign(Sample p)

    {

    if(this!=&p)

    {

    x=p.x;

    y=p.y;

    }

    }


    正确答案:防止类对象自己给自己赋值
    防止类对象自己给自己赋值 解析:对象给自己赋值是一种自毁行为,这种行为如果不加以判断,可能造成无意识的破坏。

  • 第15题:

    已知p是一个指向类A公有数据成员的指针,a是类A的一个对象,如果要给p所指向的成员赋值为5,语句应写为【 】。


    正确答案:a.  *p=5;
    a.  *p=5; 解析:由于是公有成员,类对象可以直接访问类的公有成员*号表示指针所指向的内容。

  • 第16题:

    Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是Sample a[2],*P=new Sample;

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:一共定义了3个Sample的对象,a[2]包含两个sample元素,调用两次构造函数,newsample调用一次构造函数,故其构造函数执行了3次。

  • 第17题:

    已知类Sample中的一个成员函数说明如下: void Set(Sample &a); 其中,Sample &a的含义是(58)。

    A.指向类Sample的指针为a

    B.将a的地址值赋给变量Set

    C.a是类Sample的对象引用,用来作函数Set( )的形参

    D.变量Sample与a按位相与作为函数Set( )的参数


    正确答案:C
    解析:本题考查类中函数声明的方法。由题目中的代码我们可以看到,在函数Set()里面有一个形参a,其类型是Sample,符号&表示参数a是一个引用,因此,Sample&a就表示a是类Sample的对象引用。

  • 第18题:

    下列程序中的this指针的作用是【 】。include class Sample{int n;static int st;publ

    下列程序中的this指针的作用是【 】。

    include <iostream. h>

    class Sample

    {

    int n;

    static int st;

    public,

    Sample() {}

    Sample(int m) {n=m; st=m+10;}

    void Change(int k) {st=st+k;}

    void AddValue(int m)

    {

    Sample s,

    s. n=n+m;

    *this=s;

    }

    void disp( ) {cout<<"n="<<n<<";st="<<st<<end1;}

    };

    int Sample: :st=0

    void main()

    {

    Sample s1(10),s2(10)

    s1.disp()

    s1.AddValue(5),

    s2.Change(100);

    s1.disp();

    s2.disp()

    }


    正确答案:修改本对象的值
    修改本对象的值 解析:本题巧妙的使用this指针来完成类的不同实例进行的修改自身数据成员的操作。

  • 第19题:

    Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( )。 Samplea[2],*p=newSample;

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    D。【解析】构造函数在对象被创建时由系统自动调用,本题共创建了3个对象。

  • 第20题:

    已知fl(int)是类A的公有成员函数,p是指向成员函数fl()的指针,采用赋值,( )是正确的。

    A.p=fl

    B.P=A::fl

    C.P=A::fl()

    D.P=fl()


    正确答案:B

  • 第21题:

    已知一个类A,其中Fun()函数是类A的一个成员函数,A*p,a;p=&a;,则下面语句正确的是( )。

    A.语句p=&a;是把对象a赋值给指针变量p

    B.语句A*p,a;p=&a;调用两次类A的构造函数

    C.对语句*p.fun();的调用是正确的

    D.语句 p->fun();和语句 a.fun();等价


    正确答案:D
    解析:A是把对象的地址值赋给指针;B只会调用一次类的构造函数;C正确的调用应是(*p).fun()。

  • 第22题:

    p是指向类A数据成员a的指针,a是类A的一个对象。在给a成员赋值为5的下列表达式中,正确的是()。

    • A、a.p=5
    • B、a->p=5
    • C、a.*p=5
    • D、*a.p=5

    正确答案:C

  • 第23题:

    已知:p是一个指向类A数据成员m的指针,a是类A的一个对象。在给m赋值为5的下列表达式中,()是正确的

    • A、a.p=5
    • B、a->p=5
    • C、a.*p=5
    • D、*a.p=5

    正确答案:C

  • 第24题:

    单选题
    有如下类声明:classSample{intx;};则Sample类成员x是Sample类的()。
    A

    公有数据成员

    B

    保护数据成员

    C

    私有数据成员

    D

    以上选项都不正确


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