niusouti.com
更多“Sample是一个类, 定义如下 class Sample { int val; public: Sample(int v):val(v){} }; 执行下面语句后,调用Sample类的构造函数的次数是_______。 Sample a[3],*p=new Sample;”相关问题
  • 第1题:

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

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

    A ) 0

    B ) 1

    C ) 2

    D ) 3


    正确答案:D

  • 第2题:

    ( 11 )有如下类定义:

    class Sample{

    public:

    Sample();

    ~Sample();

    Private:

    Static int date;

    };

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


    正确答案:

  • 第3题:

    在下面的类定义中,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;

    }

    }


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

  • 第4题:

    已知一个类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

  • 第5题:

    在下面的类定义中,错误的语句是

    class Sample { public: Sample(int val); //①

    ~Sample(): //②

    private: int a=2.5; //③

    Sample(); //④ };

    A.①②③④

    B.②

    C.③

    D.①②③


    正确答案:C
    解析:本题考核类的定义。C++不能类的定义中给数据成员赋初值。

  • 第6题:

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

    A.0

    B.1

    C.2

    D.3


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

  • 第7题:

    以下程序的执行结果是 ( )。include using namespace std;class sample{private: int

    以下程序的执行结果是 ( )。 #include <iostream> using namespace std; class sample { private: int x; public: sample (int A) { x=a; } friend double square(sample s); }; double square(sample s) {

    A.20

    B.30

    C.900

    D.400


    正确答案:C
    解析:本题考核友元函数的应用。程序中函数square()是类sample的一个友元函数,它可以直接访问类sample的所有成员。它的功能是返回类sample的私有数据成员x的平方。所以程序的执行结果是:900。注意:友元函数不是类的成员函数,在类外定义时不要加上类名及其作用域运算符(::)。友元函数的调用与一般函数的调用的方式和原理一致,可以在程序的任何地方调用它。

  • 第8题:

    下列程序的运行结果是【 】。includeclass Sample{int a;public: Sample(int aa=0) {a

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

    include<iostream, h>

    class Sample

    {

    int a;

    public:

    Sample(int aa=0) {a=aa;}

    ~Sample() {cout<<"Sample="<<a<<;}

    class Derived: public Sample

    {

    int b;

    public:

    Derived(int aa=0, int bb=0): Sample(aa) {b=bb;}

    ~De rived() {cout <<"Derived="<<b<<'';}

    void main()

    {

    Derived dl (9)

    }


    正确答案:Derived=0 Sample=9
    Derived=0 Sample=9 解析:本题考察派生类和基类的构造函数,析构函数的执行顺序。

  • 第9题:

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

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:定义对象数组a[2]时,要调用2次构造函数;生成*p的对象时,要调用一次构造函数,故答案为3。

  • 第10题:

    有如下类声明: class SAMPLE { int n; public: SAMPLE(int i=0):n(i) { } void setValue(int nO); }; 下列关于getValue 成员函数的实现中,正确的是

    A.SAMPLE::setValue(int nO){ n=nO;}

    B.void SAMPLE::setValue(int nO){ n=nO;}

    C.void setValue(int nO){ n=nO;}

    D.(int nO){ n=nO;}


    正确答案:B
    解析:本题考查了成员函数的定义格式。在类外部对成员函数定义的一般格式为:返回类型>类名>::成员函数名>(参数表>)
      {
      函数体>
      }
      故本题的正确答案为选项B。

  • 第11题:

    执行如下程序,输出星号(*)的个数为includeusing namespaee std;class Sample{public:

    执行如下程序,输出星号(*)的个数为 #include<iostream> using namespaee std; class Sample{ public: Sample( ){ } ~Sample( ){cout<<'*';} }; int main( ){ Sample temp[2],*pTemp[2]; return 0; }

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:类在创建对象时调用构造函数,在撤销对象时调用析构函数,而在定义类指针时则不调用构造函数和析构函数。sampie temp[2]定义了一个2个元素的对象数组,因此调用两次析构函数,打印2个*。

  • 第12题:

    若有如下程序: include using namespaces std;int s=O;class sample {static int n;p

    若有如下程序: #include <iostream> using namespaces std; int s=O; class sample { static int n; public: sample(int i) { n=i; } static void add() { s+=n; } }; int sample::s=O; int main() { sample a(2),b(5); sample: :add(); cout<<s<<end1; return 0; } 程序运行后的输出结果是

    A.2

    B.5

    C.7

    D.3


    正确答案:B
    解析:本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数add,并在类的构造函数中给类私有静态数据成员n赋值。在主函数main中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行sample::add()使全局变量s=5。

  • 第13题:

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

    class Sample{

    public:

    Sample(int data=0);

    Private:

    Int data;

    };

    Sample::Sample(int data){

    【 10 】

    }


    正确答案:

  • 第14题:

    以下程序的执行结果是______。 include class Sample { int n; public: Sample() {}

    以下程序的执行结果是______。

    include<iostream.h>

    class Sample

    {

    int n;

    public:

    Sample() {}

    Sample (int i (n=i;)

    void add (Sample &s1,Sample s2)

    {

    this->n=sl.n+=s2.n;

    }

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

    }

    void main ()


    正确答案:n=7 n=5 n=7
    n=7 n=5 n=7

  • 第15题:

    若有如下程序:includeusing namespaces std;int s=0;class sample{ static int n;pub

    若有如下程序: #include<iostream> using namespaces std; int s=0; class sample { static int n; public: sample(int i) { n=i; } static void add() { s+=n; } ); int sample::s=0; int main() { sample a(2),b(5); sample::add(); cout<<s<<endl; return 0; } 程序运行后的输出结果是

    A.2

    B.5

    C.7

    D.3


    正确答案:B
    解析:本题考核静态数据成员和静态成员函数的应用;程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数add,并在类的构造函数中给类私有静态数据成员n赋值。在主函数main中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行sample::add()使全局变量s=5。

  • 第16题:

    以下程序的执行结果是______。 inelude class Sample { public: int x; int y; void

    以下程序的执行结果是______。

    inelude<iostream.h>

    class Sample

    {

    public:

    int x;

    int y;

    void disp( )

    {

    cout<<"x="<<x<<",y="<<y<<endl;

    }

    };

    void main( )

    {

    int Sample::*pc;

    Sample s;

    pc=&Sample::x;

    s.*pc=10;

    pc=&Sample::y;

    s.*pc=20;

    s.disp( );

    }


    正确答案:x=10y=20
    x=10,y=20 解析:本题比较特殊,考察域作用符的使用规则。其实际含义是:指针先指向x,然后指向y,并利用该指针分别为x和y赋值。在使用过程中进行了作用域的限定。

  • 第17题:

    下列类的构造函数不能通过编译,正确的构造函数应该是______。 include class Sample

    下列类的构造函数不能通过编译,正确的构造函数应该是______。

    include<iostream.h>

    class Sample

    {

    public:

    int n;

    const int con;

    Sample(int m) {con=m+1;n=m;}

    void disp( ) {cout<<"normal:n="<<n<<endl;}

    void disp( )const {cout<<"static:n="<<n<<endl;}

    };

    void main( )

    {

    const Sample a (12);

    Sample b (13);

    a.disp( );

    b.isp( );

    cout<<a.n<<","<<b.con<<endl;

    }


    正确答案:Sample(int m):con(m+1){n=m;)
    Sample(int m):con(m+1){n=m;) 解析:本题考察常数据成员的初始化方法。常数据成员的定义必须出现在类体中,而且初始化只能通过构造函数的成员初始化列表进行,而且不能被更新。

  • 第18题:

    已知一个类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

  • 第19题:

    有如下类定义,请将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类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第20题:

    以下程序的执行结果是【 】。 include class Sample { public: int x: int y; void di

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

    include<iostream. h>

    class Sample

    {

    public:

    int x:

    int y;

    void disp()

    {

    cout<<"x="<<x<<",y="<<y<<end1;

    }

    };

    void main()

    {

    int Sample:: ** pc;

    Sample s;

    pc=& Sample: :x;

    s.*pc=10;

    pc:=&Sample: :y;

    s.*pc=20;

    s.disp();

    }


    正确答案:x=10y=20
    x=10,y=20 解析:本题比较特殊,考察域作用符的使用规则。其实际含义是;指针先指向x,然后指向y,并利用该指针分别为x和y赋值。在使用过程中进行了作用域的限定。

  • 第21题:

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

    A.0

    B.1

    C.2

    D.3


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

  • 第22题:

    有如下程序:includeusing namespace std;int s=0;class sample{ static int n;public

    有如下程序: #include<iostream> using namespace std; int s=0; class sample { static int n; public: sample(int i) { n=i; } static void add() { s+=n; } }; int sample::s=0; int main() { sample a(2),b(5); sample::add(); cout<<s<<endl; return 0; } 程序运行后的输出结果是

    A.2

    B.5

    C.7

    D.3


    正确答案:B
    解析:本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数add,并在类的构造函数中给类私有静态数据成员n赋值。在主函数main中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行sample::add()使全局变量s=5。

  • 第23题:

    有如下类声明: class SAMPLE { int n: public: SAMPLE(int i=0):n(i){} void setValue(int nO); }; 下列关于9etValue成员函数的定义中,正确的是( )。

    A.SAMPLE::setValue(int nO){n=n0;}

    B.void SAMPLE::setValue(int胡){n=n0;

    C.void setValue(int nO){n=n0;}

    D.setValue(int nO){n=n0;}


    正确答案:B
    本题考查在类外定义类的成员函数,需要使用作用域限定符“::”,属于基础知识,本题答案为8。

  • 第24题:

    有如下类定义:

    class Sample{

    public:

    Sample();

    ~Sample();

    private:

    static int data;

    };

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


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