问题

试题四(共 15分)

阅读以下说明和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 || T.length < 1 || S->length < T.length )

return;

i = 0; /* i为串S中字符的下标 */

for ( ; ; ) {

j = 0; /* j为串T中字符的下标 */

while ( i < S->length && j < T.length ) { /* 在串S中查找与T相同的子串 */

if ( S->ch[i]==T.ch[j] ) {

i++; j++;

}

else {

i = (1) ; j = 0; /* i值回退,为继续查找T做准备 */

}

}

if ( (2) ) { /* 在S中找到与T相同的子串 */

i = (3) ; /* 计算S中子串T的起始下标 */

for(k = i+T.length; k<S->length; k++) /* 通过覆盖子串T进行删除 */

S->ch[ (4) ] = S->ch[k];

S->length = (5) ; /* 更新S的长度 */

}

else break; /* 串S中不存在子串T*/

}

}

参考答案
您可能感兴趣的试题
  • 试题五(共 15分)阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastEl
  • 试题六(共 15分)阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastE
  • 【问题1】(8分)请填写host1的Internet协议属性参数。IP地址: (1) ;子网掩码: (2) ;默认网关: (3) ;其中,host1 默认网关为图中接口 (4) 处的 IP地址。
  • 【问题2】(3分)若host1要访问Internet,根据默认路由,数据报文经IP地址为 (5) 的接口发送到IP地址为 (6) 的网关。
  • 【问题3】(2分)与命令route print作用等价的命令为 (7) 。(7)备选答案:A. netstat -r B. ping C. tracert D. arp –a
  • 【问题4】(2分)接口3的IP地址为 (8) 。
相关内容