一起答
主观

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

 000

 1 2-1

 000

 l 2-l

 2 1 1

 源程序文件 test24_1.cpp 清单如下:

   #include<iostream.h>

   class A {

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

    int a=O;

   public:

    A(int aa=O):a(aa){}

   };

   class B

   {

    int a,b;

    const int c;

    A d;

   public:

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

    B(){}

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

    B (int aa, int bb): d(aa+bb)

    {

        a=aa, b=bb;

    }

    void print()

    {

        cout<<a<<" "<<b<<" "<<c<<" "<<endl;

    }

   };

   void main ( )

   {

    B a,b(1,2);

    B x=a,y(b),z(2,1);

    a.print();

    b.print();

    x.print();

    y.print();

    z.print();

   }

参考答案
查看试卷详情
相关试题
  1. 使用VC6打开考生文件夹下的工程test23_3,此工程包含一个源程序文件test23_3.cpp,其中定义了类X和它的友元类Y,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。

     (1)将类X的静态数据成员y初始化为1。请在注释“//**1**”之后添加适当的语句。

     (2)完成类Y的构造函数Y(int i,int j)的定义,将参数i赋值给类Y的数据成员,X的对象a中的数据成员x,并且把参数j赋值给类X的数据成员y,请在注释“//**2**”之后添加适当的语句。

     (3)完成类Y的成员函数void Display()的定义,将Y的数据成员,X的对象a中的数据成员x和类X的数据成员y按照“x=_,y=_”的形式显示出来(“_”代表一个数字),请在注释“//**3**”之后添加适当的语句。

     输出结果如下:

     x=5,y=l

     x=6,y=9

     x=5,y=9

     注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

     源程序文件test23_3.cpp清单如下:

       include<iostream.h>

       class X

       {

        friend class Y;

       public:

        void Set(int i) {x=i;}

        void Display()

       {

         cout<<"x="<<x<<",";

         cout<<"y="<<y<<endl;

       }

       private:

        int x;

        static int y;

       };

       class Y

       {

       public:

        Y(int i, int j)

        void Display();

       private:

        X a;

       };

       //**1**

       Y::Y(int i, int j)

       {

        //**2**

       }

       void Y::Display()

       {

        //**3**

       }

       void main ( )

       {

        X b;

        b.Set(5);

        b.Display();

        Y c(6,9);

        c.Display();

        b.Display();

       }

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

     000

     1 2-1

     000

     l 2-l

     2 1 1

     源程序文件 test24_1.cpp 清单如下:

       #include<iostream.h>

       class A {

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

        int a=O;

       public:

        A(int aa=O):a(aa){}

       };

       class B

       {

        int a,b;

        const int c;

        A d;

       public:

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

        B(){}

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

        B (int aa, int bb): d(aa+bb)

        {

            a=aa, b=bb;

        }

        void print()

        {

            cout<<a<<" "<<b<<" "<<c<<" "<<endl;

        }

       };

       void main ( )

       {

        B a,b(1,2);

        B x=a,y(b),z(2,1);

        a.print();

        b.print();

        x.print();

        y.print();

        z.print();

       }

  3. 请编写两个函数int sum_of_powers(int k,int n),powers(int m,int n),求1~6的k次方的和,sum_of_powers中参数k和n分别表示k次方和所求数列中最大的一个自然数,最后返回所求值,powers中参数m和n分别表示m为底数n为指数,最后返回所求值。要求使用for循环和函数嵌套(int sum_of_powers中调用powers)实现算法。输出结果如下:

     sum of 4 powers of intergers from 1 to 6=2275

     注意:部分源程序已存在文件test25_2.cpp中。

     请勿修改主函数main和其他函数中的任何内容,仅在函数sum_of_powers和powers的花括号中填写若干语句。

     文件test25_2.cpp的内容如下:

       #include<iostream.h>

       const int k(4);

       const int n(6); 

       int sum_of_powers(int k,int n),powers(int m,int n);

       void main()

       {

        cout<<"sum of "<<k<<" powers Of intergers from 1 to "<<n<<"=";

        cout<<sum_of_powers(k,n)<<endl;

       }

       int sum_of_powers(int k,int n)

       {

       }

       int powers(int m, int n)

       {

       }