有如下类定义:class A{char *a;public:A():*(0){}A(char * aA){//把aa所指字符串拷贝到a所指向的存储空间a=________;strcpy(a,aA);}~A(){delete[]a;}};横线处应填写的表达式是A.new char[strlen(aA)+1]B.char[strlen(aA)+1]C.char[strlen(aA)]D.new char[sizeof(aA)-1]

题目

有如下类定义:

class A{

char *a;

public:

A():*(0){}

A(char * aA){//把aa所指字符串拷贝到a所指向的存储空间

a=________;

strcpy(a,aA);

}

~A(){delete[]a;}

};

横线处应填写的表达式是

A.new char[strlen(aA)+1]

B.char[strlen(aA)+1]

C.char[strlen(aA)]

D.new char[sizeof(aA)-1]


相似考题
更多“有如下类定义:class A{char *a;public:A():*(0){}A(char * aA){//把aa所指字符串拷贝到a所指向的 ”相关问题
  • 第1题:

    有以下类定义:

    class A{

    char*a;

    public:

    A( ):a(0){ }

    A(char*aA) { //把aa所指字符串复制到a所指的存储空间

    a=______;

    strcpy(a,aA) ;

    }

    ~A( ){delete[ ]a;}

    };

    画线处应填写的表达式是

    A.new char[strlen(aA)+1]

    B.char[strlen(aA)+1]

    C.char[strlen(aA)]

    D.new char[sizeof(aA)-1]


    正确答案:A
    解析:为a申请一个比aa串长增加1的一个存储空问。B和C缺少new运算子,D分配空间不足。

  • 第2题:

    如下程序的输出结果是includeincludeusing namespace std;class XCD{char*

    如下程序的输出结果是 #include<lostream> #include<cstring> using namespace std; class XCD{ char*a; int b; public: XCD(char*aa,int bB) { a=new char[strlen(aA) +1]; strcpy(a,aA) ; b=bb; } char*Geta( ){return a;} int Getb( ){return b;} }; int main( ){ char*pl="abcd",*p2="weirong": int dl,6,d2=8; XCD x(pl,d1),y(p2,d2); cout<<strlen(x.Geta( ))+y.Getb( )<<endl; return 0; }

    A.12

    B.16

    C.14

    D.11


    正确答案:A
    解析:构造对象x,所以x.a="abcd",x.b=6,构造对象y,y.a="weirong",y.b=8,所以strlen(x.geta( ))+y.getb( )=12。 

  • 第3题:

    关于类定义中的语句错误的是 class A { iht i; A a; A * b; char * ch;};

    A.int i;

    B.A a;

    C.A * b;

    D.char * ch;


    正确答案:B
    解析:C++语言中类定义中若想用该类来定义数据只能定义为指针类型的,而不能定义为普通类型的。注意:C++语言类的定义的方法

  • 第4题:

    若有定义:char*ps[]={“aa”,“bb”,“cc”,“dd”};,则以下叙述正确的是()。

    Aps[0]是字符串”aa”

    B*ps[0]是字符串”aa”的首地址

    Cps[0]是字符串”aa”的首地址

    D*ps[0]是字符串”aa”


    正确答案:C

  • 第5题:

    有如下类定义: classA{ char*a; public: A( ):a(O){} A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间 a=__; strcpy(a,aa); } ~A( ){delete[]a;} }; 横线处应填写的表达式是( )。

    A.Dewchar[strlen(aa)+1]

    B.char[strlen(aa)+1]

    C.char[strlen(aa)]

    D.newchar[sizeof(aa)-1]


    正确答案:A
    A。【解析】对动态分配存储空间的考查,在C++中,回车键需计一字符,即总的长度为strlen(aa)+1。