首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
2020-06-29
81
问题
使用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的花括号中填入所编写的若干语句。
1 #include
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<<"请输入一个字符:"<
11 Cin>>ch;
i2 cout<<"输入数字的位置是:"<
13 return;
14 }
选项
答案
1 int low=0 ; //初始查找区间的下界 2 int high; 3 int k; 4 for(high=0;str[high]!=O ; high++) //求字符串长度 5 while(low
ch) 11 high=k一1; 12 else low=k+1; 13 } 14 if(str[10w]==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/O48p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
【】是一系列相关函数的模型或样板,这些函数的【】形式相同,只是所针对的【】不同。
一个C++语言程序的开发步骤通常包括编辑、【】、链接、运行和调试。
下列有关函数重载的叙述中,错误的是
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*strl,char*str2),此函数的功能是计算strl中出现str2的个数,当不出现时,则返回0。如strl为“asdfsfdfg”st
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序输出:Hellotest注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//*****
使用VC6打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。(1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//******
若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是()。
下列运算符中,不能被重载的是()。
下列选项中,不是重载函数调用时选择依据的是
下列选项中,正确的C++表达式是
随机试题
Howmenfirstlearnedtoinventwordsisunknown:inotherwords,theoriginoflanguageisamystery.Allwereallyknowistha
儿童维生素B2缺乏的临床表现有
A.脊柱结核B.膝关节结核C.髋关节结核D.腕关节结核最常见的关节结核是
用于监测低分子量肝素治疗的指标是
采集颗粒物前,玻璃纤维滤膜必须经高温炉灼烧,之后放于天平室的干燥器中平衡,灼烧的温度和平衡的时间为
在地震区,高层钢框架的支撑采用焊接H形组合截面时,其翼缘和腹板应采用下列哪一种焊缝连接?
安全生产监督检查人员的义务有( )。
存款货币银行吸收的存款不能完全用于放款或投资,必须将一定比例存入中央银行形成()。
社区工作者应具备哪些基本素质?
Forthispart,youareallowed30minutestowritearecommendationletter.Youshouldwriteatleast150wordsbutnomorethan
最新回复
(
0
)