ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:15.51KB ,
资源ID:29044818      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29044818.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第 04 章作业答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第 04 章作业答案.docx

1、第 04 章 作业答案习 题习 题 (p.119)1. 设s=I AM A STUDENT, t=GOOD, q=WORKER。给出下列操作的结果:StrLength(s); SubString(sub1, s, 0, 7); SubString(sub2, s, 6, 1);StrIndex(s, 4, A); StrReplace(s, STUDENT, q); StrCat(StrCat(sub1, t), StrCat(sub2, q)。9. 写一个函数将顺序串s1中的第i个字符到第j个字符之间的字符用s2串替换。提示: 包括第i个字符和第j个字符,第j个字符后面的所有字符可能需要左移

2、或右移。11. 写算法,实现顺序串的基本操作StrReplace(&s, t, v)。1. 设s=I AM A STUDENT, t=GOOD, q=WORKER。给出下列操作的结果:StrLength(s); SubString(sub1, s, 0, 7); SubString(sub2, s, 6, 1);StrIndex(s, 4, A); StrReplace(s, STUDENT, q); StrCat(StrCat(sub1, t), StrCat(sub2, q)。参考答案StrLength(s)=14; sub1= I AM A_; sub2= _; StrIndex(s,A

3、,4)=6; StrReplace(s,STUDENT,q)= I AM A WORKER; StrCat(StrCat(sub1,t), StrCat(sub2,q)= I AM A GOOD WORKER;9. 写一个函数将顺序串s1中的第i个字符到第j个字符之间的字符用s2串替换。提示: 包括第i个字符和第j个字符,第j个字符后面的所有字符可能需要左移或右移。Replace(s1, i, j, s2)len = j- i +1 ;/ 如果len s2.len,左移缩位if ( len s2.len ) d= len s2.len ; for ( k = j + 1; k len; k+

4、) s1-ch k d = s1-ch k ; / 如果len s2.len,右移扩位/ 暂不考虑截断else if ( len len 1; k = j + 1; k- ) s1-ch k + d = s1-ch k ; / 复制替换串for ( k = 0; k ch i + k = v.ch k ;s1-len = s1-len len + s2.len ;11. 写算法,实现顺序串的基本操作StrReplace(s, t, v)。提示: 算法思路:(1) 被替换子串定位(2) 被替换子串后面的字符左移或右移(为替换子串准备房间)(3) 替换子串入住(复制)(4) 重复上述,直到 实现策

5、略:可以先采用调用子函数的方法:(1) 利用StrIndex(s, pos, t)找到被替换串的位置pos,(2) 利用Replace(s, pos , len , v),实现一次替换(3) 在此基础上,消去子函数调用即可 采用调用子函数的方法如下:V1:仅完成一次代换StrReplace(s, t, v)k= StrIndex(s, 0, t);Replace(s, k , t.len , v);V2:完成多次代换(无条件)StrReplace(s, t, v) pos=0; 重复下面操作: k= StrIndex(s, pos, t);Replace(s, k , t.len , v);p

6、os = k + v.len ;V3:完成多次代换(循环条件1)StrReplace(s, t, v) pos=0; while( pos len ) k= StrIndex(s, pos, t);if(k=0) Replace(s, k , t.len , v);pos = k + v.len ; else break;V4:完成多次代换(循环条件2)StrReplace(s, t, v) pos=0; while( pos len t.len ) k= StrIndex(s, pos, t);if(k=0) Replace(s, k , t.len , v);pos = k + v.len

7、 ; else break;V5:返回完成情况状态码int StrReplace(s, t, v) int flag=0; pos=0; while( pos len t.len ) k= StrIndex(s, pos, t);if(k=0) Replace(s, k , t.len , v);pos = k + v.len ;flag=1; else break; return flag; 消去子函数调用的过程如下:V4:完成多次代换(循环条件2)StrReplace(s, t, v) pos=0; while( pos len t.len ) k= StrIndex(s, pos, t)

8、;if(k=0) Replace(s, k , t.len , v);pos = k + v.len ; else break;V4:完成多次代换(循环条件2)StrReplace(s, t, v)if (t.len=0) return(0); / 代换失败 start=0; while( start len t.len )/ k= StrIndex(s, start, t);i = start; j = 0;while (j ch i = t.ch j ) i+; j+; else if ( start = s-len t.len ) start = -1; break; + start;

9、i = start; j = 0; if ( start = 0 ) / Replace(s, start , t.len , v);/ 如果t.len v.len,左移缩位if ( t.len v.len ) d= t.len v.len ; for ( i = start + t.len; i len; i+ ) s-ch i d = s-ch i ; / 如果t.len v.len,右移扩位/ 暂不考虑截断else if ( t.len len 1; i = start + t.len; i- ) s-ch i + d = s-ch i ; / 复制替换串for ( i = 0; i ch start + i = v.ch i ;s-len = s-len t.len + v.len ;start = start + v.len ; else break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1