首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high
admin
2013-06-12
20
问题
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全国计算机二级
相关试题推荐
数据库系统中实现各种数据管理功能的核心软件称为______。
软件工程研究的内容主要包括:______技术和软件工程管理。
若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。
给定程序MODI1.C中函数fun的功能是:读入整数k(2≤k≤10000),打印它的所有质因子(即所有素数的因子),例如,若输入整数2310,则应输出:2,3,5,7,11。#include"conio.h"#include”stdio.
给定程序MODI1.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,n=10,则输出16.479905。/************found************/fun(intn)
设有以下程序#include<stdio.h>main(){intn1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10
执行以下程序后,输出’*’号的个数是______。#include<stdio.h>main(){inti,j;for(i=1;i<6;i++)for(j=2;j<=i;j++)putch
如下程序的运行结果是______。 #include<stdio.h> main() { int x=y=3,z=1; printf ("%d%d\n",(++x,y++),z+2); }
给定的程序中,fun函数的功能是:将s所指字符串中除了下标为偶数,同时ASCH值为偶数的字符除外,其余的全部删除;串中剩余字符所形成的一个新串放在t所指的数组中。如:若s所指字符串中的内容为:”desktop12345",t所指字符串中的内容为:"dtp2
下列程序把数组元素中的最大值放入a[0]中。则在if语句中的条件表达式应该是______。main(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i,bfor(i=0:i<10:i++,p+
随机试题
抢救枕骨大孔疝(脑室系统扩大者)最有效的急救措施首选
对铜绿假单胞菌感染的病人用过的剪刀,其消毒灭菌的步骤是
血清淀粉酶(AMY)活性增高最常见于
Thetermsagreed__Mr.GoodmanattheGuangzhouFairembodiedmuchconcessiononourpart.
商业银行的资产业务主要包括( )。
下列指标中不应低于25%的是()
为维护银行业的稳健运行,人民银行对商业银行向关系人发放贷款做出了明确的限制。下列论述中错误的是()。
一般资料:求助者,男性,16岁,初中二年级学生。案例介绍:求助者小学三年级时,父母离异,他和爷爷奶奶住在一起。其父后来再婚后又有了一个妹妹,他不喜欢继母和妹妹,恨自己的爸爸,也很少和母亲联系。父亲每周看他一两次,对他管教很严,只知逼他学习,却很少
A.主要功能为切断食物B.主要功能为穿刺和撕裂食物C.主要功能为协助捣碎和撕裂食物D.主要功能为捣碎和磨细食物E.无功能牙前磨牙()。
Notonlydothesesmallbusinessesprovidethesuccessstoriesofthefuture,buttheyalsomeettheneedsofthelocalpeople.
最新回复
(
0
)