您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 东南大学08级C++试卷B(电类第一场)机试试卷-和答案解析
东南大学C++考试上机考试东南大学08级C++(下)上机试卷B(考试时间80分钟,卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件。一、改错题(50分)【要求】调试程序,修改其中的语法错误及少量逻辑错误。只能修改、不能增加或删除整条语句,但可增加少量说明语句和编译预处理指令。【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹。【题目】以下程序实现了冒泡排序算法。【含错误的源程序】/*冒泡排序*/东南大学C++考试上机考试//错误1usingnamespacestd//错误2voidBubbleSort(intslist,intn){//错误3boolnoswap;inti,j;inttemp;for(i=0;in;i++){//错误4noswap=true;//未交换标志为真for(j=n-1;ji;j--){//从下往上冒泡if(slist[j]slist[j-1]){temp=slist[j];slist[j]=slist[j-1];slist[j-1]=temp;noswap=false;}}if(!noswap)break;//本趟无交换,则终止算法。//错误5}东南大学C++考试上机考试}intmain(){inth=10;//错误6inti;intlist[h]={5,8,7,9,6,12,11,15,3,10};cout未排序数组:endl;//错误7for(i=0;ih;i++)coutlist[i]'t';//错误8BubbleSort(list,h);cout已排序数组:endl();//错误9for(i==0;ih;i++)coutlist[i]'\t';//错误10return0;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。【题目】创建类inventory,该类的定义如下,在创建inventory对象时,会调用默认的构造函数inventory()从“mydatafile.txt”文件中读取数据来初始化类的成员;东南大学C++考试上机考试在撤消inventory对象时,会调用默认的析构函数~inventory()将类的成员保存至工程目录下“mydatafile.txt”文件中。请完成该类的构造函数、析构函数以及SetParam()函数的定义。并用main主函数来验证该类的上述功能。【注意】将源程序以文件名“学号f2.cpp”存入Z盘自己的文件夹中。classinventory{stringDescription;stringNo;intQuantity;doubleCost;doubleRetail;fstreamdatafile;Public:inventory();//从文件中读取数据进行初始化~inventory();//数据保存到文件中void东南大学C++考试上机考试SetParam(string,string,int,double,double);//为类的成员数据赋值};inventory::inventory(){//此处添加代码}inventory::~inventory(){//此处添加代码}voidinventory::SetParam(stringdescription,stringnumber,intquantity,doublecost,doubleretail){//完成成员函数SetParam()定义,实现为类的成员数据赋值}用于测试的main函数如下:东南大学C++考试上机考试intmain(){inventorygoods;goods.SetParam(家电,10,100,2000,3500);return0;}【提醒】上传的学号文件夹中只需包含f1.cpp、f2.cpp及mydatafile.txt三个文件即可,其余文件上传前尽可删除。答案解析:一.改错题#includeiostreamusingnamespacestd;voidBubbleSort(intslist[],intn){boolnoswap;inti,j;东南大学C++考试上机考试inttemp;for(i=0;in;i++){noswap=true;//未交换标志为真for(j=n-1;ji;j--){//从下往上冒泡if(slist[j]slist[j-1]){temp=slist[j];slist[j]=slist[j-1];slist[j-1]=temp;noswap=false;}}if(noswap)break;//本趟无交换,则终止算法。//错误5}东南大学C++考试上机考试}intmain(){constinth=10;inti;intlist[h]={5,8,7,9,6,12,11,15,3,10};cout未排序数组:endl;for(i=0;ih;i++)coutlist[i]'\t';BubbleSort(list,h);cout已排序数组:endl;for(i=0;ih;i++)coutlist[i]'\t';return0;}二.编程题#includeiostream#includefstream#includeiomanipusingnamespacestd;classinventory东南大学C++考试上机考试{stringDescription;stringNo;intQuantity;doubleCost;doubleRetail;fstreamdatafile;public:inventory();//从文件中读取数据进行初始化~inventory();//数据保存到文件中voidSetParam(string,string,int,double,double);//为类的成员数据赋值};inventory::inventory(){fstreamdatafile(d:\\mydatafile.txt,ios::in);if(!datafile==0){东南大学C++考试上机考试stringdescription;stringno;intquantity;doublecost;doubleretail;while(!datafile.eof()){datafiledescription;datafileno;datafilequantity;datafilecost;datafileretail;}Description=description;No=no;Quantity=quantity;Cost=cost;Retail=retail;}东南大学C++考试上机考试}inventory::~inventory(){fstreamdatafile(d:\\mydatafile.txt,ios::out);datafileDescriptionsetw(3);datafileNosetw(3);datafileQuantitysetw(3);datafileCostsetw(3);datafileRetailendl;datafile.close();}voidinventory::SetParam(stringdescription,stringnumber,intquantity,doublecost,doubleretail){Description=description;//完成成员函数SetParam()定义,实现为类的成员数据赋值No=number;Quantity=quantity;Cost=cost;东南大学C++考试上机考试Retail=retail;}intmain(){inventorygoods;goods.SetParam(家电,10,100,2000,3500);return0;}//元算符重载存在问题
本文标题:东南大学08级C++试卷B(电类第一场)机试试卷-和答案解析
链接地址:https://www.777doc.com/doc-6170690 .html