首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
admin
2013-06-12
41
问题
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#define N 10
/*************found*********************/
void fun(int a[],int m)
{ int low--0,high=N-l,mid;
while (low<=high)
{ mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/*************found*********************/
else if(m>=a [mid])
low=mid+1;
else return(mid);
}
return(-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)错误:void fun(int a[],int m) 正确:int fun(int a[],int m) (2)错误:else if(m>=a[mid]) 正确:else if(m>a[mid])
解析
fun (int a[],int m)函数的返回值为int类型,所以定义函数时,函数的返回类型不能是void,而是int类型。
else if(m>=a[mid]中的m>a[mid]与m=a[mid]两个条件段的结果不一样,所以要分开考虑。
转载请注明原文地址:https://kaotiyun.com/show/erJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库系统中实现各种数据管理功能的核心软件称为______。
有以下程序 main() { int a[3][3],*p,i; p=&a[0][0]; for(i=O;i<9;i++)p[i]=i; for(i=O;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是______。
以下正确的数组定义语句是______。
若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是______。
有以下程序 main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for (i=o; i<3; i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){k=x[j]; x[j]=x(j+1); x[j+1
有以下程序 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,1
语句printf("a\bhow\’s\\\bhe\n");的输出结果是______。(说明:’b’是退格符)
数据的存储结构包括顺序、______、索引和散列四种基本类型。
在待排序的元素序列基本有序的前提下,效率最高的排序方法是______。
当用户要求输入的字符串中含有空格时,应使用的输入函数是
随机试题
Herearetwolettersfromourreadersexpressingtheirconcernaboutschoolassessment(评价):Studentsshouldbeallowedtos
张、李二人共同完成了一幅美术作品。张某听闻本地将举行大型画展,便与李某商量将该作品送去参展,但李某认为该作品并不代表自己的最高绘画水平,不同意送展。张某遂独自将该作品送展,并在画展上将其以2万元的价格卖给王某。根据我国法律,下面关于该美术作品著作权的判断,
下列哪些行为属于侵犯商业秘密的不正当竞争行为?
某实验室的主任认为,职业道德只是每个人的自觉行为,单位集体发挥不了什么作用。计量技术人员只要遵守法律法规,完成好计量检定和校准工作,就可以保证实验室的良好运行。
根据《标准施工合同》,施工准备阶段设计交底应由()组织。
某普通合伙企业的一名合伙人拟将其合伙财产份额转让给合伙企业以外的人,但合伙协议对该事项的决定规则未作约定。根据合伙企业法律制度的规定,下列关于该事项决定规则的表述中,正确的是()。
在公共航空运输中,旅客随身携带的物品或者托运行李的毁灭、遗失或者损坏完全是由于行李本身的()造成的,航空承运人不承担责任。
幼儿教育的中心任务是()。
破窗原理:一个房子如果窗户破了,没有人去修补,隔不久,其他的窗户也会莫名其妙地被人打破;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人们就会毫不犹豫地丢垃圾,丝毫不觉羞愧。对此,你怎么看?
A、theDoharoundcan’tbefinishedby2006B、strongpoliticalwillisnecessaryC、nationscancontinuethenegotiationevenif
最新回复
(
0
)