定义一个整形数集合类Set,请通过创建动态分配的整数数组(使用new运算符)存放整数值,且数组的大小要能够根据包含元素的个数动态的变化。集合中,元素的顺序无关紧要,每个元素至多出现一次。实现如下函数:(1) 构造函数创建一个空集;(2) 复制构造函数实现深复制;(3) add 函数向集合中插入一个整数; (4) 析构函数。在main函数中对上述函数进行测试。

定义一个整形数集合类Set,请通过创建动态分配的整数数组(使用new运算符)存放整数值,且数组的大小要能够根据包含元素的个数动态的变化。集合中,元素的顺序无关紧要,每个元素至多出现一次。实现如下函数:(1) 构造函数创建一个空集;(2) 复制构造函数实现深复制;(3) add 函数向集合中插入一个整数; (4) 析构函数。在main函数中对上述函数进行测试。


参考答案和解析
C

相关考题:

创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是( )。#includeusing namespace std;class Foo{public:Foo(int X){cout ’A”}Foo(){}};int main()Foo f[3],g(3);return 0;}

创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显示给出数组元素的初值,则调用缺省构造函数。下列程序涉及对象数组的创建和单个对象的创建,其输出结果是______。include <iostream>using namespace std;class Foo{public:Foo(int x){cout<<'A';}Foo(){}};int main(){Foo f[3], g(3);return 0;}

已知函数 void- sort(int Array[-1 int N的功能:采用选择排序法将具有N元素的整型数组Aray按由大到小排序元素,排序好的元素仍然放在数组Aray里面。例如:如果原来数组为”1432567,则排序后为”7654321″。編写该函数的实现代码,并要求编写main()函数,对实现函数的进行测试 请帮忙给出正确答案和分析,谢谢

如下类定义中包含了构造函数和复制构造函数的原型声明,请在画线处填写正确的内容,使复制构造函数的声明完整。class my(21ass{private:int data:public::MyClass(int value);//构造函数MyClass(const______anotherObject); //复制构造函数

请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add的作用是将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为: 2 3 4 5 27 28 31 66 75 2 3 4 5 6 27 28 31 56 75 2 3 4 5 6 19 27 28 31 66 75 3 4 5 6 19 27 28 31 66 75 3 4 5 6 19 27 28 31 66 75 要求: 补充编制的内容写在“//***********333***********”与“//***********666***********”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //IntegorSet.h ifndef INTEGERSET define INTEGERSET includeiostream using namespace std; const int MAXELEMENTS=100; //集合最多可拥有的元素个数 class IntegerSet{ int elem[MAXELEMENTS]; //用于存放集合元素的数组 int counter; //用于记录集合中元素个数的计数器 puhlic: IntegerSet:counter(0){} //创建一个空集合 IntegerSet(int data[],int size); //利用数组提供的数据创建一个整数集合 void add(int element); //添加一个元素到集合中 void remeve(int element); //删除集合中指定的元素 int getCountconst{return counter;} //返回集合中元素的个数 int getElement(int i)const{retum elem[i];}//返回集合中指定的元素 void showconst; }; void WriteToFile(char*); endif //main.cpp include”IntegerSet.h” includeinmanip IntegerSet::IntegerSet(int data[],int size):counter(0){ for(int i=0;isize;i++) add(data[i]); } } void IntegerSet::add(int element){ int j; //从后往前寻找第一个小于等于element的元素 for(j=counter;j0;j-) if(element=elem[j一1])break; //如果找到的是等于element的元素,说明要添加的元素已经存在,直接返回 if(j0) if(element==elem[j-1])return; //如果找到的是小于element的元素,j就是要添加的位置 //该元素及其后面的元素依次后移,腾出插入位置 for(int k=counter;kj;k一) elem[k]=elem[k一1]; elem[j]=element;//将element插入到该位置 counter++; //计数器加l } void IntegerSet::remove(int element){ //***************333*************** //***************666*************** void IntegerSet::showconst{ for(int i=0;igetCount;i++) coutsetw(4)getElement(i); coutendl: } int main{ int d[]={5,28,2,4,5,3,2,75,27,66,31}; IntegerSet S(d,11);S.show; S.add(6); s.show; S.add(19); S.show; S.remove(2); s.show; S.add(4); S.show; writeToFile(””); return 0; }

请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数0perator=,以实现深层复制。 要求: 补充编制的内容写在“//************333************”与“//****************666*************”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //CDeepCopy.h include iostream includestring using namespace std; class CDeepCopy { public: int n;//动态数组的元素个数 int *p;//动态数组首地址 CDeepCopy(int); ~CDeepCopy; CDeepCopyoperator=(const CDeepCopyr);//赋值运算符函数 }; void writeToFile(char}); //main.cpp include”CDeepCopy.h” CDeepCopy::一CDeepCopy{delete[]P;} CDeepCopy::CDeepCopy(int k){n=k;p=new int[n];}//构造函数实现 CDeepCopyCDeepCopy::0perator=(const CDeepCopyr)//赋值运算符函数实现 { //***********333********* //***********666*********** } int main { CDeepCopy a(2),d(3); a.p[O]=1;d.p[O]=666;//对象a,d数组元素的赋值 { CDeepCopy b(3);//调用赋值运算符函数 a.p[O]=88;b=a; coutb.p[O];//显示内层局部对象的数组元素 } coutd.p[O];//显示d数组元素a.p[O]的值 cout”d fade away;\n”; couta.p[O];//显示a数组元素a.p[O]的值 writeToFile(””); return 0; }

当调用函数时,实参是一个数组名,则向函数传送的是______。A.数组的长度B.数组的首地址C.数组中每一个元素的地址D.数组每个元素中的值

对于一个类的定义,下列叙述中错误的是A.如果没有定义复制构造函数,那么编译器将生成一个复制构造函数B.如果没有定义默认的构造函数,那么编译器将一定生成一个默认的构造函数C.如果没有定义构造函数,那么编译器将生成一个默认的构造函数和一个复制构造函数D.如果已经定义了构造函数和复制构造函数,那么编译器不会生成任何构造函数

当调用函数时,实参是一个数组名,则向函数传送的是______。A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

下面关于构造函数和析构函数的描述中,错误的是( )A.析构函数可以声明为虚函数B.对虚析构函数的调用可以采用动态联编C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D.构造函数可以声明为虚函数

下面关于构造函数和析构函数的描述中,错误的是( )。A.析构函数可以声明为虚函数B.对虚析构函数的调用可以采用动联编C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D.构造函数可以声明为虚函数

将文件in.dat中的200个整数读至数组XX中。请编制js Vralue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。 结果cnt1,cnt2,pJ输出到out.dat中。注意:部分源程序存在test.c文件中。请勿改动数据文件in.dat中的任何数据、主函数main、读函数readdat和输出函数writeDatj的内容。

请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 876675896101999401980431451777 则输出结果为4,999。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:

请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。则函数值为59。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

数组xx[M]保存着一组4位无符号整数,其元素的个数通过变量num传人函数proc()。请补充函数proc(),该函数的功能是:从数组XX中找出个位和百位上的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。例如,当xx[8]={1111 2413 2321 2222 4245 3333 14145335)时,yy[6]={1111 2222 3333 1414}。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。试题程序:

当调用函数时,实参是一个数组名,则向函数传送的是______。A.数组的长度B.数组的首地址C.数组每个元素的地址D.数组每个元素中的值

试题三(共15分)阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。【说明】对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为 0的数组元素,并将a中所有的非 O元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1 和CompactArr v2来实现上述处理要求,函数的返回值为非零元素的个数。 函数CompactArr_vl(int a[],int n)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非O元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为 0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组 a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增 1,而遇到非 0元素并将其前移后k才增 1。【问题1】 (12分)请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理思路填补空缺(4)。【问题2】(3分)请说明函数CompactArr vl存在的缺点。

在一个类中可以定义()构造函数,()个析构函数。

在下列选项中,()不是类的成员函数。A、构造函数B、析构函数C、友元函数D、复制构造函数

当调用函数时,实参是一个数组名,则向函数传送的是()。A、数组的长度B、数组首地址C、数组每一个元素的地址D、数组每个元素的值

如果一个类中没有定义任何构造函数时,系统会自动提供一个()构造函数;同样,类中没有定义析构函数时,系统会自动提供一个()析构函数。

造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。

定义一个类,并完成对该类构造函数和析构函数的创建。

单选题当调用函数时,实参是一个数组名,则向函数传送的是()。A数组的长度B数组首地址C数组每一个元素的地址D数组每个元素的值

单选题在下列选项中,()不是类的成员函数。A构造函数B析构函数C友元函数D复制构造函数

问答题定义一个类,并完成对该类构造函数和析构函数的创建。

填空题如果一个类中没有定义任何构造函数时,系统会自动提供一个()构造函数;同样,类中没有定义析构函数时,系统会自动提供一个()析构函数。

判断题造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。A对B错