下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。 include<iostream. h> inelude<ioman

题目
下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。 include inelude

下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。

include<iostream. h>

inelude<iomanip, h>

template<class T>

class Array

{

T * elems;

int size;

public:

Array(int.s);

~Array()

T& operator[](int)

void perator=(T)

};

template<class T>

Array<T>::Array(int s)

size=s;

elems=new T[size]

for(int i=0;i<size;i++)

elems[i]=0

}

template<celass T>

Array<T>::~Array()

{

______

template <class T>

T& Array<T>::operator[](int index)

{

return elems[index];

}

template<class T>

void Array<T>::operator=(T temp)

{

for(int i=0;i<size;i++)

elems[i]=temp;

}

void main()

{

int i,n=26;

Array<int> arr1(n)

Array<char> arr2(n)

for(i=0;i<n;i++)

{ -.

arr1[i]='a'+i;

arr2[i]='a'+i;

}

cout<<"ASCII 字符"<<endl;

for(i=0;i<n;i++)

cout<<setw(8)<<arr1[i]<<setw(8)<<arr2[i]<<endl;

}

参考答案和解析
正确答案:delete elems;
delete elems; 解析:注意,用new动态申请的内存在使用完成后一定要用delete释放。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于析构函数描述正确的是:

A.一个类中只能定义一个析构函数

B.析构函数名与类名不同(不考虑~符号)

C.析构函数只能定义在类内

D.析构函数可以有一个或多个参数


不能指定返回类型

第2题:

下列对析构函数的描述正确的是()

A.析构函数返回类型为void

B.析构函数无形参,也不能重载

C.析构函数体内必须包含delete操作

D.析构函数内不能包含循环


析构函数无形参,也不能重载

第3题:

本例中,在点类、圆类、圆柱体类中增加析构函数定义,如果析构函数体里为空(无任何语句),则不影响程序的运行结果。


正确

第4题:

下列关于构造函数和析构函数的描述,错误的是( )。

A.析构函数中调用虚函数采用静态联编

B.对虚析构函数的调用可以采用动态联编

C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D.构造函数可以声明为虚函数


正确答案:D
D。【解析】构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。

第5题:

下列关于析构函数的描述中,错误的是( )。

A.类中有且仅有一个析构函数

B.析构函数可以有形参

C.析构函数没有函数类型

D.析构函数对象消失时被自动执行


正确答案:B

第6题:

编写类 String 的构造函数、析构函数和赋值函数

已知类 String的原型为:

class String

{

public:

String(const char *str = NULL); // 普通构造函数

String(const String &other); // 拷贝构造函数

~ String(void); // 析构函数

String & perate =(const String &other); // 赋值函数

private:

char *m_data; // 用于保存字符串

};

请编写 String的上述 4 个函数。


正确答案:
 

第7题:

请编写函数fun(),该函数的功能是:将s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为ABCDEFGl2345,其中字符B的ASCⅡ码值为偶数、…、字符2的ASCⅡ码值为偶数、…,都应当删除,其他依次类推。最后t所指的数组中的内容应是ACEGl35。

注定:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序;

include <stdio. h>

include<string.h>

include<conio. h>

void fun(char *s, char t[])

{

}

main ( )

{

char s[100],t [100];

clrscr ();

printf (,\nPlease enter string S: ");

scanf ("%s", s);

fun(s,t);

printf ("\nThe result is :%s\n",t);

}


正确答案:void fun(char *s char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ }
void fun(char *s, char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ } 解析:要删除ASCH值为偶数的字符,也就是要留下ASCH值为奇数的字符,由于最终是要求求出剩余字符(BPASCⅡ值为奇数)形成的新串,所以本题程序的算法是从原字符串的头到尾扫描并找出ASCⅡ值为奇数的字符依次存入数组冲。此外,还要注意数组t的下标变化和下标的初值(初值必须为0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串结束符。这种算法在很多题中都要用到,学习者可以举一反三地找一些其他相关习题练习一下。

第8题:

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

调用基类BASE的构造函数:1

调用基类BASE的构造函数:2

调用派生类A的构造函数:3

调用派生类A的析构函数

调用基类BASE的析构函数

调用基类BASE的析构函数

源程序文什test2_1.cpp清单如下:

include<iostream.h>

class BASE

{

public:

BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}

~BASE(){cout<<"调用基类BASE的析构函数"<<endl;)

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

}

class A:public BASE

{

public:

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

A(int a,int b):i(a),b(b)

{cout<<"调用派生类A的构造函数:"<<a+b<<endl;}

~A(){cout<<"调用派生类A的析构函数"<<endl;)

private:

BASE b;

};

void main()

{

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

BASE obj(1,2);

}


正确答案:(1)错误:类BASE的定义缺少“;” 正确:}; (2)错误:A(int aint b):i(a)b(b) 正确:A(intaintb):BASE(a)b(b) (3)错误:BASE obj(12); 正确:A obj(12);
(1)错误:类BASE的定义缺少“;” 正确:}; (2)错误:A(int a,int b):i(a),b(b) 正确:A(inta,intb):BASE(a),b(b) (3)错误:BASE obj(1,2); 正确:A obj(1,2); 解析:(1)主要考查考生对于类的定义的掌握,类定义结束后大括号外面不能缺少分号;
(2)主要考查考生对于派生类构造函数的掌握,该函数应该实现将参数传递给基类的功能,即派生类的构造函数应使用参数列表的形式将基类的数据成员初始化,初始化的时候直接使用基类的名称(BASE)而不是基类中变量的名称(i);
(3)主要考查考生对于基类和派生类函数调用关系的掌握,要调用派生类的构造函数必须使用派生类的对象,构造函数只有在该类的对象被使用的时候才会被调用。

第9题:

下列关于构造函数和析构函数的描述,错误的是( )。

A.析构函数中调用虚函数采用静态联编

B.对虚析构函数的调用可以采用动态联编

C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D.构造函数可以声明为虚函数


正确答案:D
解析: 构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。