网站大量收购独家精品文档,联系QQ:2885784924

习题四和上机答案.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题四和上机答案

习题四 ⒋1简述下列每对术语的区别: 空串和空格串;串变量和串常量;主串和子串;串名和串值 答: 空格串:由一个或多个空格组成的串称为空格串0。 ⒋2对于字符串的每个基本运算,讨论是否可用其它基本运算构 4.3 设串s1=ABCDEFG,s2=PQRST,函数con(x,y)返回x和y串的连接串,subs(s,I,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2)))的结果串是什么 ? 答:BCDEFEF 4.4 设s=I AM A STUDENT, t=GOOD, q=WORKER。 Len(s),Len(t),SubStr(s,8,7),SubStr(t,2,1),Index(s,A),Index(s,t)Replace(s,STUDENT,q)和Concat(substr(s,6,2),Concat(t,substr(s,7,8)))。 :len(s)=14;len(t)=4;substr(s,8,7)=‘STUDENT’; Substr(t,2,1)=‘o’;index(s,’A’)=3; index(s,t)=-1; Replace(s,STUDENT,q)=‘I AM A WORKER’; Concat(substr(s,6,2),Concat(t,substr(s,7,8)))= ‘A GOOD STUDENT’ 4.5试问执行以下过程会产生怎样的输出结果? Demonstrate() { Assign(s,THIS IS A BOOK); Replace(s,SubStr(s,3,7),ESE ARE); Assign(t,Concat(s,S)); Assign(u,XYXYXYXYXYXY); Assign(v,SubStr(u,6,3)); Assign(w,W); printf(t=%s v=%s u=%s %s,t,v,u,replace(u,v,w)); }/*demonstrate*/ t=?THESE ARE A BOOKS?HV=?YXY?XU=?XYXYXYXYXYXY? XWXWXW 4.6已知:s=(XYZ)+*,t=(X+Z)*Y。试利用联接、求子串和置换等运算,将s转化为t。 4.7设T[0..n-1]=adaabaabcaabaa,P[0..m-1]=aab.当用模式串匹配目标串T时,请给出所有的有效位移。 ?4.8写一算法void StrReplace(char *T, char *P, char *S),将T中首次出现的子串P替换为串S。注意:S和P的长度不一定相等。可以使用已有的串操作。 suan(slstrtype *x,slstrtype *y) { char *p,*q; char m; p=x; q=y; while(p!=NULL) { m=p-ch; while(q!=NULL) { if(m!=q-ch) return m; q=q-next; } p=p-next; } return -1; /*S中的字符在Y中都有*/ } ⒋9在串的顺序存储结构上实现串的比较运算StrCmp(S,T)。 t*/ else return(1); /*st*/ } 4.10_若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符 char findfirst(x,y) linkstring *x,*y; { linkstring *p; char c; p=x; if (x==NULL) printf(x 为空\n); else { while (found(p-info,y)) p=p-link; c=p-info; } return(c); } /*函数 found()的功能是:若 head 的链表中包含有 data 域为 x 的*/ /*结点则返回 1;否则返回 0*/ int found(d,head) linkstring *head; char d; { while (head!=NULL head-info!=d)

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档