首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定的下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be found!”。 折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:lo
N个有序整数数列已放在一维数组中,给定的下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be found!”。 折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:lo
admin
2012-06-08
86
问题
N个有序整数数列已放在一维数组中,给定的下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be found!”。
折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中,直到low>high,查找结束。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#include <stdio.h>
#define N 10
int fun(int a[],int m)
{
int low=0, high=N-1, mid;
while(low<=high)
{
mid= (1) ;
if(m<a[mid])
high= (2) ;
eise
if(m>a[mid])
low=mid+1;
else
return(mid);
}
(3) (-1);
}
main()
{
int i, a[N]=(-3, 4, 7, 9, 13, 24, 67, 89, 100, 180), k, m;
printf("a数组中的数据如下: ");
for(i=0; i<N; i++);
printf("%d", a
);
printf("Enter m: ");
scanf("%d", &m);
k=fun(a, m);
if(k>=0)
printf("m=%d, index=%d\n", m, k));
else
printf("Not be found\n");
}
选项
答案
[1] (low+high)/2 [2] mid-1 [3] return
解析
填空1:根据题目的意思,这里应该是确定折半查找的中间位置,所以很明显应该填(low+high)/2。注意,这个式子返回的是整型数据,即如果分子为7,则结果为3。
填空2:根据题目的意思,中间的元素值大时应该选择前半段进行下次查找,所以应该把mid前一位的下标赋值给high。
填空3:由算法可以看出,这里应该是所有转换完毕仍然没有找到满足条件的地方,即应该返回-1,所以使用关键字“remm”。
转载请注明原文地址:https://kaotiyun.com/show/EDID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
《关于改善农村人居环境的指导意见》指出,到2020年,全国农村居民住房、饮水和出行等基本生活条件明显改善,人居环境基本实现干净、整洁、便捷,建成一批()的美丽宜居村庄。
居住在某市A区的公民赵某对该市B区行政机关做出的行政处罚决定不服.要求复议。本案的复议机关是()。
行政行为作出后,非依法定程序不得随意变更或撤销,这是行政行为的()。
《公务员法》规定,对公务员考核的内容包括德、能、勤、绩、廉五个方面,重点考核()。
某书店出售一种挂历,每售出1本可得18元利润。售出一部分后每本减价10元出售,全部售完。已知减价出售这种挂历本数是原价出售挂历的三分之二。书店售完这种挂历共获得利润2870元,书店一共出售这种挂历多少本?
某密码由4位不同数字组成,已知各位密码之和为偶数,则密码有多少种?
根据国务院办公厅部分节假日安排的通知,某年8月份有22个工作日,那么当年的8月1日可能是:
有一个工厂共有大、小两个车间,每个车间各有三分之一的工人是熟练工,已知大、小两个车间人数原本相差90人。如果将两个车间里的熟练工对调,则大、小两个车间的人数比变为8:7。那么这个工厂一共有多少工人?
甲、乙两辆型号不同的挖掘机同时挖掘一个土堆,连续挖掘8小时即可将土堆挖平。现在先由甲单独挖,5小时后乙也加入挖掘队伍,又过了5小时土堆被挖平。已知甲每小时比乙能多挖35吨土,则如果土堆单独让乙挖,需要多少个小时?()
随着科学技术的进步,电脑的问世让人类制造这样的机器“耳朵”成为可能。20世纪60年代,科学家开始在实验室里研究声控技术的核心——语言识别技术。20世纪70年代末,微电脑的出现更是让声控技术实现了飞跃式发展——微电脑处理与存贮信息的神奇功能,以及它低廉的价格
随机试题
A.酸枣仁汤B.黄连阿胶汤C.琥珀多寐丸D.镇肝息风汤虚烦不寐,咽干口燥,舌红,脉弦细者,治疗宜首选
下列哪项不是左向右分流型先天性心脏病的共同特点
如再次使用同一批号青霉素治疗,免做过敏试验要求间断时间不超过
肺痈患者,咳吐大量脓血痰,气昧腥臭异常.舌红苔黄腻,脉滑数。其病期是()
支付结算应遵循的原则是()。
会计从业资格考试大纲由()统一制定并发布。
纳税人被列入非正常户超过6个月的,税务机关可以宣布其税务登记证件失效。
一个测验能够准确测出所需测量的事物的程度叫作信度。
Istestanxietydestructive?Canwemaketestanxietyworkforus?Theanswertobothofthesequestionsisyes.Testanxietyof
Whatisyourfavoritecolor?Doyoulikeyellow,orangeandred?Ifyoudo,youmustbeanoptimist(乐观主义者),aleader,anactive
最新回复
(
0
)