数据结构ch4习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储
B.数据元素是一个字符
C.可以链接存储
D.数据元素可以是个字符
D
3.为查找某一特定单词在文本中出现的位置,可应用的串运算是( ) 。

A.插入
B.删除
C.串联接
D.子串定位 D
4.函数Sub(s,I,j)的功能是返回串s中从第I个字符起长度为j的子串,函数Scopy(s,t)的功能为复制串t到s。

若字符串S=″SCIENCESTUDY″,则调用函数Scopy(P,Sub(S,1,7))后得到( )。

A.P=″SCIENCE″
B.P=″STUDY″
C.S=″SCIENCE″
D.S=″STUDY″ A
5.如下陈述正确的是()。

A.串是一种特殊的线性表
B.串的长度必须大于0
C.串中元素只能是字母
D.空串就是空白串 A
利用C的库函数strlen,strcpy和strcat写一算法void StrInsert(char *S, char *T, int I),将串T插入到串S的第I个位置上。

若I大于S的长度,则插入不执行。

解:算法如下:
void StrInsert(char *S, char *T, int I)
{
//将串T插入到串S的第I个位置上
char *Temp;
Temp=(char *)malloc(sizeof(char[Maxsize]));// 设置一个临时串
if(I<=strlen(S))
{
strcpy(Temp,&S[I]);//将第I位起以后的字符拷贝到临时串中
strcpy(&S[I], T);//将串T拷贝到串S的第I个位置处,覆盖后面的字符
strcat(S,Temp);//把临时串中的字符联接到串S后面
free( Temp );
}
}
//以下提供验证程序
#include "string.h"
#include "stdio.h"
#include "malloc.h"
#define Maxsize 50 //假设静态顺序串的空间长度为100
void StrInsert(char *S, char *T, int I);
void main()
{
char A[Maxsize]="I am a boy.";
char B[Maxsize]="very cool ";
StrInsert( A,B,7);
printf("%s",A);
}
void StrInsert(char *S, char *T, int I)
{
//将串T插入到串S的第I个位置上
char *Temp;
Temp=(char *)malloc(sizeof(char[Maxsize]));// 设置一个临时串
if(I<=strlen(S))
{
strcpy(Temp,&S[I]);//将第I位起以后的字符拷贝到临时串中
strcpy(&S[I], T);//将串T拷贝到串S的第I个位置处,覆盖后面的字符strcat(S,Temp);//把临时串中的字符联接到串S后面
}
free( Temp );
}//程序结束。

相关文档
最新文档