首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str,char ch)的定义,本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回1。
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str,char ch)的定义,本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回1。
admin
2020-06-29
36
问题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str,char ch)的定义,本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回1。
二分法查找的思想是初始查找区间的下界为0,上界为len-1,查找区间的中部后,k=(下界+上界)/2;若list[k]等于
ch,查找成功;若1ist[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填人所编写的若干语句。
试题程序:
#include
int fun(char*str,char ch)
{
}
void main()
{
char str[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’};
char ch;
cout<<"请输入一个字符:"<
cin>>ch:
cout<<"输入字符的位置是:"<
return;
}
选项
答案
int low=0; //初始查找区间的下界 int high; int k; for(high=0;str[high]!=0.high++) //求字符串长度 while(low(high) //循环判断字符位置 { k=(low+high)/2: if(str[k]==ch) return k; else if(str[k]>ch) high=k-1; else low=k+1: } if(str[low]==ch) return tow; return -1;
解析
本题首先初始查找区间的下界为0,然后求得字符串长度len,上界为len-1,查找区间的中部后,k=(下界+上界)/2;若tist[k]等于ch,查找成功。若list[k])ch,则新的查找区间的下界变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。
转载请注明原文地址:https://kaotiyun.com/show/mbyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:(1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释∥********1********后添
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序的执行结果为:1234543211234321123
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:Maxis7提示:max()函数实现找出两个数中的最大值,并作为函数值返回。注意:错误的语句在∥********e
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数:intfactorial(intn):求出n的阶乘,必须使用递归调用。如果n小于1则返回0。注意:不能修改函数的其他部分。#include#in
使用VC6打开源程序文件modi3.cpp。其中类TestClass用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将int.txt文件中的内容输出到屏幕,并且将文件按照以上方
有如下头文件:intf1();staticintf2();classMA{public:intf3();staticintf4();};在所描述的函数中,具有隐含的this指针的是()。
字面常量42、4.2、42L的数据类型分别是()。
设c1和c2是类MyClass的对象,若将前缀运算符"--"和运算符"/"作为类MyClass的友元函数重载,则表达式--c1/c2等价于
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )
下面不属于软件测试实施步骤的是
随机试题
基坑(槽)应采取支护措施的情形有()。
A.食道切开术B.肋骨切开术C.心包切开术D.气管切开术E.胃切开术牛,食欲急剧减退,肘外展,拱背站立,起卧谨慎,呼吸浅快,可视黏膜发绀,下颌间隙水肿,颈静脉怒张,心率120次/分,心脏区叩诊浊音区扩大,听诊有拍水音,该病应采取的最佳治疗方法是
A.冰硼散B.黄氏响声丸C.桂林西瓜霜D.锡类散E.栀子金花丸某男,30岁,近半年来工作压力较大,加之饮食不规律,常感咽喉肿痛,时有咽喉糜烂症状,证属心胃火盛,宜选用的成药是()。
产生法律责任的原因主要有()。
缺陷责任期的开始其算日期为()。
进行大气污染监测点布设时,对于面源或多个点源,在其分布较均匀的情况下,通常采用的监测点布设方法是()。
大庆这座城市的兴起,引起大量人口迁入,其影响因素主要是()。
关于我国的农民工现象,下列说法错误的是()。
世界上最早采用十进位制的国家是()。
下列软件中,不是操作系统的是______。A)LinuxB)UNIXC)MS-DOSD)MS-Office
最新回复
(
0
)