首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组s仃中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回一1。
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组s仃中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回一1。
admin
2020-05-14
82
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*str,char ch),本函数采用二分法,在已按字母次序从小到大排序的字符数组s仃中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回一1。 ;
二分法查找的思想是:初始查找区间的下界为0,上界为1en-1,查找区间的中后,k=(下界+上界)/2;若list[k1等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<10Stream.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<<“请输入一个字符:”<
cin>>ch,
cout<<“输入数字的位置是:”<
return;
}
选项
答案
int low=0, //初始查找区间的下界 int high; int k ; for(high=0;str[high]!=0 ; high++) //求字符串长度 while(10w
ch) high=k一1 ; else low=k+1 ; } if(str[low]==ch) return low; 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://www.kaotiyun.com/show/Vv8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
支持子程序调用的数据结构是
下列程序的输出结果是【】。#include<iostream.h> #include<string.h>voidmain(){charb[30];strcpy(&b[0],"XY")
通过关键字来指定函数模板的类型参数,有几个类型参数就有几个关键字,它实际表示任何内部类型或用户自定义类型。用来指定函数模板的类型参数的关键字是【】。
下列程序的执行结果为#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<
在C++中,动态创建对象可以使用【 】操作符来完成。
设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树牛总的结点数为【】。
以下叙述中不正确的是
一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数
下列关于队列的叙述中正确的是
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
随机试题
Theyusuallyhavelessmoneyattheendofthemonththan______atthebeginning.
两人搬运患者的正确方法是()。
可作为确诊白血病及其类型的重要依据的检查是
金某是个吸毒人员,晚上经常和几个被害人一起打麻将,每次打到半夜三更的时候,金某就说毒品能提神解乏,极力鼓励被害人一起吸食毒品,最后导致金某的众多牌友都染上了毒瘾。对金某的行为定性,下列选项错误的是:()
证券管理机关对证券市场实行监管采取的主要手段是()。
下列情形不能引发债务人之间的违约相关性的是()。
在运动过程中,由于损伤导致前臂出血时,应及时指压()。
如右图,一个正方体的表面上分别写着连续的6个整数,且每两个相对面上的两个数的和都相等,则这6个整数的和为()
Formostofhumanhistoryrichpeoplehadthemostleisure.Ontheotherhand,thepoorhavetypicallyworkedpersistently.Hans
Accordingtothepassage,whendidHerakleionandEasternCanopusdisappear?Accordingtotheauthor,thefortunesofHerakleio
最新回复
(
0
)