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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构习题精编串和数组.docx

1、数据结构习题精编串和数组数据结构习题精编:串和数组一、选择题1下面关于串的的叙述中,不正确的是 A串是字符的有限序列 B空串是由空格构成的串 C模式匹配是串的一种重要运算 D串既可以采用顺序存储,也可以采用链式存储2下面关于串的的叙述中,正确的是 A空串就是空白串 B串相等指的是串的长度相等 C串的长度必须大于零 D串是一种特殊的线性表3字符串是一种特殊的线性表,它与一般线性表的区别是 A字符串是一种线性结构 B字符串可以进行复制操作 C字符串可以顺序存储也可以链式存储 D字符串由字符构成并且通常作为整体参与操作4串s=Data Structure中长度为3的子串的数目是 A9 B11 C12

2、 D14 5若串S=software,则S的子串的数目是 A8 B35 C36 D37 6已知串S= string,T=this,执行运算StrLength(StrCopy(S,T)的结果是 A2 B4 C6 D107若串S=SCIENCESTUDY,则调用函数StrCopy(P,SubString(S,1,7)后得到 AP=STUDY BP=SCIENCE CS=STUDY DS=SCIENCE8若字符串采用链式存储,每个字符占用一个字节,每个指针在占用四个字节,则该字符串的存储密度为 A20% B25% C50% D75% 9为查找某一特定单词在文本中出现的位置,可应用的串运算是 A串联接

3、 B求子串 C串比较 D子串定位10当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最好情况下字符的比较次数 Am Bn Cn-m Dn+m11当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最坏情况下字符的比较次数 Am Bn C(n-m+1)*m Dn*m12已知串S=aaab,其Next数组的元素值依次为 A0、1、2、3 B1、1、2、3 C1、2、1、1 D1、2、3、113串 ababaaababaa 的next数组为 A011234223456 B012121111212 C0123012322345 D01234567899914字符串ababaabab 的

4、nextval 为 A(0,1,0,1,0,0,0,1,1) B(0,1,0,1,0,1,0,1,1) C(0,1,0,1,0,2,1,0,1) D(0,1,0,1,0,4,1,0,1) 15二维数组A1020采用按行为主序的存储方式,每个元素占4个存储单元,若A00的存储地址为300,则A810的地址为 A660 B732 C980 D1132 16二维数组A56采用按列为主序的存储方式,每个元素占3个存储单元,若A00的存储地址是100,则A43的存储地址是 A157 B166 C169 D18117二维数组A按行优先顺序存储,其中每个元素占1个存储单元。若A11的存储地址为420,A33

5、的存储地址为446,则A55的存储地址为 A470 B471 C472 D473 18假设以行优先顺序存储三维数组R696,其中元素R000的地址为2100,每个元素占4个存储单元,则存储地址为2836的元素是 AR333 BR334 CR434 DR435 19设二维数组A1. m1. n(即m行n列)按行存储在数组B1. m*n中,则二维数组元素Aij在一维数组B中的下标为 A(i-1)*n+j-1 B(i-1)*n+j Ci*(j-1) Dj*m+i-1 20设有二维数组A810,A00的存储地址为LOC,每个元素占2L个存储单元,在以行序为主序的存储方式下,某数据元素的地址为LOC+5

6、0L,则在以列序为主序的存储方式下,该元素的存储地址为 ALOC+26L BLOC+42L CLOC+50L DLOC+84L 21对矩阵压缩存储是为了 A方便运算 B方便存储 C提高运算速度 D减少存储空间22设有一个10阶的对称矩阵A,采用行优先压缩存储方式,a1,1为第一个元素,其存储地址为1,每个元素占一个字节空间,则a8,5的地址为 A13 B32 C33 D75 23设有一个对称矩阵ANN,A11为首元素,将其下三角(包括对角线)元素以行优先顺序存储到一维数组元素T1至TN(N+1)2中,则任一上三角元素Aij (ij)存于Tk中,下标k为 Ai(i-1)2+j Bi(i+1)2+

7、j Cj(j-1)2+i Dj(j+1)2+i24设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B1.n(n+1)/2中,对上述任一元素aij(1i,jn,且ij)在B中的位置为 Ai(i-l)/2+j-1 Bi(i-l)/2+j Cj(j-l)/2+i-1 D j(j-l)/2+i25设有一5阶上三角矩阵A55,现将其上三角中的元素按列优先顺序存放在一维数组B15中。已知A11存放在B1中,其地址为100,每个元素占用2个存储单元,则A34的地址为 A116 B118 C120 D122 26将一个三对角矩阵A100100,按行优先存入一维数组B298中,

8、A11存放在B1中。A中元素A6665,在B数组中的位置K为 A194 B195 C197 D198 27有一个100*90的稀疏矩阵,非0元素有10个(均为整数)。设每个整型数占2个字节,则用三元组表示该矩阵时,所需的字节数是 A20 B60 C66 D18000 28下面关于广义表的说法中,不正确的是 A广义表的表头总是一个广义表 B广义表的表尾总是一个广义表 C广义表难以用顺序结构存储 D广义表可以是一个多层次的结构29已知广义表的表头为a,表尾为(b,c),则此广义表为 A(a,b,c) B(a,(b,c) C(a),b,c) D(a,b,c) 30广义表(a,(b,c),d,e)的表

9、头为 Aa B(a) Ca,(b,c) D(a,(b,c) 31设广义表L=(a,b,c),则L的长度和深度分别为 A1和1 B1和2 C1和3 D2和3 32设广义表L=(a,(b,c),进行GetTail(L)操作后的结果为 Ac Bb,c C(b,c) D(b,c) 33对于广义表A,若GetHead(A)等于GetTail(A),则表A为 A( ) B( ) C( ),( ) D( ),( ),( ) 34对广义表L=(a,b),(c,d),(e,f)执行操作GetTail(GetTail(L)的结果是 A( ) B(f) C(e,f) D(e,f) 35对广义表L=(a,b),c,d

10、) 执行操作GetTail(GetHead(L)的结果是 Ab B(b) C(d) D(c,d)36已知广义表A=(a,b),B=(A,A),C=(a,(b,A),B),执行操作GetTail(GetHead(GetTail(C)后的结果为 Ab B(b) CA D(A) 37从广义表LS((p,q),r,s)中分解出原子q的运算是 AGetTail (GetHead (LS) BGetHead (GetTail (GetHead (LS) CGetHead (GetTail (LS) DGetTail (GetTail (GetHead (LS) 38已知广义表LS(a,b,c),(d,e,

11、f),从LS中分离出原子e的运算是 AGetHead(GetTail(LS) BGetTail(GetHead(LS) CGetHead(GetTail(GetHead(GetTail(LS) DGetHead(GetTail(GetTail(GetHead(LS) 二、填空题1空格串是指_,其长度等于_。2组成串的数据元素只能是_。3串是一种特殊的线性表,其特殊性表现在_;串的两种最基本的存储方式是_;两个串相等的充分必要条件是_。 4若串S1=ABCDEFG, S2=9876 ,S3=#,S4=012345,执行Concat(Replace(S1,SubString(S1,StrLengt

12、h(S2),StrLength(S3),S3),SubString(S4,Index(S2, 8),StrLength(S2)5设T和P是两个给定的串,在T中寻找等于P的子串的过程称为_,又称P为_。6Index(DATASTRUCTURE, STR)=_。7设正文串长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为_。8模式串P=abaabcac的next函数值序列为_。9字符串ababaaab的nextval函数值序列为_。 10已知串U=xyxyxyxxyxy,t= xxy;依次执行StrAssign(S,U);StrAssign(V,SubString(S,Index(S,t

13、),StrLength(t)+1);StrAssign(m,ww);Replace(S,V,m); 后,S= _,V=_。 11设串S=abcdefgh,T=xyzw。依次执行 SubString(X,S,3,StrLength(T); SubString(Y,S,StrLength(T),2); Concat(Z,X,Y);后,串Z的值为_。12实现字符串拷贝的函数 strcpy可写为: void strcpy(char *s ,char *t) / copy t to s while (_); 13有一个二维数组A85,每个数组元素用相邻的4个字节存储,存储器按字节编址,假设存储数组第1个

14、元素A00的第一个字节的地址是0,存储数组A的最后一个元素的第一个字节的地址是_。若按行序优先存储,则A34和A53的第一个字节的地址是_和_。若按列序优先存储,则A24和A71的第一个字节的地址是_和_。14一个10阶对称矩阵A,采用行优先顺序压缩存储上三角元素,设第1个元素a11的存储地址为0,每个元素占有1个字节的存储空间,则a45的地址为_。15设一个6阶的下三角矩阵B按行优先顺序压缩存储在一维数组A中,其中A0存储矩阵的第一个元素B11,则A14存储的元素是_。 若将B按列序优先顺序压缩存储在一维数组A中,则A14存储的元素是_。16稀疏矩阵一般有两种压缩存储方法,即_和_。17一个

15、广义表的长度是指_,而表的深度是指_。广义表G=(a,b,(c,d,(e,f),G)的长度为_。广义表L=(a,(b,( )的深度为_。18设广义表L=(),(),则GetHead(L)是_,GetTail(L)是_,L的长度是_;深度是_。广义表(a,b),c,d)的表头是_,表尾是_。19用广义表的取表头GetHead和取表尾GetTail的运算,从广义表LS=(b,c,(f),(d)中分解出原子c的操作为_。20. 设广义表A=(a,b,(c,d),(e,(f,g),用广义表的取表头GetHead和取表尾GetTail运算,从A中分解出原子d的操作为_。三、解答题1设有对称矩阵Ann(行

16、和列下标均从1开始),将其上三角元素逐行存于数组Bn*(n+1)/2中,使得Bk=aij(1=i,j=n,0=k=n*(n+1)/2-1)。试推导出由i、j和n计算k的一般公式。2在nn矩阵A中,所有下标值满足关系式i+jn+l的元素aij(1=i,j=n)的值均为0,现将A中其它元素按行优先顺序依次存储到长度为n(n+1)/2的一维数组sa中,其中元素a1,n存储在sa0中。(1)设n=10,元素a49存储在sap中,写出下标p的值。(2)设元素aij(1=i,j=n,且i+jn+l)存储在sak中,写出由i、j和n计算k的一般公式。3设有n阶三对角矩阵,将其三条对角线上的元素逐行地存于数组

17、B1.3n-2中,使得Bk=aij。(1)设n=100,将一个A100100的三对角矩阵,按行优先存入一维数组B1.m中,试确定m的值,并求A中元素A7778在B数组中的位置K。(2)求用i、j表示k的下标变换公式。(3)求用k表示i、j的下标变换公式。4设A和B均为n阶下三角矩阵,在下三角区域中各有n(n+1)/2个元素。另设有一个二维数组C,它有n行n+1列。试设计一个方案,将两个矩阵A和B中的下三角区域元素存放于同一个C中,写出所给出方案的代码段。并给出计算A的矩阵元素aij和B的矩阵元素bij在C中的存放位置下标的公式。设A、B、C三个矩阵的行、列下标均从1开始。5设有稀疏矩阵A如下(

18、矩阵元素的行列下标均从1开始):(1)若矩阵A采用三元组顺序表存储,试给出其三元组表。(2)若矩阵采用十字链表存储,试画出该矩阵的十字链表。6利用广义表的GetHead和GetTail操作写出函数表达式,把以下各小题中的单元素banana从广义表中分离出来:(1)L1= (apple,pear,banana,orange)(2)L2= (apple,pear),(banana,orange)(3)L3= (apple),(pear),(banana),orange)(4)L4= (apple,(pear,(banana),orange)7画出广义表(a),b),( ),d),(e,f) 的两种

19、存储结构图示。8已知广义表如下:A=(B,y)B=(x,L)L=(a,b)(1)写出下列操作的结果GetTail(A)=_。GetHead(B)=_。(2)画出广义表A所对应的图形(树形结构)。四、分析题1阅读下列函数,并回答问题。void fun441(int A, int n) int i,j,m; for (i=1; in; i+) for (j=0; ji; j+) m=Ai*n+j; Ai*n+j=Aj*n+i; Aj*n+i=m; (1)已知矩阵B=,将其按行优先存于一维数组A中,写出执行函数调用Fun441(A,3)后,矩阵B的值。(2)简述函数void fun441(int A

20、, int n)的功能。2阅读下列函数,并回答问题。void fun442(char str81) char temp, *begin, *end,*p1,*p2; if(str = NULL) return; begin=str; end=str+strlen(str)-1; while(begin end) temp = *begin; *begin = *end; *end= temp; begin+; end-; begin = end = str; while(*begin != 0) if(*begin = ) begin +; end +; continue; else if(*

21、end = | *end = 0) for (p1=begin,p2=end-1; p1p2; p1+,p2-) temp=*p1; *p1=*p2; *p2=temp; if (*end!=0) begin = +end; else begin=end; else end +; (1)设有char str81=”I am a good worker!”,执行函数fun442( str)后,字符串str的内容是什么?(2)简述函数void fun442(char str81)的功能。3下面函数的功能是判断字符串s 是否对称,若对称则返回true,否则返回false。例如, fun443(abb

22、a)返回true,f(abab)返回false。请在划线处填上适当的一个表达式,将程序补充完整。bool fun443(char s) int i=0,j=0; while (sj) _; / (1) for(j-; inext; if (_) / (3) return p-data; q=T; / 指针恢复串T的开始结点 _; / (4) return NULL;5下面程序的功能是生成从外到内是连续的自然数排列的回旋方阵。例如,当n=3和n=4时的回旋方阵如下图1所示。图1 由外向内回旋方阵请在划线处填上适当的内容,将程序补充完整。#include #include using namesp

23、ace std;#define N 10int main() int aNN=0; int n,row,col,num=0; cout请输入方阵的行数n(nn; num=arow=0col=0=1; / 第0行第0列输入起始1 while(numn*n) / 数组中的数不超过n*n while(_) / (1) a+rowcol=+num; / 向下填充 while(_) / (2) arow+col=+num; / 向右填充 while(_) / (3) a-rowcol=+num; / 向上填充 while(_) / (4) arow-col=+num; / 向左填充 for(row=0;

24、rown;row+) /打印全部数组元素 for(col=0;coln;col+) coutsetw(4)arowcol; coutendl; return 0;五、设计题1利用C的库函数strlen、strcpy和strcat编写一个函数void StrInsert(char *S,int pos,char *T),将串T插入到串S的第pos个字符之前。若pos大于S的长度,则插入不执行。利用函数strlen 和strcpy编写一个函数void StrDelete(char *S,int pos,int len)删去串S中从位置pos开始的连续len个字符。若posstrlen(S),则没有

25、字符被删除;若i+mstrlen(S),则将S中从位置pos开始直至末尾的字符均删去。2编写一个程序,将一个文本串用事先给定的字母映射表进行加密和解密。设字母映射表为:a b c d e f g h i j k l m n o p q r s t u v w x y z q w e r t y u I o p a s d f g h j k l z x c v b n m3编写一个程序,将一个含有数字和非数字字符的字符串中连续的数字作为一个整体,依次存放到一维整型数组中(设字符串中的数均不超过最大机器整数)。例如,有字符串“ak123xyz456 78.90?+!302gen4563”,将123存入0,456存入1,78存入a2,90存入a3。(说明:为简单起见,不考虑78.90是一

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

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