当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
2015年计算机软件水平程序员笔试考前练习精选(12)
发布时间:2012/11/4 15:17:08 来源:城市网学院 编辑: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