- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
(考试时间80分钟,卷面成绩100分)
说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件。
一、改错题(50分)
【要求】调试程序,修改其中的语法错误及少量逻辑错误。只能修改、不能增加或删除整条语句,但可增加少量说明语句和编译预处理指令。
【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹。
【题目】以下程序用于构造一个空的数组对象,通过调用插入函数建立按升序排列的数组,并输出数组内容。
【含错误的源程序】
#includeiostream
#includeiomanip
usingnamespacestd;
classArray{
int*p;
intlast;//最后一个元素下标
public:
Array(int=20);//创建一定长度的空表,给定长度缺省值为20
~Array();
voidinsertOrder(int);//在升序表中插入一个元素,使之仍然升序
voidprint();
};
voidArray::Array(intmax){
last=-1;
p=newint[];//初始化为给定长度
}
Array::~Array(){deletep[];}
voidprint(){
for(inti=0;i=last;i++)coutsetw(4)p[i];
coutendl;
}
voidArray::insertOrder(){//将关键字插入到数组中某个位置
if(last=-1){last++;p[last]=key;}
inti=last;
while(i=0keyp[i]){
p[i+1]=p[i];
i--;
}
p[i]=key;
last++;
}
voidmain(){
Arraya();//创建数组
intt;
for(inti=0;i10;i++){//读入10个数据创建一个升序数组
cint;
a.insertOrder(intt);
}
print();//输出数组
}
二、编程题(50分)
【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
【题目】以下程序定义了一个整型数组类Array,数组长度为30个元素。数组的初始化数据来源以及程序结束后数组的数据保存都指向工程文件夹下的文本文件”vdata.txt”。即,创建数组对象时,在构造函数中读该取文件获得数据(首次创建对象时文件是打不开的,数组就没有初始化值),当程序结束时,析构函数将数据写入上述文件。
【说明】本程序的执行流程是,创建数组对象并初始化,向数组中添加一些数据。请按以上说明和要求将下面程序补充完整,并调试运行。
#includeiostream
#includefstream
usingnamespacestd;
classArray;
ostreamoperator(ostreamos,Arraya);
classArray{
intv[30];
intlast;//最后一个元素下标
public:
Array();//创建表,从文件中读取数据进行初始化
~Array();//数据保存到文件中
voidinsertAfter(int);//在当前表的最后添加一个元素
friendostreamoperator(ostream,Array);//用于直接输出数组对象
};
Array::Array(){
//此处添加代码
}
Array::~Array(){
//此处添加代码
}
voidArray::insertAfter(intt){
last++;
v[last]=t;
}
ostreamoperator(ostreamos,Arraya){
//此处添加代码
}
voidmain(){
Arrayvector;//创建数组
intt;
coutvector;
cout向数组添加3个数:;
for(inti=0;i3;i++){//向数组中添加3个数据
cint;
vect
原创力文档


文档评论(0)