首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将解答填入答题纸的对应栏内。 【说明】 函数del_substr(S,T)的功能是从头至尾扫描字符串S,删除其中与字符串T相同的所有子串,其处理过程为:首先从串S的第一个字符开始查找子串T,若找到,则将后面的字符向前移动将子串T覆盖掉
阅读以下说明和C函数,将解答填入答题纸的对应栏内。 【说明】 函数del_substr(S,T)的功能是从头至尾扫描字符串S,删除其中与字符串T相同的所有子串,其处理过程为:首先从串S的第一个字符开始查找子串T,若找到,则将后面的字符向前移动将子串T覆盖掉
admin
2010-04-12
67
问题
阅读以下说明和C函数,将解答填入答题纸的对应栏内。
【说明】
函数del_substr(S,T)的功能是从头至尾扫描字符串S,删除其中与字符串T相同的所有子串,其处理过程为:首先从串S的第一个字符开始查找子串T,若找到,则将后面的字符向前移动将子串T覆盖掉,然后继续查找子串T,否则从串S的第二个字符开始查找,依此类推,重复该过程,直到串S的结尾为止。该函数中字符串的存储类型SString定义如下:
typedef struct{
char*ch; /*串空间的首地址*/
int length; /*串长*/
}SString;
【c函数】
void del_substr(SString*S,SString T)(
int i,j ;
if(S->length<1 II T.1ength<1 II S->length(T.length)
return;
i=0: /*i为串S中字符的下标*/
for(;;) {
J=0 ; /*j为串T中字符的下标*/
while(i
length&&j
if(s>ch
==T.ch[j]) {
i++;J++;
)
else{
i= (1) ;j=0; /*i值回退,为继续查找T做准备*/
)
)
if( (2) )( /*在S中找到与T相同的子串*/
i= (3 ) ; /*计算S中子串T的起始下标*/
for(k=i+T.1ength;k
length;k++)/*通过覆盖子串T进行删除*/
S->ch[ (4) ]=S->ch[k];
S-)length= (5;) ; /*更新S的长度*/
)
else break; /*串S中不存在子串T*/
)
)
选项
答案
(1)i-j+l (2)j==T.length (3)i-T.1ength (4)i++(5)S->length-T.length
解析
空(1)处主要实现的功能是当串s和串T中有字母不相同时,串s下标需要返回至上一次串s和串T字符不同的位置,为继续查找串T做准备,串s的下标i返回的位置是串T的下标走过的长度,所以空(1)处应填“i-j+1”。因为j表示串s与串T比较中串T的下标,如果j的值等于串T的长度,则表示串s中有与串T相同的子串,所以空(2)处应该填写j==T.length。因为串S和串T在比较时,若字符一样,i和j同时加1,所以,串S在子串T的起始下标,应该为s的当前下标i减去串T的长度,即i-T.length,所以空(3)处应填“i-T.length”。删除与串T相同的子串的方法是将后面的元素向前移动进行覆盖,应该从串s在子串T的起始下标i开始,将后面的元素依次向前移动,最终覆盖子串,所以空(4)处填i++。每当删除一个与串T相同的子串,串s的长度就减少 T.length,所以空(5)处填S->length-T.length。
转载请注明原文地址:https://kaotiyun.com/show/5BjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
目前最常见的用户界面是________________。
某地区去年粮食产量资料如下表:根据该表可以推算出,该地区去年薯类的产量为()万吨。
为向相关人员以可视化方式展示数据分析结果,首先需要明确目标受众(即需要给哪些人看),并了解他们考虑的一些问题。这些问题一般不包括(69)________________。
在Windows7中,磁盘文件类型可以根据______来识别。
在Excel2003中,A1到E6单元格的值如下图所示,若在A7单元格中输入计算众数的函数“=MODE(A1:E6)”,按回车键后,则.A7单元格显示的值为(47)。
在Microsoft Word中点击“文件”→“另存为”,在保存类型下拉框中不能选择的有(45)。
在Excel中,设单元格A1中的值为100,B1中的值为200,A2中的值为300,B2中的值为400,若在A3单元格中输入函数“=SUM(A1:B2)”,按回车键后,A3单元格中的值为()。
关于ADSL接入技术,下面的论述正确的是(15)。
小张刚接到领导分配的数据分析任务,他第一步应当首先________。
随机试题
不符合室间隔缺损患者临床表现的检查结果是
老年人易发生便秘的主要原因是
肺通气的弹性阻力的主要成分是指
口腔疾病的分布与地区、城乡、年龄等有关,下列说法错误的是
明清时期,外科统称为
铁路隧道工程施工中,水量大、水压大地段以堵为主,限量排放,以下关于断层破碎带止水及堵水措施正确的有()。
在商业银行的经营过程中,()决定其风险承受能力。
采取扩张性财政政策通常是在()。
•Lookatthenotesbelow.•Someinformationismissing.•Youwillhearamancontactinganemploymentagencyabouttherecruitme
A、MississippiRiveris6,040kilometers.B、YukonRiveris3,186kilometers.C、AlaskaRiveris3,168kilometers.D、ColoradoRiver
最新回复
(
0
)