请使用VC6或使用【答题】菜单打开考生文件夹pmj3下的工程pmj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有类Array的定义和主函数main的定义。请把主程序文件中的Array类的成员函数Contrary()的

admin2015-06-27  16

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmj3下的工程pmj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有类Array的定义和主函数main的定义。请把主程序文件中的Array类的成员函数Contrary()的定义补充完整,经补充后运行程序,得到的输出结果应该是:
58
5,4,3,2,1
0,0,8.4,5.6,4.5,3.4,2.3,1.2
注意:只允许在“//**********333**********”和“//**********666**********”之间填写内容,不允许修改其他任何地方的内容。
//Array.h
#include
usingnamespacestd;
template
classArray{//数组类
public:
Array(Typeb[],intmm){//构造函数
for(inti=0;iif(i=b
elsea=0;
}
voidContrary();
//交换数组a中前后位置对称的元素的值
intLength()const{returnm;}
//返回数组长度
Typeoperator[](inti)const{
//下标运算符重载为成员函数
if(i<0||i>=m)
{cout<<"下标越界!"<returna
}
private:
Typea[m];
};
voidwriteToFile(constchar*);
//不用考虑此语句的作用
//main.cpp
#include"Array.h"
//交换数组a中前后位置对称的元素的值
template
voidArray::Contrary(){
//补充函数体
//********333********
//********666********
}
intmain(){
ints1[5]={1,2,3,4,5};
doubles2[6]={1.2,2.3,3.4,4.5,5.
6,8.4};
Arraydl(s1,5);
Arrayd2(s2,6);
inti;
d1.Contrary();d2.Contrary();
cout<<for(i=0;i<4;i++)
cout<<<",";
cout<for(i=0;i<7;i++.)
cout<<<”,”;
cout<writeToFile(””);
//不用考虑此语句的作用
return0;
}

选项

答案for(inti=0,j:m一1;i
解析 主要考查考生对交换算法的掌握情况,根据题目对要完成的函数Contrary的要求:交换数组a中前后位置对称的元素的值。这里取下标i=0,即为数组中的第一个元素,j=m一1,即为数组中的最后一个元素,利用中间值temp交换元素的值,然后i逐次递增的同时j逐次递减,再交换,循环到i>j时停止交换即可。
转载请注明原文地址:https://jikaoti.com/ti/6kXiFFFM
0

最新回复(0)