使用VC6打开考生文件夹下的工程test25_1,此工程包含一个源程序文件test25_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
privatel from derived1:30
privatel from derived2:30
源程序文件test25_1.cpp清单如下:
/***************found******************/
include<iostream.h>
class base
{
protected:
int privatel;
public:
base(int p){privatel=p;}
};
/****************found*******************/
class derived1:public base
{
public:
derivedl(int p1):base(p1){};
int get_private(){return private1;}
}
class derived2:virtua1 public base
{
public:
derived2(int p2):base(p2){};
int get_private(){return private1;}
};
class derived12:public derived1,public derived2
{
public:
/****************found*******************/
derived12(int p1,int p2,int pb):derived1(p1), base(pb), derived2(p2){};
};
void main()
{
derived12 d(10,20,30);
cout<<"privatel from derived1:"<<d.derived1::get_private();
cout<<"\nprivatel from derived2:"<<d.derived2::get_private();
cout<<endl;
第1题:
使用VC6打开考生文件夹下的工程test7_1,此工程包含一个源程序文件test7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Constructor1
Constructor1
Constructor1
Destructor
Constructor2
Destructor
x=0
x=5
Destructor
Destructor
源程序文件test1_1.cpp清单如下:
include<iostream.h>
class B
{
int X;
public:
B(){X=0;cout<<"Constructorl"<<endl;}
B(int i){x=i;cout<<"Constructor2"<<endl;}
~B(){cout<<"Destructor"<<endl;}
/**********found*********/
~B(int i){cout<<i<<"be Destructor"<<endl;}
void print(){cout<<"x="<<x<<endl;}
};
void main()
{
B *ptr;
ptr=new B[2];
/**********found*********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found********/
for(int i=0; i<2;)
ptr[i].print();
delete []ptr;
}
第2题:
使用VC6打开考生文件夹下的工程test42_1,此工程包含一个源程序文件test42_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
rect area: 12
rectb area: 30
源程序文件test42_1.cpp清单如下:
include <iostream.h>
class CRectangle
{
/***************** found *****************/
int *width, height;
public:
CRectangle (int,int);
~CRectangle ();
int area (void) {return (*width * *height);}
};
CRectangle::CRectangle (int a, int b)
{
width = new int;
height = new int;
/***************** found *****************/
width = a;
*height = b;
}
CRectangle::~CRectangle ()
{
delete width;
delete height;
}
/***************** found *****************/
void main ()
{
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: "<< rect.area() << endl;
cout << "rectb area: "<< rectb.area() << endl;
return 0;
}
第3题:
使用VC6打开考生文件夹下的工程test17_1,此工程包含一个源程序文件test17_1.唧,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Vehicle message
Car message
Vehicle message
源程序文件test17_1.cpp 清单如下:
include <iostream.h>
class vehicle
{
int wheels;
float weight;
public:
/***************** found *****************/
void message(void){ cout<<"Vehicle message\n";}
};
class car:public vehicle
{
int passenger_load;
public:
/***************** found *****************/
void message (void){cout>>"Car message\n";}
};
class truck:public vehicle
{
int passenger_load;
float payload;
public:
int passengers(void){return passenger_load;}
};
void main()
{
vehicle * unicycle;
unicycle=new vehicle;
/***************** found *****************/
unicycle.message()
delete unicycle;
unicycle=new car;
unicycle->message();
delete unicycle;
unicycle=new truck;
unicycle->message();
delete unicycle;
}
第4题:
使用VC6打开考生文件夹下的工程test30_1,此工程包含一个源程序文件test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
Previous=9,Next=11
源程序文件test30_1.cpp清单如下:
include <iostream.h>
/***************** found *****************/
void prevnext (int,int &,int&);
int main ( )
{
int x=10,y,z;
prevnext (x,y,z);
cout << "Previous=" << y << ", Next=" << z<<end1;
return 0;
}
/***************** found *****************/
void prevnext (int x, int prev, int next)
{
/***************** found *****************/
prev=x--;
next=++x;
}
第5题:
使用VC6打开考生文件夹下的工程test29_1,此工程包含一个源程序文件test29_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
A:no parameters
B:int parameter
A:no parameters
B:int parameter
C:int parameter
源程序文件test29_1.cpp清单如下;
include <iostream.h>
class A
{
/***************** found *****************/
private:
A(){ cout<<"A:no parameters\n";}
A(int a) {cout<<"A: int parameter\n";}
};
class B:public A
{
public:
B(int a){cout<<"B:int Parameter\n";}
};
/***************** found *****************/
class C:public B,public A
{
public:
/***************** found *****************/
C(int a) ::B(a) {cout<<"C: int parameter\n"; )
};
void main ( )
{
B b(1);
C c(2);
}
第6题:
使用VC6打开考生文件夹下的工程test38_1,此工程包含一个源程序文件test38_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
2 is a factor of 10
源程序文件test38_1.cpp清单如下:
include <iostream.h>
class myclass
{
/***************** found *****************/
int n,d
public:
myclass(int i, int j){ n=i; d=j; }
friend int factor( myclass ob);
};
/***************** found *****************/
int myclass::factor(myclass ob)
{
/***************** found *****************/
if(ob.n%ob.d)
return 1;
else
return 0;
}
void main()
{
myclass ob1(10,2),ob2(13,3);
if(factor(ob1))
cout<<"2 is a factor of 10\n";
if(factor(ob2))
cout<<"3 is not a factor of 13\n";
}
第7题:
使用VC6打开考生文件夹下的工程test23_1,此工程包含一个源程序文件test23_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
i
iz
O
12
22
源程序文件test23_1.cpp清单如下:
include<iostream.h>
include<stdio.h>
class innerclass
{
int x;
public:
/****************found*******************/
innerclass(int z) { x=z; cout<<"iz"<<endl;};
/****************found*******************/
void write( ) {print("%d\n",x);}
}
class outerclass
{
int y;
innerclass g;
innerclass *h;
public:
outerclass(int a);
void write( ) { printf("%d\n",y); }
void write_inner_g() {g.write(); }
void write_inner_h() {h->write();}
};
outerclass::outerclass(int a)
{
/****************found*******************/
h=new innerclass(12);
cout<<"o"<<endl;
}
int main ( )
{
outerclass ob(22);
ob.write_inner_h();
ob.write();
return 1;
}
第8题:
使用VC6打开考生文件夹下的工程test34_1,此工程包含一个源程序文件test34_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
David 3123 1000
源程序文件test34_1.cpp清单如下:
include <iostream.h>
include <string.h>
class person
{
public:
char name[20];
unsigned long id;
float salary;
void print(){cout<<name<<' '<<id<<' '<<salary<<
/***************** found *****************/
}
void main( )
{
person p;
person *ptr;
/***************** found *****************/
ptr=p;
/***************** found *****************/
strcpy("David",ptr->name);
ptr->id=3123;
ptr->salary=1000;
ptr->print();
}
第9题:
使用VC6打开考生文件夹下的工程test21_1,此工程包含一个源程序文件test21_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
The grade is 3
源程序文件test21_1.cpp清单如下:
include<iostream.h>
class student
{
private:
int grade;
public:
/**************** found*******************/
student(int thegra):(thegra){}
~student(){}
int get_grade(){return grade;}
};
void main()
{
int thegra=3;
/**************** found*******************/
student point=new student(thegra);
/**************** found*******************/
cout<<"The grade is"<<point.get_grade()<<endl;
delete point;
}
第10题:
使用VC6打开考生文件夹下的工程test36_1,此工程包含一个源程序文件test36_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
2
源程序文件test36_1.cpp清单如下:
include<iostream.h>
class amount;
class coins
{
/***************** found *****************/
enum units {penny, nickel, dime, quarter, half_dollar}
/***************** found *****************/
class amount;
};
class amount
{
/***************** found *****************/
coins:units money;
public:
void setm();
int germ();
};
void amount::setm()
{
money = coins::dime;
}
int amount::getm()
{
return money;
}
int main ( )
{
amount ob;
ob.setm();
cout << ob.getm()<<end1;
return 0;
}
第11题:
使用VC6打开考生文件夹下的工程test41_1,此工程包含一个源程序文件test41_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
7
源程序文件test41_1.cpp清单如下:
include<iostream.h>
class myclass
{
int a, b;
public:
/***************** found *****************/
int sum(myclass x);
void set_ab(int i, int j);
}:
/**************** found ****************/
void myclass:set_ab(int i, int j)
{
a=i;
b=j;
}
int sum (myclass x)
{
/***************** found ***************/
x.a+x.b;
}
void main ( )
{
myclass n;
n.set_ab (3, 4);
cout <<sum(n)<<endl;
}
第12题:
使用VC6打开考生文件夹下的工程test15_1,此工程包含一个源程序文件test15_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
My object has member 7
源程序文件test15_1.cpp清单如下:
include<iostream.h>
class MyClass
{
public:
MyClass(int mem){member=mem;}
~MyClass(){}
int GetAge()const{ return member;}
private:
int member;
};
/*****+********+** found *************/
void main()
{
int mem=7;
/*************** found ***************/
MyClass myObj=MakeObject(mem);
cout<<"My object has member"<<myObj->GetAge()<<endl;
/***************** found ****************/
delete;
}
MyClass *MakeObject(int mem)
{
MyClass *pMyClass=new MyClass(mem);
return pMyClass;
}
第13题:
使用VC6打开考生文件夹下的工程test10_1,此工程包含一个源程序文件test10_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为;
class Base
class D1
class D2
class D3
fin Base
源程序文件test10_1.cpp清单如下:
include<iostream.h>
class Base
{
public:
Base(){cout<<"class Base"<<endl;}
void f(){cout<<"f in Base"<<endl;}
};
class D1:virtual public Base
{
public:
D1(){cout<<"class D1"<<endl;}
void f(){cout<<"f in D1"<<endl;}
};
/*********found**********/
class D2:public Base
{
public:
D2(){cout<<"class D2"<<endl;}
/**********found**********/
class D3::public D1,public D2
{
public:
D3(){cout<<"class D3"<<endl;}
};
void main()
{
D3 d;
/**********found************/
d.f();
}
第14题:
使用VC6打开老考生文件夹下的工程test5_1,此工程包含一个源程序文件test5_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
x=3 y=5 z=0
8
源程序文件test5_1.cpp清单如下:
include<iostream.h>
static int x=5;
int z=0;
int *add(int x,int y)
{
cout<<"X="<<X<<"y="<<y<<" Z="<<z<<endl;
z=z+x+y;
/********found*********/
return z;
/********found*********/
};
void main()
{
int y=5;
int x=3;
/*********found********/
cout<<&(add(X,y))<<endl;
}
第15题:
使用VC6打开考生文件夹下的工程test13_1,此工程包含一个源程序文件test13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
n=2
n=5
n=7
源程序文件test13_1清单如下:
include<iostream.h>
class Sample
{
int n;
public:
/*************** found ************+***/
Sample()
Sample(int i){n=i;}
/***************** found ********+**********/
void add(Sample s1,Sample s2)
/***************** found ****************/
{
this.n=s1->n+s2.n;
}
void disp(){cout<<"n="<<n<<endl;}
};
void main()
{
Sample s1(2),s2(5),s3;
s3.add(&s1,s2);
s1.disp();
s2.disp();
s3.disp();
}
第16题:
使用VC6打开考生文件夹下的工程test4_1,此工程包含一个源程序文件test4_1.cpp,但该程序在类的定义中存在问题,请改正类定义中的错误,使程序的输出结果如下:
a=3 b=13
a=5 b=13
注意:请勿修改主函数main中的任何内容。
源程序文件rcst4_1.cpp清单如下:
include<iostream.h>
class T
{
public:
/*********found***+******/
T(int x){a=x; b+=x;)
/+********found**********/
void display(T c)
{ cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;)
private:
const int a;
static int b;
};
/**********found*********/
int b=5;
void main()
{
T A(3),B(5);
T::display(A);
T::display(B);
}
第17题:
使用VC6打开考生文件夹下的工程test26_1,此工程包含一个源程序文件test26_1.cpp,但该程序运行有问题,请改正
函数中的错误,使该程序的输出结果为:
Values are: 1,2 and 3
源程序文件test26_1.cpp清单如下;
include <iostream.h>
class CommonBase
{
public:
int x;
};
/*****************found*****************/
class DeriveCommonA::public CommonBase
{
public:
int y;
};
class DeriveCommonB:public CommonBase
{
public:
int z;
};
/*****************found*****************/
class Overlapping:public DeriveCommonA; public DeriveCommonB
{
public:
void Display()
{
cout<<"Values are: "<<DeriveCommonA::x<<", "<<y<<" and "<<z<<end1;
}
};
int main ( )
{
Overlapping ov;
/*****************found*****************/
ov.x=1;
ov.y=2;
ov.z=3;
ov.Display();
return 0;
}
第18题:
使用VC6打开考生文件夹下的工程test2_1,此工程包含一个源程序文件test2_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
调用基类BASE的构造函数:1
调用基类BASE的构造函数:2
调用派生类A的构造函数:3
调用派生类A的析构函数
调用基类BASE的析构函数
调用基类BASE的析构函数
源程序文什test2_1.cpp清单如下:
include<iostream.h>
class BASE
{
public:
BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}
~BASE(){cout<<"调用基类BASE的析构函数"<<endl;)
/***************** found *****************/
}
class A:public BASE
{
public:
/***************** found *****************/
A(int a,int b):i(a),b(b)
{cout<<"调用派生类A的构造函数:"<<a+b<<endl;}
~A(){cout<<"调用派生类A的析构函数"<<endl;)
private:
BASE b;
};
void main()
{
/****************found***************/
BASE obj(1,2);
}
第19题:
使用VC6打开考生文件夹下的工程proj2。此工程包含一个源程序文件main2.cpp,但该程序运行有问题。请改正main函数中的错误。
源程序文件main2.cpp清单如下:
//main2.cpp
include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int m)
{
member=m;
}
~MyClass() {}
int GetMember()
{
return member;
}
private:
int member;
};
MyClass MakeObject(int m)
{
MyClass *pMyClass=new MyClass(m);
return *pMyClass;
}
int main ( )
{
int x=7;
/************found**************/
MyClass *myObj=MakeObject(x);
/*************found*************/
cout<<"My object has member"<<myObj.GetMember()<<end1;
return 0;
}
第20题:
使用VC6打开考生文件夹下的工程test19_1,此工程包含一个源程序文件test19_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
1:
weight:5
age:0
2:
weight:7
age:9
源程序文件test19_1.cpp 清单如下:
include <iostream.h>
class animal
{
public:
/**************** found *******************/
friend void setvalue(animal&,int);
/**************** found *******************/
void print()
protected:
int itsweight;
int itsage;
};
void animal::print()
{
cout<<"weight:"<<itsweight<<end1;
cout<<"age:"<<itsage<<end1;
}
void setvalue(animal &ta,int tw)
{
ta.itsweight=tw;
ta.ihsage=0;
}
void setvalue(animal &ta,int tw, int tn)
{
ta.itsweight=tw;
ta.itsage=tn;
}
void main()
{
/**************** found *******************/
animal peppy
setvalue(peppy,5);
cout<<"1:"<<end1;
peppy.print();
setvalue(peppy,7,9);
cout<<"2:"<<end1;
peppy.print();
}
第21题:
使用VC6打开考生文件夹下的工程test3_1,此工程包含一个源程序文件test3_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
A:a=5
display1:a=6
display2:a=5
源程序文件test3_1.cpp清单如下:
include<iostream.h>
Class A
{
public:
/**********found**********/
A (){}
void printa(){cout<<"A:a="<<a<<endl;}
private:
int a;
/***********found**********/
class B;
};
class B
{
public:
/*********found**********/
void display1(A t)
{
(*t).a++;cout<<"display1:a="<<(*t).a<<endl;
}
void display2(A t)
{
t.a--;cout<<"display2:a="<<t.a<<end1;
}
};
void main()
{
A obj1;
B obj2;
obj1.printa();
obj2.display1(&obj1);
obj2.display2(obi1);
}
第22题:
使用VC6打开考生文件夹下的工程test27_1,此工程包含一个源程序文件test27_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为;
100
源程序文件test27_1.cpp清单如下:
include <iostream.h>
template <class T>
class pair
{
T valuel, value2;
public:
pair (T first, T second)
{valuel=first; value2=second;}
/***************** found *****************/
char getmax ();
};
/***************** found *****************/
T pair<T>::getmax ()
{
T retval;
/***************** found *****************/
retval = valuel>value2?? value1 : value2;
return retval;
}
void main ()
{
pair <int> myobject (100, 75);
cout << myobject.getmax()<<end1;
}
第23题:
使用VC6打开考生文件夹下的工程test35_1,此工程包含一个源程序文件test35_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
400
40
源程序文件test35_1.cpp清单如下:
include <iostream.h>
class Student
{
public:
Student(int xx){x=xx;}
virtual float calcTuition();
/***************** found *****************/
private:
int x;
};
float Student::calcTuition()
{
return float(x'x);
}
/***************** found *****************/
class GraduateStudent::public Student
{
public:
/***************** found *****************/
GraduateStudent(int xx) ::Student(xx){}
virtual float calcTuition();
};
float GraduateStudent::calcTuition()
{
return float(x*2);
}
void main()
{
Student s(20);
GraduateStudent gs(20);
cout<<s.calcTuition()<<end1;
cout<<gs.calcTuition()<<end1;
}