首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若,ch在数组中,函数返回字符ch在数组中的下标,否则返回-1。
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若,ch在数组中,函数返回字符ch在数组中的下标,否则返回-1。
admin
2018-10-23
51
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若,ch在数组中,函数返回字符ch在数组中的下标,否则返回-1。
二分法查找的思想是:初始查找区间的下界为0,上界为leI-1,查找区间的中后,k=(下界+上界)/2;若lrst[k]等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #include<iostream.h>
2 int fun(char*str,char ch)
3 {
4
5 }
6 void main()
7 {
8 char str[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,0};
9 char ch;
10 cout<<’’请输入一个字符:’’<<end1;
11 cin>>ch;
12 cout<<"输入数字的位置是:’’<<fun(str,ch)<<end1;
13 return;
14 }
选项
答案
1 int low=0; //初始查找区间的下界 2 int high; 3 int k; 4 for(high=0;str[high]!=0;high++)//求字符串长度 5 while(low<high)//循环判断字符位置 6 { 7 k=(low+high)/2; 8 if(str[k]==ch) 9 return k; 10 else if(str[k]>ch) 11 high=k-1; 12 else low=k+1; 13 } 14 if(str[low]==ch) 15 return low; 16 return-1;
解析
根据题干中给出的二分法查找思想,从已给部分源程序的main主函数开始入手,核心函数int fun(char*str,char ch)中的ch参数为输入的字符,其中返回值为ch所在的位置。
(1)首先,初始查找区间的下界为0。
(2)然后,求得字符串长度len,上界为len-1,查找区间的中后,k=(下界+上界)/2;若list[k]等于ch,查找成功。
(3)若list[k]>ch,则新的查找区间的下界不变,上界改为k-1:否则新的查找区间的下界改为k+1,上界不变。
转载请注明原文地址:https://kaotiyun.com/show/45Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
设有语句intn,m;chara[5],b;cin>>n>>a>>m>>b;为了分别将10和20分别赋给n和m,look赋给a,t赋给b,则正确的输入为
有以下程序main(){inti=1,j=1,k=2;if((j++||k++)&&i++)cout<<i<<","<<j<<","<<k<<endl;}执行后输出结
执行下面程序中的输出语句后,a的值是main(){inta;cout<<(a=3*5,a*4,a+5);}
面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为______的。
下列程序的执行结果是()。#inClude<iostream.h)#include(stdlib.h)classTestClass{public:intx,y;TestClass(){x=
下列程序输出的结果是()。#include<stdio.h>un1(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}
下列有关拷贝构造函数的描述中错误的是()。
关系模型允许定义3类数据约束,下列不属于数据约束的是()。
只能作为成员函数重载的是
随机试题
A、Findajob.B、Writeathesis.C、Readamagazine.D、Browsethejobadvertisement.D
A、肝细胞点灶状坏死B、肝细胞碎片状坏死C、肝细胞亚大片坏死D、肝细胞桥接坏死E、肝细胞大片坏死急性重型肝炎的病理特点是
企业现金管理的目标是(),以获取最大的长期利益。
某公司整理后的2017年及2016年管理用财务报表如表2-30-2所示,则该公司2017年实体现金流量为()。[2018年5月真题]
关于专利权的说法,正确的有()。
大多数典型行为测验是不受时间限制的,例如在()中,受测者的反应速度就不很重要。
两棵柳树相隔165米,中间原本没有任何树,现在这两棵树中间等距种植32棵桃树,第1棵桃树到第20棵桃树间的距离是()。
诱导需求,医生在涉及自身经济利益的服务中,医生既是顾问,又是卫生服务的提供者,因此可以创造额外需求,即供方创造需求。根据上述定义,下列说法不正确的是:
(A)条件(1)充分,但条件(2)不充分.(B)条件(2)充分,但条件(1)不充分.(C)条件(1)和条件(2)单独都不充分,但条件(1)和条件(2)联合起来充分.(D)条件(1)充分,条件(2)也充分.(E)条件(1)和条件(2)单独都不充分,条
已知有关系:学生(学号,姓名,性别,年龄),对该关系有如下查询操作:SELECT学号FROM学生WHERE性别=′男′AND年龄!=25ORDERBY姓名为了加快其查询速度,则应该()。
最新回复
(
0
)