首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件pmj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的内
请打开考生文件夹下的解决方案文件pmj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的内
admin
2020-12-21
105
问题
请打开考生文件夹下的解决方案文件pmj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的内容填写在“//*******333*******”与“//*******666*******”两行之间。
经修改后运行程序,得到的输出为:
3 5 7 9 8 6 4 2
5
注意:只允许在“//*******333*******”和“//*******666*******”两行之间填写内容,不允许修改其他任何地方的内容。
//Array.h
#include(iostream>
using namespaee std;
elass XArray{//数组类
int*a;
int size;
public:
XArray(int b[],int len):Bize(len)//构造函数
{
a=new int[size];
fof(int i=0;i<size;i++)a
=b
;
}
int length()const{return size;}//返回数组长度
int&operator[](int i){//返回下标为i的元素
if(i<0‖i>=size){
cout<<”下标越界!”<<endl;
delete[]a;
exit(1);
}
return a
;
}
int twoMinSum();//成员函数声明,返回数组a中两个最小元素值之和
~XAmay(){delete[]a;}
};
void writeToFile(eonst char*);//不用考虑此语句的作用
//main.cpp
#include”Army.h”
//返回成员数组a中的两个最小元素值之和
int XArray::twoMinSum()
{
int x1,x2;
if(length()<2)exit(1);
if(a[0]<=a[1])
{x1=a[0];x2=a[1];}
else{x1=a[1];x2=a[0];}
//********333********
//********666********
return x1+x2;
}
void main(){
int a[8]={3,5,7,9,8,6,4,2};
XArray x(a,8);
for(int i=0;i<x.length();i++)
eoul<<x
<<’’;
cout<<endl<<x.twoMinSum()<<endl;
wteToFile(””);//不用考虑此语句的作用
}
选项
答案
int XArray::twoMinSum() { int x1,x2; if(length()<2)exit(1); if(a[0]<=a[1]){x1=a[0];x2=a[1];} else{x1=a[1];x2=a[0];} //********333******** for(int i=2;i<size;i++){ if(a[i]<x1) { x2=x1; x1=a[i]; }else if(a[i]<x2){ x2=a[i]; } //********666******** return x1+x2; } }
解析
根据题意,twoMinSum成员函数需要在成员a指向的size个数组元素中,找到最小的两个元素x1和x2,返回x1和x2之和。函数首先判断a指向的数组中元素个数是否大于等于2个,接着将a[0]和a[1]两个元素的较小值赋给x1,较大值赋给x2,使得x1始终指向处理过元素中的最小值,x2始终指向处理过元素的次小值;然后从数组a中下标为2的位置开始遍历各个元素,若当前元素a
<x1,说明a
是当前处理过元素中的最小值,x1是次小值;用x1更新x2,再用a
更新x1;若a
>=x1且a
<x2,说明a
是次小值,只更新x2即可;若a
>=x2,则不作处理;完成遍历后,返回x1和x2之和。
转载请注明原文地址:https://kaotiyun.com/show/KZyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,实现函数sort(intA[],intn),用选择排序法把数组从大到小排序。提示:选择排序法的思想是:(1)反复从还未排好的那部分线性表中选择出关键字最
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:1063022注意:错误的语句在∥********error********的下面,修
下面程序的输出结果是()。#include#include“string.h”voidmain(){chara[]=“HelloTest",b[]=“Test”;strcpy(a,b);
字面常量42、4.2、42L的数据类型分别是()。
关于二义性的描述错误的是
执行语句序列 ofstream outfile(”DATA.DAT"); if(…)cout<<"OK";elsec out<<"FAIL"; 后,如果文件打开成功显示“OK”,否则就显示“FAIL”。由此可知,上面if语句的…处的表达式
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为:a=7,b=0a=8,b=10注意:错误的语句在//*****error******的下面,
设有课程关系模式如下:R(C#,Cn,T,TA)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址)并且假定不同课程号可以有相同的课程名,每个课程号下只有一位任课教师,但每位教师可以有多门课程。该关系模式可进一步规范化为
学院的每个系都有一名系主任,且一个教师可同时担任多个系的系主任,则实体系主任和实体系间的联系是
数据库管理系统的基本功能不包括
随机试题
资本收益率与资产收益率的关系可表达为
【背景资料】某高层办公楼,总建筑面积137500m2,地下3层,地上25层。业主与施工总承包单位签订了施工总承包合同,并委托了工程监理单位。施工总承包单位完成桩基工程后,将深基坑支护工程的设计委托给了专业设计单位,并自行决定将基坑支护和土方开挖
用友报表系统中,取数函数包括( )。
甲、乙、丙合伙经营一家名为“满意水果店”的普通合伙企业,甲为该合伙企业的负责人。甲、乙、丙并未约定损益分配和亏损承担的比例。2019年4月的某一天,因丙外出,甲与乙协商后以该合伙企业名义与果农丁签订了一份总价款为16万元的水果买卖合同。因该合伙企业流动资产
下列关于信托理财产品的说法,不正确的是()。
练习企业合并及不丧失控制权情况下处置部分对子公司投资的处理甲股份有限公司(本题下称“甲公司”)为上市公司,2009年至2011年企业合并、长期股权投资有关资料如下:(1)2009年1月20日,甲公司与乙公司签订购买乙公司持有的丙公司(非
设行列式,则行列式=().
下列关于算法复杂度描述正确的是()。
有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为()。
判断对错。例如:我想去办个信用卡,今天下午你有时间吗?陪我去一趟银行?★他打算下午去银行。(√)现在我很少看电视,其中一个原因是,广告太多了,不管什么时间,也不管什么节目,只要你打开电视,总能看到那么多的广告,浪费我的时间。
最新回复
(
0
)