首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数twoMinSum()的定义补充完整,补充的
admin
2020-04-10
34
问题
请打开考生文件夹下的解决方案文件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全国计算机二级
相关试题推荐
下列语句的作用是计算正整数n的各位数字之和,例如:n=123,sum=1+2+3。请将下列语句补充完整。Do{Sum+=【7】:n=n/10;)while(n!=0)
有如下程序#includeusingnamespacestd;intmain(){chara:cin>>a;if(a=*)cout
下列关于输入输出流的叙述中,正确的是
数据字典(D-D)所定义的对象都包含于
C++本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类,它包括类iostream和()。
下列有关继承和派生的叙述中,正确的是()。
数据库设计中反映用户对数据要求的模式是
若变量已正确定义并赋值,以下符合C++语言语法的表达式是
若有定义:int*p;则下列各选项中,不同于表达式“*p=*p+1;”的是()。
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
随机试题
NoEnglishmanbelievesinworkingfrombooklearning.Hesuspectseverythingnew,anddislikesit,unlesshecanbecompelledb
患者,男性,51岁。尿频、尿痛间断发作2年,下腹隐痛、肛门坠胀1年。查体:肛门指诊双侧前列腺明显增大、压痛、质偏硬,中央沟变浅,肛门括约肌无松弛。前列腺液生化检查锌含量为1.76mmol/L,B超显示前列腺增大。为进一步排除前列腺癌的可能性,可考虑检
男性,54岁。既往有冠心病史,因急性阑尾炎拟急诊手术。测血压160/90mmHg(17/12kPa),脉搏45次/分,术前准备可选择
舌的运动神经是
医疗机构施行特殊检查时
有关缓释制剂叙述错误的是
商务谈判中,常用的限制性因素主要有()。
毛泽东在《论十大关系》中论述的中国工业化道路的特点是()。
材料(大意):赵潇是武大电子信息学院光信息科学与技术专业研究生,然而,就在他踌躇满志准备硕博连读时,母亲不幸患癌症晚期。每月两万元的化疗费用,基本上都是从亲戚那里借来的,如今,他已欠下数万元债务,而接下来的治疗费用也还没有着落。眼见着母亲的身体日
说明:假设你是一家旅行社的经理李明。当地旅游职业学院外事办的王主任4月15日给你写信,询问能否考虑赞助他们将在6月举办的为期一周的艺术节。请给王主任写一封回信。时间:4月20日内容:1.对他们的艺术节表示感兴趣;2.因为每年都有固定的赞助预算,到明
最新回复
(
0
)