首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
admin
2013-06-12
31
问题
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://www.kaotiyun.com/show/erJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库系统中实现各种数据管理功能的核心软件称为______。
以下程序的输出结果是______。 main() { int i, x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2)printf("%d",p[i]); }
若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是______。
给定程序MODI1.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,n=10,则输出16.479905。/************found************/fun(intn)
fread(buf,32,2,fp)的功能是______。
单链表要求内存中可用存储单元的地址______。
数据的______包括集合、线性结构、树型结构和图状结构四种基本类型。
以下程序中,fun()函数的功能是求3行4列二维数组每行元素中的最大值,请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33
以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其他依次类推。用#号结束输入,请填空。#include<stdio.h>#include<ctype.h>mai
随机试题
《反不正当竞争法》规定,当事人对监督检查部门作出的处罚决定不服的,可以自收到处罚决定之日起15日内向上一级主管机关申请复议;对复议决定不服的,可以自收到复议决定书之日起15日内向法院提起诉讼;也可以直接向法院提起诉讼。某县工商局认定某企业利用广告对商品作引
对人体危害最大的是()Hz频率的交流电。
大肠埃希菌DNA聚合酶
下列关于维生素C的叙述哪项是错误的
下列关于支原体的特性,叙述错误的是
领导技能发展的主要途径是( )。
国家重点保护野生动物名录,南国务院野生动物保护主管部门组织科学评估后制定,并每()根据评估情况确定对名录进行调整,后报国务院批准公布。
下图显示1751一1851年英国城市人口占总人口比例不断增加。导致这种变化的相关因素是()。①工业革命为城市人口增加提供了物质基础②农村自然灾害频发迫使大量农民涌入城市③工业发展促进了城市数量增加和规模扩大④圈地运动使部分农民流入城市成
农村养老作为我国养老服务体系中的“最短板”,迫切需要创新农村养老服务方式,让农民老有所养。下列属于农村养老方式创新的是
有50件产品,编号为00,01,02,03……49。现从中抽取5件进行检验,用系统抽样方法所抽取样本的编号可以是()
最新回复
(
0
)