当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
2015年计算机软件水平初级程序员笔试考前训练(12)
发布时间:2011/6/23 21:04:33 来源:城市学习网 编辑:admin
  阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
  【说明】
  设计一个类模板Sample用于对一个有序数组采用二分法查找元素下标。
  【C++程序】
  #include
  #define Max 100∥最多元素个数
  template
  class Sample
  {
  T A[Max]:∥存放有序数序
  int n:∥实际元素个数
  public
  Sample(){}∥默认构造函数
  Sample(T a[],int i);∥初始化构造函数
  int seek(T c);
  void disp()
  {
  for(int i=0;i  cout<  cout<  }
  };
  template
  Sample::Sample(T a[],int i)
  {
  n=i;
  for(intj=0;j  (1) ;
  }
  template
  int Sample::seek(T c)
  {
  int low=0,high=n-1,mid;
  while( (2) )
  {
  mid=(low+high)/2;
  if( (3) )
  return mid;
  else if( (4) )
  low=mid+l;
  else
  (5) ;
  }
  return-1;
  }
  void main()
  {
  char a[]="acegkmpwxz";
  Samples(a,1。);
  cout<<"元素序列:";s.disp();
  cout<<"元素′g′的下标:"<  }
  【答案】(1)A[j]=a[j](2)low<=high(3)A[mid]==c(4)A[mid]  【解析】在主函数中,首先由类模板实例化成Sample模板类。(1)空所在处为构造函数的声明,将参数中的值赋值到类的成员变量中,所以(1)空应填入"A[j]=a[j]"。
  成员函数seek()采用二分法查找元素下标,变量low和high分别表示查找区间的下标,如果查询到目标,则返回相应的下标,若没有查询到,则其结束的条件即(2)空的内容为"low<=high"。根据二分法的原理,当中间的元素恰好等于目标元素时,则返回其下标,所以(3)空应填入"A[mid]==c";若中间的元素小于目标元素时,则mid+1作为新的查找区间的起始下标,所以(4)空应填入"A[mid]
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved