数据结构  串和数组 试题及答案         
一、填空题
1.   不包含任何字符(长度为0)的串  称为空串;  由一个或多个空格(仅由空格符)组成的串    称为空白串。
(对应严题集4.1①,简答题:简述空串和空格串的区别)
2. 设S=“A:/document/Mary.doc”,则strlen(s)=    20     , “/”的字符定位的位置为    3   
4. 子串的定位运算称为串的模式匹配; 被匹配的主串    称为目标串,  子串  称为模式。
5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第  6   次匹配成功。
6. 若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为  (n-m+1)*m 
7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始
存储位置(基地址)为1000,则数组A的体积(存储量)为    288 B  ;末尾元素A57的第一个字节地址为  1282    ;若按行存储时,元素A14的第一个字节地址为  (8+4)×6+1000=1072    ;若按列存储时,元素A47的第一个字节地址为  (6×7+4)×6+1000)=1276   
(注:数组是从0行0列还是从1行1列计算起呢?由末单元为A57可知,是从0行0列开始!)
8. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为  8950
   
答:不考虑0行0列,利用列优先公式: LOC(aij)=LOC(ac1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L
得:LOC(a32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=8950
9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素
  行下标      列下标      元素值    
10.求下列广义表操作的结果:
(1) GetHead【((a,b),(c,d))】===  (a, b)     ;      //头元素不必加括号
(2) GetHead【GetTail【((a,b),(c,d))】】===  (c,d)    ;
(3) GetHead【GetTail【GetHead【((a,b),(c,d))】】】===  b   ;
(4) GetTail【GetHead【GetTail【((a,b),(c,d))】】】===  (d)     ;
二、单选题
B )1. 串是一种特殊的线性表,其特殊性体现在:
  A.可以顺序存储      B.数据元素是一个字符     
C.可以链式存储        D.数据元素可以是多个字符
B )2. 设有两个串p和q,求q在p中首次出现的位置的运算称作:
A.连接      B.模式匹配    C.求子串      D.求串长
D )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))的结果串是:
A.BCDEF      B.BCDEFG    C.BCPQRST        D.BCDEFEF
解:con(x,y)返回x和y串的连接串,即 con(x,y)=‘ABCDEFGPQRST’;
subs(s, i, j)返回串s的从序号i开始的j个字符组成的子串,则
subs(s1, 2, len(s2))=subs(s1, 2, 5)=’ BCDEF’;  subs(s1, len(s2), 2)=subs(s1, 5, 2)=’ EF’;
指针与二维数组
所以con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))=con(’ BCDEF’, ’ EF’)之连接,即BCDEFEF
A )4. 〖01年计算机系考研题〗假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为      。(无第0行第0列元素)
A.16902    B.16904      C.14454    D.答案A, B, C均不对
答:此题与填空题第8小题相似。(57列×60行+31行)×2字节+10000=16902
解:注意B的下标要求从1开始。
先用第一个元素去套用,可能有B和C;
再用第二个元素去套用B和C,B=2而C=3(不符);
所以选B
B  )5. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素ai,j(i≤j), 在一维数组B中下标k的值是:
A.i(i-1)/2+j-1  B.i(i-1)/2+j      C.i(i+1)/2+j-1        D.i(i+1)/2+j
6. 从供选择的答案中,选出应填入下面叙述  ?  内的最确切的解答,把相应编号写在答卷的对应栏内。
有一个二维数组A,行下标的范围是0到8,列下标的范围是1到5,每个数组元素用相邻的4个字节存储。存储器按字节编址。假设存储数组元素A[0,1]的第一个字节的地址是0。
存储数组A的最后一个元素的第一个字节的地址是  A 。若按行存储,则A[3,5]和A[5,3]的第一个字节的地址分别是 B    C  。若按列存储,则A[7,1]和A[2,4]的第一个字节的地址分别是  D    E 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。