首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
admin
2020-04-10
52
问题
请打开考生文件夹下的解决方案文件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全国计算机二级
相关试题推荐
下面关于break语句的描述中,不正确的是
在C++中,编译时的多态性是通过模板或函数【12】实现的。
公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是
在一个类体的下列声明中,下确的纯虚函数声明星
非成员函数只有在声明为类的____________时才能访问这个类的所有private成员。
用树形结构来表示实体之间联系的模型称为()。
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序等。
在数据库管理系统提供的数据功能中,负责数据的完整性、安全性的定义功能的是()。
下列语句的输出结果cout<<strlen("\t\"\065\xff\n");
诊断和改正程序中错误的工作通常称为______。
随机试题
阅读材料,回答问题。材料12021年1月18日,习近平考察调研国家高山滑雪中心时强调,要突出绿色办奥理念,把发展体育事业同促进生态文明建设结合起来,让体育设施同自然景观和谐相融,确保人们既能尽享冰雪运动的无穷魅力,又能尽览大自然的生态之关
Somebodyoughttodefendtheworkaholic.Thesepeopleareunjustlyaccused,abused,anddefamed,oftentermedsickormorbid(病态的
一侧舌咽神经、迷走神经损害不会出现
阿片中毒表现的三联症状是
买卖合同中,出卖人出卖运输途中的标的物,除当事人另有约定的外,毁损、灭失风险自()时起由买受人承担。
投标报价工作的主要内容包括()。
某企业2013年9月发生的经济业务及登记的总分类账和明细分类账如下。根据资料及总分类账和明细账分类账的勾稽关系,填写总分类账和明细分类账中空缺的数字。(1)3日,向A企业购买甲材料500千克,单价15元,价款7500元;购买乙材料1200千克,单价13元
C注册会计师正在编制存货监盘计划,其主要内容应包括( )。对存货项目的重要程度,注册会计师需要进行考虑的有( )。
阅读下面材料,回答问题。李华是一个十分聪明的学生,他的最大特点就是贪玩,学习不用功。每次考试他都有侥幸心理,希望能够靠运气过关。这次期末考试他考得不理想,他认为这次是自己的运气太差了。请运用维纳的归因理论来分析:对教师来讲,正确掌握维纳归因
徜徉在花海中,常常使你思索起来,感受到许多寻常的道理中新鲜的__________。填入划横线部分最恰当的一项是:
最新回复
(
0
)