资源描述
09-10-2电类上机考试试卷_B(2010年1月)
学号 姓名 成绩
(考试时间80分钟,卷面分数30分)
说明:首先在本地盘建立一个以自己的学号命名的文件夹,用于保存上交的考试文件,最后将该学号文件夹拷贝至考试盘。对以下问题编制程序,调试运行,输出结果。
一、改错题(50分)
以下程序定义了一个复数类,并定义了若干个类对象对其成员函数进行了测试。该程序共有5处错误。
【说明】1、程序中含有语法错误和少量逻辑错误,请调试修改并以文件名f1.cpp保存修改后的程序。
2、不允许改变程序实现的功能,不允许删除有错误的行。
【源程序】
#include<iostream>
using namespace std;
class complex{
private:
double real, image;
public:
complex(){ //缺省的构造函数
real=0.0;
image=0.0;
cout<<"Initializing 0 0"<<endl;
}
complex(double r,double i=0.0){ //带参数的构造函数
real=r;
image=i;
cout<<"Initializing"<<r<<'\t'<<i<<endl;
}
complex(complex com); //拷贝的构造函数
{
cout<<"Copy"<<com.real<<'\t'<<com.image<<endl;
real=com.real;
image=com.image;
}
~complex(){ //析构函数
cout <<"Destructor"<<endl;
}
void SetComplex(double r,double i)
{
real = r;
image = i;
}
void print(){
cout<<real<<'+'<<image<<'i'<<endl;
}
private:
void assign(complex com){
real=com.real; //先建立临时对象com
image=com.image;
}
}
complex global;//全局对象首先建立
int main(){
cout <<"Entering main"<< endl;
complex com1, com2(5.6, 7.5);
com1.image = com1.real = 2.0;
complex com3=com1;
com3.print();
global.print();
com1=fun(com2);
com1.print();
cout<<"Exiting main"<<endl;
return 0;
}
complex fun(complex com){
cout<<"Entering function"<<endl;
global.assign(com);
cout<<"Exiting function"<<endl;
return global;
}
二、编程题(50分)
中国古代数学史上著名的"百鸡问题":鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
【要求】
1. 求出所有可能的结果,将其中母鸡的数目为质数的结果输出到文件out.txt中。
3. 将源程序以文件名f2.cpp保存,将文件f2.cpp和out.txt一起放入学号文件夹。
展开阅读全文