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

admin2021-09-05  34

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有类Array的定义和主函数main的定义。请把主程序文件中的Array类的成员函数Contrary()的定义补充完整,经补充后运行程序,得到的输出结果应该是:
    5 8
    5,4,3,2,1
    0,0,8.4,5.6,4.5,3.4,2.3,1.2
    注意:只允许在“//**********333**********”和“//**********666**********”之间填写内容,不允许修改其他任何地方的内容。
1  //Array.h
2  #include
3  using namespace std;
4
5 template
6  class Array{//数组类
7 public:
8  Array(Type b[],int mm){//构造函数
9    for(int i=0;i10    if(i=b
11  else a=0;
12    }
13
14    void Contrary();
15  //交换数组a中前后位置对称的元素的值
16
17    int Length()const{return m;)
18  //返回数组长度
19 Type operator[](int i)const{
20  //下标运算符重载为成员函数
21    if(i<0 ||i>=m)
22  {cout<<"下标越界!"<23    return a
24    }
25 private:
26 Type a[m];
27    };
28  void writeToFile(const char*);
29  //不用考虑此语句的作用
1  //main.cpp
2  #include"Array.h"
3  //交换数组a中前后位置对称的元素的值
4  template
5  void Array::Contrary(){//补充函数体
6   //********333********
7
8
9    //********666********
10  }
11  int main(){
12    int s1[5]={1,2,3,4,5};
13   double s2[6]={1.2,2.3,3.4,4.5,5.6,8.4};
14  Arraydl(s1,5);
15  Arrayd2(s2,6);
16    int i;
17   d1.Contrary();d2.Contrary();
18    cout<19    for(i:0;i<4;i++)
20    cout<<<",";
21    cout<22    for(i=0;i<7;i++)
23    cout<<<",";
24    cout<25    writeToFile(" ");
26  //不用考虑此语句的作用
27    return 0;
28    }

选项

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

最新回复(0)