首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
由N个有序整数组成的数列已放在一维数组中,给定程序MODIl.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(10w
由N个有序整数组成的数列已放在一维数组中,给定程序MODIl.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(10w
admin
2020-10-26
81
问题
由N个有序整数组成的数列已放在一维数组中,给定程序MODIl.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(10w
high,查找结束。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
{}define N 10
/************found************/
void fun(int a[], int m)
{ int low=0,high=N一1,mid;
while(low<=high)
{ mid=(low+high)/2;
if(m
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,45,67,
89,100,180},k,m;
printf("a数组中的数据如F:");
for(i=0 ; i
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)int fun(int a[],int m) (2)else if(m>a[mid])
解析
(1)根据主函数中“k=fun(a,m);”,知道函数fun应该是返回int型的函数,所以第一个标识下面定义的“void fun(int a[],int m)”应该改为“int fun(int a[],int m)”。
(2)第二个标识下的“else If(m>a[mid])”是判断m是否比a[mid]大,在while循环中采用的是if-else if-else语句,显然“else lf”当中“If”应当小写,故第二标识下“else If(m>a[mid])”应改为“else if(m>a[mid])”。
转载请注明原文地址:https://kaotiyun.com/show/eJ3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若要定义一个具有5个元素的整型数组,以下错误的定义语句是
有以下程序voidfun(intn,int*s){intf;if(n==1)*s=n+1;else{fun(n-1,&f);*s=f;}}main(){intx=0;fun(4,&x);printf("%d\n,x);}程序运行后的
有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(
设有以下函数:voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均正确的是
下面选项中关于编译预处理的叙述正确的是
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是
若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是
库函数rand()的功能是产生一个在0—32767之间的随机数。若要用此函数随机产生一个0~99.99(2位小数)之间的数,以下能实现此要求的表达式是()。
有如下程序#include<stdio.h>intsum(intdata){staticintS=0;S=S+data;returnS;}main(){
在数据库中,数据模型包括数据结构、数据操作和()。
随机试题
CO2焊的焊丝伸出长度通常取决于()。
产品质量特性是指
关于老年人应用抗生素的说法哪些是正确的
下图中弯矩图正确的是( )。
某工程,建设单位与施工单位按照《建设工程施工合同(示范文本)》签订了施工合同,采用可调价施工合同形式。工期20个月,项目监理机构批准的施工总进度计划如下图所示,各项工作在其持续时间内均按匀速进展,每月计划完成投资见下表。施工过程中发生如下事
境内机构违反国家规定,擅自以外汇作质押的,属于套汇行为。()
如果操作技能发展较言语技能差,下列描述中最不可能出现的是()。
新中国成60年来,我国国内生产总值实际增长了近80倍,经济总量跃居世界第三;人民生活正稳步迈向全面小康,已从低收入国家迈入中等收入国家行列;财政收入增长约1000倍,外汇储备增长1万多倍,位居世界第一;进出口贸易总额位居世界第三,占世界贸易比重达7.9%。
关于合同诈骗罪,下列说法不正确的是()
近十年来,海达冰箱厂通过不断引进先进设备和技术,使得劳动生产率大为提高,即在单位时间里,较少的工人生产了较多的产品。以下哪项如果为真,一定能支持上述结论?Ⅰ.和1991年相比,2000年海达冰箱厂的年利润增加了一倍,工人增加了10%。Ⅱ.和1991年相
最新回复
(
0
)