问答题使用VC++ 6.0打开
下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为:
TCA
TCB
TCC
(1)完成类B虚继承于A,请在注释1后添加适当的语句。
(2)完成类C虚继承于A,请在注释2后添加适当的语句。
(3)完成类D继承于B,C,请在注释3后添加适当的语句。
(4)函数fun通过调用基类的fun,完成所输出的内容,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include <iostream.h>
class TCA
{
public:
void fun()
{
cout<<"TCA"<<endl;
}
};
//********1********
class TCB
{
public:
void fun()
{
cout<<"TCB"<<endl;
}
};
//********2********
class TCC
{
public:
void fun()
{
cout<<"TCC"<<endl;
}
};
//********3********
class TCD
{
public:
void fun()
{
//********4********
}
};
void main()
{
TCD test;
test.fun();
return;
};
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,请将堆栈类的定义补充完整。使程序的输出结果为: The element of stack are:4 3 2 1 注意:请勿修改主函数main和其他函数中的任何内容,只在横线处编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。//proj2.cpp#include<iostream>us ing namespace std;const int Size=5;class Stack;class Itern{public://**********found**********Item(const int)//构造函数 对item进行初始化private: int item; Item*next; friend class Stack; }; class Stack { public: Stack():top(NULL){} 一Stack(); int Pop(); void Push(const int//********found******** __________; //释放P所指向的节点 p=q; }} int Stack::Pop() { Item*temp; int ret;//********found******** ___________; //使temp指向栈顶节点 ret=top一>item; top=top一>next; delete temp; return ret;}void Stack::Push(const int&val){ Item*temp=new Item(val);//********found********__________;//使新节点的next指针指向栈顶数据 top=temp;}int main(){ Stack s; for(int i=1;i<Size;i++) s.Push(i); cout<<”The element of stack are:”; for(i=1;i<Size;i++) cout<<s.Pop()<<’\t’; return 0 ;}
问答题使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:
Hello Visual C++!
Hello Visual C++!!
注意:错误的语句在∥********error********的下面,修改该语句即可。
#include
class CMyObj ect
{
public:
CMyObject()
{
∥********error********
cout<<“HellO,
”Visual C++!’<
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj2下的工程proj2。其中在编辑窗口内显示的主程序文件中定义有类Point和Circle,以及主函数mmn。程序文本中位于每行“//****found****”之后的一行内有一处或多处下画线,请在下画线处填写合适的内容,并删除下画线。经修改后运行程序,得到的输出结果应为:
Point:(0,0)3
Point:(4,5)6
28.2743 113.097
#include <iostream>
using namespace std;
class Point //定义坐标点类
{
public:
Point (int xx =0, int yy=0)
{x=xx; y=yy;}
void PrintP () {cout << "Point: (" <<x <<"," <<y<<")";}
private:
int x,y; //点的横坐标和纵坐标
};
class Circle //定义圆形类
{
public:
Circle():rr (0) {} //无参构造函数
Circle (Point //带参构造函数声明
double Area () {return rr* rr* 3.14159;} //返回圆形的面积
//PrintP函数定义,要求输出圆心坐标和半径
//************* ound**************
void PrintP () {______; cout <<rr <<endl;}
private:
Point cc; //圆心坐标
double rr; //圆形半径
}; //带参构造函数的类外定义,要求由cen和rad分别初始化cc和rr
//********** found**********
Circle::______(Point }
int main() {
Point x, y(4,5);
Circle a(x,3), b(y,6); //输出两个圆的圆心坐标和半径
a. PrintP ();
//********** found**********
______;
cout<<a.Area () <<" <<b. Area() <<endl;
return 0;
}
问答题请使用菜单命令或直接用VC6打开
下的工程proj3,其中声明了Date类,它是一个用于表示日期的类。成员函数isLessThan用以比较两个日期的大小:当第一个日期早于第二个日期时,返回true,否则返回false。请补充完整函数isLessThan。在main函数中给出了一组测试数据,此情况下程序的输出应该是:
2007-06-21<2007-07-03
2007-06-21>=2007-06-19
2007-06-21<2010-01-01
注意:只需在函数isLessThan的//********333********和//********666********之间填入若干语句,不要改动程序中的其他内容。
#include"Date.h"
int main(){
Date date1(2007, 6, 21), date2(2007, 7, 3), date3(2007, 6, 19), date4(2010, 1, 1);
date1.show();
date1.isLessThan(date2)?cout<<" <":cout<<">=";
date2.show(); cout<<endl;
date1.show();
date1.isLessThan(date3)?cout<<"<":cout<<">=";
date3.show(); cout<<endl;
date1.show();
date1.isLessThan(date4)?cout<<" <":cout<<">=";
date4.show(); cout<<endl;
writeToFile("c:/test"); //不用考虑此语句的作用
return 0;
}
//proj3/Date.cpp
#include"Date.h"
void Date::show(ostream
}
bool Date::isLessThan(Date date)const{
//********333********
//********666********
}
//proj3/Date.h
#include<iostream>
#include<iomanip>
using namespace std;
class Date{
int year;
int month;
int day;
public:
Date(int y, int m, int d):year(y), month(m), day(d){}
int getYear()const{return year; }
int getMonth()const{return month; }
int getDay()eonst{return day; }
void show(ostream
bool operator==(Date date)const{
return year==date.year
}
bool isLessThan(Date date)const;
};
void writeToFile(const char*path);
问答题使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:init TestClassdel TestClass注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。#include<iostream.h>class TeStClass{//********error********//********error********int TestClass(){cout<<"init TestClass"<<endl;};//********error********void~TestClass(){cout<<"del TestClass"<<endl;};};void main(){TestClass obj;return;}
问答题使用VC++6.0打开
下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(int A[],int n),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。
注意:不能修改和删除程序的其他部分,也不能修改程序的结构。
试题程序:
#include<iostream.h>
#define N 10
void sort(int A[N],int n)
{
}
int main()
{
int A[N]={1,50,17,69,87,42,90,-6,0,-11);
sort(A,10);
for(int i=0;i<sizeof(A)/sizeof(int);i++)
{
cout<<A[i]<<"";
}
cout<<endl;
return 0;
}
问答题使用VC6打开考生文件夹下的工程MyProj6。此工程包含一个源程序文件MyMain6.cpp。在程序中,定义了一个Furniture类,Bed类和Sofa类是在Furniture类的基础上按公有继承的方式产生的派生类,Sleepersofa类是在Bed类和Sofa类的基础上按公有继承的方式产生的派生类。 请按要求完成下列操作,将类Date的定义补充完成: ①Bed类是在Furniture类的基础上按公有继承的方式产生的派生类,为了使程序中的多重继承关系不出现二义性。请在注释“//**1**”之后添加适当的语句。 ②Sofa类是在Furniture类的基础上按公有继承的方式产生的派生类,为了使程序中的多重继承关系不出现二义性。请在注释“//**2**”之后添加适当的语句。 ③Sleepersofa类是在Bed类和Sofa类的基础上按公有继承的方式产生的派生类。请在注释“//**3**”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain6.cpp清单如下; //MyMain6.cpp #include<iostream> using namespace std; class Furniture public: Furniture() void setweight(int w) weight=w; int getweight() return weight; protected: int weight; ; //* *1 * * class Bed definition public: Bed() void sleep() cout<<"sleeping..."<<end1; ; //* *2* * class Sofa definition public: Sofa() void watchTV() cout<<"watching TV..."<<end1; ; //* * * 3 * * * public: Sleepersofa() void Foldout() cout<<"Fold out the sofa".<<endl; ; int main() Sleepersofa ss; ss.setweight(20); cout<<ss.getweight()<<end1; return 0;
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程pros3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组v。ValArray类的成员函数equals用于判断两个对象是否相等。两个ValArray对象相等,当且仅当两者的元素个数size相等,并且整型数组v的对应元素分别相等。如果两个对象相等,则equals返回true,否则返回false。请编写成员函数equals。在main函数中给出了一组测试数据,此种情况下程序的输出结果应为:v1={1,2,3,4,5}v2={1,2,3,4}v3={1,2,3,4,6}v4={1,2,3,4,5}v1!=v2v1!=v3v1=v4要求:补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。//VatArray.h#include<iostream>usingnamespacestd;classValArray{int*v;intsize;public:ValArray(constint*p,intn):size(n){v=newint[size];for(inti=0;i<size;i++)v[i]=P[i];}~ValArray(){delete[]v;}boolequals(constValArray&other);voidprint(ostream&out)const{out<<'{';for(inti:0;i<size一1;i++)out<<v[i]<<",";out<<v[size—1]<<'}';}};voidwriteToFile(constchar*};//main.cpp#include"ValArray.h"boolValArray::equals(constValArray&other){//********333********//********666********}intmain(){constinta[]={1,2,3,4,5};constintb[]={1,2,3,4};constintC[]={1,2,3,4,6};constintd[]={1,2,3,4,5};ValArrayv1(a,5);ValArrayv2(b,4);ValArrayv3(C,5);ValArrayv4(d,5);cout<<"v1=";v1.print(cout);cout<<end1;cout<<"v2=";v2.print(cout);cout<<end1;cout<<"v3=";v3.print(cout);cout<<end1;cout<<"v4=";v4.print(cout);cout<<end1;cout<<"v1"<<(v1.equals(v2)?"i==":"!=")<<"v2"<<end1;cout<<"v1"<<(v1.equals(v3)?"==":"!=")<<"v3"<<end1;cout<<"v1"<<(v1.equals(v4)?"==":"!=")<<"v4"<<end1;writeToFile("");return0;}
问答题综合应用题
使用VC6打开考生文件夹下的工程kt6_3,此工程包含一个源程序文件kt6_3.cpp,其中定义了用于表示考生的类Student,请按要求完成下列操作,将程序补充完整。
(1)定义私有数据成员code、english分别用于表示考生的编号、英语成绩、它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
(2)完成成员函数voidStudent::inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下所示:
输入编号:
英语成绩:
计算机成绩:
请在注释“//**2**”之后添加适当的语句。
(3)利用已实现的类Student的成员函数,完成函数voidfirstname(Student*A[],intnum)的定义,该函数根据考生信息A[],输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。请在注释“//**3**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件kt6_3.cpp清单如下:
#include
classStudent
{//**1**
intcomputer;
inttotal;
public:
voidgetinformation();
voidcomputesum();
intgetcode();
intgettotalscore();
~Student();};
voidStudent::getinformation()
{//**2**
cout>english;
cout>computer;}
voidStudent::computesum()
{total=english+computer;
couttempsum)
{tempcode=(*A[i]).getcode();
tempsum=(*A[i]).gettotalscore();}
}
coutgetinformation();}
for(i=0;i
{A[i]->computesum();}
firstname(A,3);}
问答题请使用VC6或使用【答题】菜单打开
proj1下的工程proj1,该工程含有一个源程序文件proj1.cpp。其中位于每个注释“// ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
The value is 10
注意:只修改注释“// ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
// proj1.cpp
#include <iostream>
using namespace std;
class MyClass {
int value;
public:
// ERROR ******found******
void MyClass(int val) : value(val) {}
int GetValue() const {return value;}
void SetValue(int val);
};
// ERROR ******found******
inline void SetValue (int val)
{value = val;}
int main()
{
MyClass obj(0);
obj.SetValue(10);
// ERROR ********found******* 下列语句功能是输出obj的成员value的值
cout << "The value is" << obj.value << endl;
return 0;
}
问答题用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下:
TestClass3
TestClass2
TestClass 1
其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。
(1)类TestClass2公共继承于TestClassl,请在注释∥********1********后添加适当的语句。
(2)print函数为虚函数,请在注释∥********2********后添加适当的语句。
(3)修改语句,使得P指定对象obj3,请在注释∥********3********后添加适当的语句。
(4)修改语句,利用P调用printO~数,完成输出信息,注释∥********4********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include
using namespace std;
CLass TestClaSS1
{
public:
void print(){
cout<<“TestClasSl”<
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj2下的工程proj2,其中有矩阵基类MatrixBase、矩阵类Matnx和单位阵UnitMatrix的定义,还有mam函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。 #include<iostream> using namespace std; //矩阵基础类,一个抽象类 class MatrixBase int rows,cols; public: MatrixBase(int rows,int cols):rows(rows),cols(cols) int getRows()constreturn rows; //矩阵行数 int gatCols()constreturn cols; //矩阵列数 virtual double getElement(int r,int c)const=0;//取第i个元素的值 void show() const //分行显示矩阵中所有元素 for(int i=0;i<rows;i++) cout<<endl; for(int j=0;j<cols;j++) //**********found********** COUt<<______<<" "; ; //矩阵类 class Matrix:public MatrixBase double*val; public: //**********found********** Matrix(int rows,int cols,double m[]=NuLL):______ //**********found********** val=______; for(int i=0;i<rows* cols;i++) val[i]=(m==NuLL?0.0:m[i]); ~Matrix()delete[]val; double getElement(int r,int c)constreturn val[r* getCols()+c]; ; //单位阵(主对角线元素都是1,其余元素都是0的方阵)类 class UnitMatrix: public MatrixBase public: UnitMatrix(int rows):MatrixBase(rows,rows) //单位阵行数列数相同 double getElement(int r,int c) const //**********found********** if(______)return 1.0; return 0.0; ; int main() MatrixBase*m; double d[][5]=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7; m=new Matrix(3,5,(double*)d); m->show(); delete m; cout<<endl; m=new UnitMatrix(6); m->show(); delete m; return 0;
问答题使用VC++6.0打开
下的源程序文件2.cpp。阅读下列函数说明和代码。
函数sort(int
int y=13;
int z=-3;
sort(x,y,z);
cout<<x<<","<<y<<","<<z<<endl;
return 0;
}
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数func(intd[],int n)的功能是将长度为num的数组d的每一个数字是奇数的扩大1倍,并存储到数组d中。 例如:1 2 3 4 5 6 7 8 9 返回:2 2 6 4 10 6 14 8 18 将func(int d[],int num)补充完整。 注意:请勿改动主函数。#include<iostream.h>Void func(int d[],int num){}int main(){ int Data[]={1,2,3,4,5,6,7,8,9); func(Data,9); for(int i=0;i<sizeof(Data)/sizeof(int);i++) { cout<<Data[i]<<' '; } cout<<endl; return 0;}
问答题请使用VC6或使用[答题]菜单打开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示:
张小丽123456789012345
但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
(1)在“//**1** ****found****”的下方是构造函数的定义中的一个语句,它用参数提供的身份证号id_card_no对数据成员idcardno进行初始化。
(2)在“//**2** ****found****”的下方是构造函数定义的一个组成部分,其作用是利用参数表中的前几个参数对基类Person进行初始化。
(3)在“//**3** ****found****”的下方定义了一个Staff对象,其中:
身份证号:123456789012345
姓名:张三
出生日期:1979年5月10日
性别:女
工作部门:人事部
工资:1234.56元
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。填写的内容必须在一条语句中完成,否则评分将产生错误。
//proj3.cpp
#include <iostream>
using namespace std;
class Date
{
public:
int year;
int month;
int day;
Date():year(0), month(0), day(0) {}
Date (int y, int m, int d) :year (y), month (m), day (d) {}
};
class Person
{
char idcardno[16]; //身份证号
char name[20]; /姓名
Date birthdate; //出生日期
bool ismale; //性别:true为男, false为女
public:
Person(const char * pid, const char* pname, Date pdate, bool pmale);
const char * getIDCardNO () const {return idcardno; }
const char * getName () const { return name; }
void rename(const char * new_name);
Date getBirthDate () const { return birthdate; }
bool isMale()const{ return ismale;}
};
class Staff: public Person
{
char department[20]; //工作部门
double salary; //工资
public:
Staff (const char * id_card_no, const char * p_name, Date birth_date,bool is_male,
const char * dept, double sal);
const char * getDepartment()const{return department; }
void setDepartment(const char * d);
double getSalary () const { return salary; }
void setSalary(double s){ salary =s; }
};
Person::Person(const char * id_card_no, const char * p_name, Date birth_date, bool is_male)
:birthdate (birth_date), ismale (is_male)
{
//**1** ********** found**********
______;
strcpy(name, p_name);
}
void Person::rename(const char * new_name){ strcpy(name, new_name); }
Staff::Staff (const char * id_card_no, const char * p_name, Date birth_date, bool is_male,
//**2** **********found**********
const char * dept, double sal):______
{
setDepartment(dept);
setSalary(sal);
}
void Staff:: setDepartment (const char * dept)
{
strcpy(department, dept);
}
int main()
{
//**3** ********** found**********
Zhangsan. rename ("张小丽");
cout << Zhangsan.getName () << Zhangsan.getIDCardNO () << endl;
return 0;
}
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义和函数定义。该程序的正确输出结果应为:
教材名:C++语言程序设计
页数:299
作者:张三
相关课程:面向对象的程序设计
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include <iostream>
using namespace std;
class Book{ //"书"类
char * title; //书
int num_pages; //页数
char * writer; //作者姓名
public:
//********** found**********
Book(const char * the title, int pages, const char * the writer):
______{
title =new char[ strlen (the_titie) +1];
strcpy(title,the_title);
//********** found**********
______
strcpy(writer,the_writer);
}
~Book(){ delete []title; delete []writer; }
int numOfPages()const{ return numpages;} //返回书的页数
const char * theTitle () const { return title; } //返回书名
const char * theWriter () const{ return writer; } //返回作者名
};
class TeachingMaterial: public Book{ //“教材”类
char * course;
public:
TeachingMaterial (const char * the_title, int pages, const char * the_writer, const char * the_course)
//********** found**********
:______{
course = new char [ strlen (the_course) +i];
strcpy (course, the_course);
}
~TeachingMaterial () { delete [ ]course; }
const char * theCourse () const{ return course; } //返回相关课程的名称
};
int main () {
TeachingMaterial abook ("C++语言程序设计", 299, "张三", "面向对象的程序设计");
cout <<"教材名:" << a book.theTitle() <<endl
<< "页数:" << a_book.numOfPages ()<< endl
<<"作者:" <<a book.theWriter ()<< endl
//********** found**********
<< "相关课程:" <<______;
cout << endl;
return 0;
}
问答题使用VC6打开
下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
程序输出结果如下:
10
5
10 5 7
(1)定义类baseA的构造函数,该构造函数有一个整型的参数m,在构造函数申请将m赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。
(2)定义类priA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数申请将m赋值给数据成员b,将n作为基类baseA构造函数的参数值传入。请在注释“//********2料********”之后添加适当的语句。
(3)定义类priA2的构造函数,该构造函数有三个整型的参数m,n和k,在构造函数申请将m赋值给数据成员c,将n和k分别赋值给基类priA1构造函数的参数m和n。请在注释“//********3********”之后添加适当的语句。
(4)完成类priA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员a和b及类priA2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include <iostream.h>
class baseA
{
int a;
public:
//********1********
int geta() {return a;}
};
class priA1:public baseA
{
int b;
public:
//********2********
int getb() {return b;}
};
class priA2:public priA1
{
int c;
public:
//********3********
void show()
{
//********4********
}
};
void main()
{
priA2 a(7, 5, 10);
cout
a.geta()
endl;
cout
a.getb()
endl;
a.show();
}
问答题使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件test20_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。 (1)定义comp的构造函数,函数含参数x和y,它们都是int型的数据,默认值都为0,请使用参数列表的形式分别将类数据成员a和b初始化x和y的值。请在注释“//**1**”之后添加适当的语句。 (2)完成类comp的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员s和b,请在注释“//**2**”之后添加适当的语句; (3)完成类comp的友元函数friend compplus(comp int b; public: //**1** friend comp plus(comp void input(int x,int y) //**2** void output ( ) cout<<a<<'+'<<b<<"i"<<end1; ; comp plus(comp return c; void main() comp x(10,20),y,z; y.input(2,3); z=plus(x,y); x.output(); y.output(); cout<<"result:"; z.output();
问答题使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:1,2,3,4,5,注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********3********的下面。#include<iostream.h>Class TestClass{//********error********TestClass(int i){m_i=i;}void print(){cout<<++m_i<<',';}public:int m_i;};int main(){//********error********int i();TestClass data(0);while(i>5){//********error********i++jdata.print();}cout<<endl;return0;}