第一个
//要求下面程序输出结果为"d=800,f=60"
//提示:a数组的前4个元素相乘得800;a数组的所有元素相加得60。
//第5到20行语句有三行存在错误,请改正错误并调试得到要求的结果。
#include<iostream.h>
class A //1行
{
int a[10]; int n; //2行
public: //3行
A(int aa[], int nn): n(nn) //4行
{
for(int i=0; i<n; i++) aa[i]=a[i]; //5行
} //6行
int Get(int i) {return a[i];} //7行
int SumA(int n); //8行
}; //9行
int A::SumA(int n) { //10行
int s=0; //11行
for(int j=0; j<n; j++) s+=a[j]; //12行
return s; //13行
} //14行
void main() { //15行
int a[]={2,5,8,10,15,20}; //16行
A x(a,6); //17行
int d=1; //18行
for(int i=0; i<4; i++) d*=x.a[i]; //19行
int f=SumA(6); //20行
cout<<"d="<<d<<','; //21行
cout<<"f="<<f<<endl; //22行
} //23行
第二个
//在下面一段类定义中,Derived类公有继承了基类Base。
//此程序输出为333,
//请修改程序(即在恰当的位置添加一条语句),使输出变为:111 222 333
#include <iostream>
using namespace std;
class Base
{
private:
int mem1,mem2; //基类的数据成员
public:
Base(int m1,int m2) { mem1=m1; mem2=m2;}
void output(){cout<<mem1<<' '<<mem2<<' ';}//输出数据成员mem1和mem2的值
};
class Derived: public Base
{
private:
int mem3;//派生类本身的数据成员
public:
Derived(int m1,int m2, int m3); //构造函数,由m1和m2分别初始化mem1和mem2,由m3初始化mem3
void output() //输出mem1,mem2和mem3数据成员的值
{
cout<<mem3<<endl;
}
};
Derived::Derived(int m1,int m2, int m3): Base(m1,m2){mem3=m3;}
void main()
{
Derived s(111,222,333);
s.output();
}