首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
admin
2013-06-12
34
问题
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个部分,即数据项、数据结构、数据流、______和处理过程。
关系数据库管理系统能实现的专门关系运算包括选择、联接和______。
有以下程序 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]); } 程序运行后的输出结果是______。
有以下程序 void fun(int *a,int i,int j) { int t; if (i<j) { t=a[j]; a[i]=a[j]; a[j]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,
执行以下程序后,输出’*’号的个数是______。#include<stdio.h>main(){inti,j;for(i=1;i<6;i++)for(j=2;j<=i;j++)putch
以下程序的输出结果是______。 #include<stdio.h> main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); }
语句printf("a\bhow\’s\\\bhe\n");的输出结果是______。(说明:’b’是退格符)
对长度为4的顺序表进行查找,若第一个元素的概率为1/8,第二个元素的概率为1/4,第三个元素的概率3/8,第四个元素的概率为1/4,则查找任一元素的平均查找长度为______。
一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用______。
当用户要求输入的字符串中含有空格时,应使用的输入函数是
随机试题
女性患者,34岁。3年前曾出现双眼复视、共济失调及步态不稳,住院治疗2个月后症状消失。2周前出现双眼视力减退,截瘫,伴大、小便潴留。多发性硬化在MRI上多表现为
依据民事诉讼法的规定,下列有关送达的表述中不正确的有哪些?()
国外项目监理机构在建设工程投资控制的主要任务中,工料测量师在立约后阶段对投资控制的工作任务包括()。
我某外贸公司向某中东商人B出口盘钢一批,支付方式为L/CSightIrrevoeable,货物按时出运后,我公司向银行按时交单,后接议付行通知,单据遭开证行拒付。开证行拒付的理由是:①B/L正本仅提供了一份,不够“全套”。②提单上商品名称与L/C不
古代对死去的帝王、大臣、贵族,按照其生平事迹进行评定后,给予或褒或贬或同情的称号,称为()。
以爱国主义为核心的民族精神是()。
(2004年试题,一)欧拉方程的通解为______________.
ThelivesoftheAncientGreeksrevolvedarounderis,aconceptbywhichtheydefinedtheuniverse.Theybelievedthattheworld
ReadtheinformationaboutThomasEdison.Choosethecorrectwordtofilleachgap,fromA,BorC.Foreachquestion29-40,mark
Disappointment,asuncomfortableandevenpainfulasitcanbeforus,isessentialandimportantonourjourneyofgrowth.Maki
最新回复
(
0
)