应用题 1. 使用VC++2010打开考生文件夹下“proj2”文件夹中的工程proj2.sln。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
    (1)完成构造函数,设置数组元素的个数为0,请在注释//********1********之后添加语句。
    (2)完成函数AddMember(int n),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释//********2********之后添加语句。
    (3)完成函数DelMember(int n),如果变量在数据中,则删除该变量,并且返回1,如果不存在则返回0,请在注释//********3********之后添加语句。
    (4)完成成员函数isInclude(int n)的定义,该函数检查参数n是否在类的数据成员数组elems中,如果在返回1,否则返回0。请在注释//********4********之后添加语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
    #include<iostream.h>
    #define MAX_LENGTH 500
    class CArray
    {
    public:
    CArray ()
    {
    //********1********
   
    }
    int AddMember(int n)
    {
    for (int i=0; i<length; i++)
    {
    //********2********
    if(Array[i] = n)
    return 0;
    }
    Array [length++] = n;
    return 1;
    }
    int DelMember(int n)
    {
    int i;
    for(i=0; i<length; i++)
    {
    if(Array[i] == n)
    {
    break;
    }
    }
    //********3********
    if()
    {
    for(; i<length-1; i++)
    {
    Array[i]=Array [i+1];
    }
    length--;
    return 1;
    }
    return 0;
    }
    int isInclude(int n)
    {
    for (int i=0; i<length; i++)
    {
    //********4********
    if()
    {
    return 1;
    }
    }
    return 0;
    }
    private:
    int Array [MAX_LENGTH];
    int length; //用来记录数组的个数
    };
    int main ()
    {
    CArray obj;
    obj .AddMember (1);
    obj.AddMember (3);
    obj.AddMember (8);
    obj.AddMember (23);
    cout<<obj.is Include (8)<<endl;
    cout<<obj, isInclude (11)<<endl;
    obj.DelMember (3);
    obj.DelMember (8);
    cout<<obj.isInclude (2)<<endl;
    cout<<obj.isInclude (1)<<endl;
    return 0;
    }
【正确答案】(1)添加语句:length=0;
   (2)将“if (Array [i]=n)"补充完整为: if (Array [i]==n)或if(n==Array [i])
   (3)将“if()”补充完整为:if(i<length)或if(i!=length)
   (4)将“if()”补充完整为:if (Array[i]==n)或if(n==Array [i])
【答案解析】 程序中定义了类CArray,有两个数据成员和多个成员函数。变量为length用来记录数组元素的个数,数组Array[MAX_LENGTH]用来存放数组元素。
   成员函数AddMember()和DelMember()分别表示添加和删除元素,函数isInclude(int n)检查数组当中是否存在值为n的元素。
   (1)使length的初始化为0,因此添加语句:“length=0;”。
   (2)第2个标识下是检查n是否已经在数组当中存在,用if语句来判断,即if(Array[i]==n)或if(n==Array[i])。
   (3)DelMember (int n)函数删除指定的元素,由于元素在数组当中的位置未知,因此必须先查找该元素的位置,在该函数的实现过程当中通过for循环来完成,即第一个for循环查找n在数组中的位置。
   如果n存在于数组中,那么if中的break语句就会执行跳出循环,此时循环变量i的值会小于length,即通过判断i的值是否小于length值可以知道n是否存在数组中,如果存在数组中接下来进行删除操作。即第3个标识下应改为if(i<length)或if(i !=length)。
   (4)isInclude(int n)成员函数用来判断n是否存在数组当中,可用if语句比较,即第4个标识下应改为“if(Array[i]==n)或if(n==Array[i])”。