首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
admin
2013-06-12
30
问题
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全国计算机二级
相关试题推荐
数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。
设有以下定义和语句 int a[3][2]={1,2,3,4,5),*p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是______。
有以下程序 main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0; j<=i;j++) printf(
有以下程序 #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
给定程序MODI1.C中函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据赋0~m-1的值。#include<Stdio.h>#include<conio.h>#include<stdlib.h>typed
下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }
单链表要求内存中可用存储单元的地址______。
数据的______包括集合、线性结构、树型结构和图状结构四种基本类型。
若有以下定义:inta[8];则a数组元素的下标上限为______,下限为______。
以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其他依次类推。用#号结束输入,请填空。#include<stdio.h>#include<ctype.h>mai
随机试题
《战国策》作为重要文献可以很好地研究()
电路由两个并联电池A与B,再与电池C串联而成,设电池A、B、C损坏的概率分别是0.2,0.2,0.3,A、B、C是否损坏相互独立,求电路发生间断的概率.
寻找根管口时,下列注意事项中不正确的是
A.1年B.3年C.5年D.7年E.10年从事生产、销售假药及劣药情节严重的企业或者其他单位,其直接负责的主管人员和其他直接责任人员不得从事药品生产、经营活动的期限是
以下哪一项不是成功的预算流程的特征?
下列关于债券组合管理免疫策略的表述,正确的是()。
D注册会计师负责对丙公司2008年度财务报表进行审计,在各业务循环的测试过程中,B注册会计师需要对以下内部控制关键点进行判断。D注册会计师为了证实丙公司2008年财务报表中所列的固定资产是否存在并了解其目前的使用状况,应当实施的最有效的程序是(
假设甲将“小姐”乙从歌厅诱出后,劫持并逼迫乙带领甲到乙居住处,洗劫财物。另将乙扣押至第二日银行开门营业时,挟持乙到银行取出存款方才罢休。则甲的行为应当如何定罪处罚?()
主张“意识第一性,物质第二性”的观点是()。
Amonkeyissittingexpectantlyinalaboratory,wearingearphonesthatkeepitsheadinanuprightfixedposition.Itshandres
最新回复
(
0
)