首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
2016-10-28
69
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。
请完成函数fun(char*str,char ch),本函数采用二分法,在己按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回-1。
二分法查找的思想是:初始查找区间的下界为0,上界为len-1,查找区间的中后,k=(下界+上界)/2;若list[k]等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<iostream.h>
int fun(char*str,char ch)
{
}
void main()
{
char str[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,0};
char ch;
cout<<"请输入一个字符:"<<endl;
cin>>ch;
cout<<"输入数字的位置是:"<<fun(str,ch)<<endl;
return;
}
选项
答案
int low=0;//初始查找区间的下界 int high; int k; for(high=0;str[high]!=0;high++)//求字符串长度 while(low<high)//循环判断字符位置 { k=(low+hlgh)/2; if(str[k]==ch) return k; else if(str[k]>ch) high=k-1; else low=k+1; } if(str[low]==ch) return low; return -1;
解析
(1)首先,初始查找区间的下界为0。
(2)然后,求得字符串长度len,上界为len-1,查找区间的中后,k=(下界+上界)/2;若list[k]等于ch,查找成功。
(3)若list[k]>ch,则新的查找区间的下界不变,上界改为k-1:否则新的查找区间的下界改为k+1,上界不变。
转载请注明原文地址:https://kaotiyun.com/show/yONp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若运行时给变量x输入12,则以下程序的运行结果是#include<iostream.h>voidmain(){intx,y;cin>>x;y=x>12?x+10:x-12;
若有以下变量和函数说明:#include<iostream.h>charCh=’*’;voidsub(intx,inty,charch,double*Z){switch(ch){
下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include<iostream.h>#include<string.h>voidmain(){c
若调用一个函数,且此函数中没有return语句,则正确的说法是该函数
下列关于函数模板实参不能省略的情况说明不正确的是
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
算法分析的目的是
在双链表中,每个节点有两个指针域,一个指向前驱节点,另一个指向【】。
下列运算符中,在C++语言中不能重载的是
随机试题
多义词的多个意义中,最常用最主要的意义叫做()
根据“人与天地相应”的观点,下列选项对人体产生影响的是
男,40岁。有乙型肝炎病毒感染史。近2个月来感肝区疼痛,食欲减退,昨晚出现低血糖症状,今来院就诊,查体发现肝大。关于栓塞后综合征的错误说法是
陕西省的人口首次突破1000万的时间在()。
电子邮件营销最大的特点是()。
非正式的学生群体是()
Weoncehadapostercompetitioninourfifthgradeartclass."Youcouldwinprizes,"ourteachertoldusasshewrotethe
下列度量单位中,用来度量计算机网络数据传输速度(比特率)的是______。
在考生文件夹下LUKY文件夹中建立一个名为GUANG的文件夹。
Inthisfactory,suggestionsoftenhavetowaitformonthsbeforetheyarefully______.
最新回复
(
0
)