软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2017年下半年程序员考试下午真题试题(案例分析)
考试中心《2017年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2017年下半年
试题题型【分析简答题】
试题内容

阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。
【说明】
当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(intr[],intlow,inthigh,intkey)用非递归方式在数组r中进行二分查找,函数biSearch_rec(intr[],intlow,inthigh,intkey)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。
【C函数1】
intbiSearch(intr[],intlow,inthigh,intkey)
//r[low..high]中的元素按非递减顺序排列
//用二分查找法在数组r中查找与key相同的元素
//若找到则返回该元素在数组r的下标,否则返回-1
{
intmid;
while((1)){
mid=(low+high)/2;
if(key==r[mid])
returnmid;
elseif(key<r[mid])
(2);
else
(3);
}/*while*/
return-1;
}/*biSearch*/
【C函数2】
intbiSearch_rec(intr[],intlow,inthigh,intkey)
//r[low..high]中的元素按非递减顺序排列
//用二分查找法在数组r中查找与key相同的元素
//若找到则返回该元素在数组r的下标,否则返回-1
{
intmid;
if((4)){
mid=(low+high)/2;
if(key==r[mid])
returnmid;
elseif(key<r[mid])
returnbiSearch_rec((5),key);
else
returnbiSearch_rec((6),key);
}/*if*/
return-1;
}/*biSearch_rec*/
问题:4.1(12分)
请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。
问题:4.2(3分)
若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与()个数组元素进行比较,即可确定查找结果。
(7)备选答案:
A.[log2(n+1)]B.[n/2]C.n-1D.n


相关试题

推荐文章
合作网站内容