首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
admin
2020-04-10
22
问题
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件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 namespace std;
class XArray{//数组类
int * a;
int size;
public:
XArray(int b[],int len):size(len)//构造函数
{
a=new int[size];
for(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中两个最小元素值之和
~XArray(){delete[]a;}
};
void writeToFile(const char *);//不用考虑此语句的作用
//main.cpp
#include"Array.h"
//返回成员数组a中的两个最小元素值之和
int XArray::twoMinSum()
{
int x1,x2;
if(1ength()<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++)
cout<<X
<<’ ’;
cout<<endl<<x.twoMinSum ()<<endl;
writeToFile("");//不用考虑此语句的作用
}
选项
答案
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/Fu8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下定义语句:MyClass*p[10];当类对象数组指针p离开它的作用域时,系统自动调用析构函数【】次。
当调用函数时,实参是一个数组名,则向函数传送的是______。
将5个数据进行快速排序,在最坏情况下需要比较的次数是
已知类X成功地重载了--、=、+、和[]这几个运算符,则其中肯定属于成员函数的运算符是()。
在C++语言的面向对象程序设计框架中,______是程序的基本组成单元。
软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
结构化程序设计的3种基本结构是()。
下面是复数类complex的定义,其中重载的运算符“+”的功能是返回一个新的复数对象,其实部等于两个操作对象实部之和,虚部等于两个操作对象虚部之和;请补充完整。classcomplex{doublereal;
在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
随机试题
已知齐次线性方程组有非零解,则λ的值为______.
下个月将有来自60个国家的2000多名青少年来本市参加“Robocup2007”(2007世界机器人足球赛)。校学生会计划成立一个120人的志愿者(volunteer)团队。请你写一篇征求志愿者的通知。内容包括;1.征求志愿者的原因:
血站实验室质量体系文件中,关于仪器、设备的维护和使用,说法不正确的是
维生素D缺乏性手足搐搦症在小婴儿中最常见的症状是
患者,男,57岁,症见脘腹胀痛,下痢赤白,里急后重,舌苔黄腻,脉沉实者。治宜选用
数据的离散程度与代表性的关系是()。
某校毕业生分为9个班,每班人数相等。已知一班男生比二、三班女生总数多1。四、五、六班三个班的女生总数比七、八、九班三个班的男生总数多1,那么该校毕业生中男、女人数比是()。
一、注意事项 1.申论考试,与传统作文考试不同,是对分析驾驭材料的能力与对表达能力并重的考试。 2.作答参考时限:阅读资料40分钟,作答110分钟。 3.仔细阅读给定的资料,按照后面提出的“申论要求”依次作答。二、给定资料(1)
为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()。
PassageThree(1)Oncethepreserveofmonastic(修道院的)retreatsandhardcoremeditators,simplybeingquietisgrowingina
最新回复
(
0
)