有以下类定义: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]

题目

有以下类定义:

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]


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

    有以下程序 include void fun(char *t, char *s) { whil

    有以下程序 #include <stdio.h> void fun(char *t, char *s) { while(*t!=0) t++; while( (*t++ = *s++ )!=0 ); main() { char ss[10]="acc",aa[10]="bbxxyy"; fun(ss, aa); printff"%s,%s\n", ss,aa); 程序的运行结果是

    A.accxyy, bbxxyy

    B.acc, bbxxyy

    C.accxxyy, bbxxyy

    D.accbbxxyy, bbxxyy


    正确答案:D
    解析:函数fun()中,前一个while循环的作用是:如果形参指针t所指内容不为0,则让t增1,直到它指向0。后一个 while循环的作用是:将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun()的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数中的strcat()。主函数中使用fun()将数组aa中的字符串连接到了数组ss中原有字符串之后,所以执行完后,ss中的字符串为"accbbxxyy"。故最终输出的结果是:accbbxxyy,bbxxyy,应该选择D。

  • 第2题:

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

    Aps[0]是字符串”aa”

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

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

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


    正确答案:C

  • 第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题:

    根据程序中的注释将下列缺失部分补充完整。

    class A{

    char*a;

    public:

    A():a(0){}

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

    a= 【 】 char[strlen(aa)+1];

    strcpy(a,aa);

    }

    ~A(){delete[]a;}

    }


    正确答案:new
    new 解析:本题主要考查对动态存储分配的掌握。要将字符串复制给a所指向的内存空间,需先给指针a动态分配内存空间,故使用运算符new。

  • 第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。