第4~5章串和数组自测卷答案姓名班级
离散数学(1-4-5章)自测题

离散数学(1-4-5章)自测题《离散数学1-4-5章》练习题第1章集合1、在0()Φ之间写上正确的符号。
(1) = (2) ?(3) ∈(4) ?2、若集合S的基数|S|=5,则S的幂集的基数|P(S)|=()。
3、设P={x|(x+1)2≤4且x∈R},Q={x|5≤x2+16且x∈R},则下列命题哪个正确() (1) Q?P (2) Q?P (3) P?Q (4) P=Q4、若A-B=Ф,则下列哪个结论不可能正确?( )(1) A=Ф (2) B=Ф(3) A?B (4) B?A5、判断下列命题哪几个为正确?( )(1) {Ф}∈{Ф,{{Ф}}} (2) {Ф}?{Ф,{{Ф}}} (3) Ф∈{{Ф}}(4) Ф?{Ф} (5) {a,b}∈{a,b,{a},{b}}6、设A,B,C是三个集合,证明:a、A? (B-C)=(A?B)-(A?C)b、(A-B)?(A-C)=A-(B?C)第4章关系1、设A={1,2,3,4,5,6},B={1,2,3},从A到B的关系R={〈x,y〉|x=y2},求R 和R-1的集合表示和关系矩阵表示。
2、设S={1,2,3,4},A上的关系R={〈1,2〉,〈2,1〉,〈2,3〉,〈3,4〉}求(1)R R (2) R-1。
3、设A={1,2,3,4,5,6},R是A上的整除关系,求R= {( )}。
4、设A={1,2,3},写出下列图示关系的关系矩阵,并讨论它们的性质:5、R是A={1,2,3,4,5,6}上的等价关系,R=I{<1,5>,<5,1>,<2,4>,<4,2>,<3,6>,<6,3>}A求R诱导的划分。
6.画出下列集合关于整除关系的哈斯图.(1){1, 2, 3, 4, 6, 8, 12, 24}.(2){1,2,…..,9}.并指出它的极小元,最小元,极大元,最大元。
数据结构第四五六七章作业答案

数据结构第四五六七章作业答案数据结构第四、五、六、七章作业答案第四、五章一、填空题1.不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。
2.设s=“a;/document/mary.doc”,则strlen(s)=20,“/”的边线为3。
3.子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。
4、串成的存储方式存有顺序存储、堆上分配存储和块链存储5、有一个二维数组a[0:8,1:5],每个数组元素用相邻的4个字节存储,存储器按字节编址,假设存储数组元素a[0,1]的地址是100,若按行主顺序存储,则a[3,5]的地址是176和a[5,3]的地址是208。
若按列存储,则a[7,1]的地址是128,a[2,4]的地址是216。
6、设立数组a[1…60,1…70]的基地址为2048,每个元素占到2个存储单元,若以列序居多序顺序存储,则元素a[32,58]的存储地址为8950。
7、三元素组表中的每个结点对应于稠密矩阵的一个非零元素,它涵盖存有三个数据项,分别则表示该元素的行负号、列于负号和元素值。
8、二维数组a[10][20]使用列序居多方式存储,每个元素占到10个存储单元,且a[0][0]的存储地址就是2000,则a[6][12]的地址就是32609、已知二维数组a[20][10]采用行序为主方式存储,每个元素占2个存储单元,并且a[10][5]的存储地址是1000,则a[18][9]的存储地址是116810、已知二维数组a[10][20]采用行序为主方式存储,每个元素占2个存储单元,并且a[0][0]的存储地址是1024,则a[6][18]的地址是130011、两个串相等的充分必要条件是长度相等、对应位置的字符相同。
12、二维数组a[10][20]使用列序居多方式存储,每个元素占到一个存储单元,并且a[0][0]的存储地址就是200,则a[6][12]的地址就是200+(12*10+6)=326。
串数组广义表自测题

第4、5章串、数组和广义表习题1.选择题(1)串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符(2)串下面关于串的的叙述中,()是不正确的?A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储(3)串“ababaabab”的next为()。
A.010104101 B.011234234 C.011232231 D.010101011 (4)串的长度是指()。
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数(5)假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
A.808 B.818 C.1010 D.1020(6)设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。
A.BA+141 B.BA+180 C.BA+222 D.BA+225(7)A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A.i(i-1)/2+j B.j(j-1)/2+i C.i(j-i)/2+1 D.j(i-1)/2+1(8)广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))的值为()。
A.(g) B.(d) C.c D.d(9)广义表((a,b,c,d))的表头是(),表尾是()。
A.a B.( ) C.(a,b,c,d) D.(b,c,d)(10)设广义表L=((a,b,c)),则L的长度和深度分别为()。
数据结构第4-5章作业及答案

数据结构第4-5章作业及答案⼀、填空题1. 不包含任何字符(长度为0)的串称为空串;由⼀个或多个空格(仅由空格符)组成的串称为空⽩串。
2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的位置为3。
3. ⼦串的定位运算称为串的模式匹配;被匹配的主串称为⽬标串,⼦串称为模式。
4、若n为主串长,m为⼦串长,则串的古典(朴素)匹配算法最坏的情况下需要⽐较字符的总次数为(n-m+1)*m。
5、假设有⼆维数组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列开始!)6、设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950 。
答:不考虑0⾏0列,利⽤列优先公式:LOC(a ij)=LOC(a c1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L 得:LOC(a32,58)=2048+[(58-1)* (60-1+1)+32-1]]*2=89507、三元素组表中的每个结点对应于稀疏矩阵的⼀个⾮零元素,它包含有三个数据项,分别表⽰该元素的⾏下标、列下标和元素值。
8、⼆维数组A[10][20]采⽤列序为主⽅式存储,每个元素占10个存储单元,且A[0][0]的存储地址是2000,则A[6][12]的地址是32609、已知⼆维数组A[20][10]采⽤⾏序为主⽅式存储,每个元素占2个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的存储地址是 116810、⼴义表((a,b),c,d)的表头是(a,b) ,表尾是 (c,d)11、⼴义表((((a),b),c),d)的表头是(((a),b),c) ,表尾是(d)12、已知⼆维数组A[10][20]采⽤⾏序为主⽅式存储,每个元素占2个存储单元,并且A[0][0]的存储地址是1024, 则A[6][18]的地址是130013、若串的长度不能确定,可采⽤动态存储结构,为串值分配⼀个存储空间,同时建⽴⼀个串的描述⼦以指⽰串值的长度和串在存储空间中的位置,称该结构为堆/堆结构14、稀疏矩阵⼀般的压缩存储⽅法有两种,即三元组表和⼗字链表。
pta第四章串、数组和广义表练习题.pdf

B(2.0) D(2.0) D(2.0) D(2.0) D(2.0) A(2.0) B(2.0) B(2.0) D(2.0) C(2.0) D(2.0) D(2.0)2-1广义表是一种(B)数据结构。
(2分)1.非递归的2.递归的3.树型4.图状作者: 严冰单位: 浙江大学城市学院2-2一个广义表为( a, (b, c), d, (), ((f, g), h) ),则该广义表的长度与深度分别为(D)。
(2分)1.4和62.6和33.3和54.5和3作者: 严冰单位: 浙江大学城市学院2-3稀疏矩阵的快速转置算法的时间复杂度是(D)。
(2分)1.三次方时间2.二次方时间3.对数时间4.线性时间作者: 严冰单位: 浙江大学城市学院2-4在定义稀疏矩阵的十字链接存储结构时,每个结点结构需包含(D)个域。
(2分)1. 42. 33. 64. 5作者: 严冰单位: 浙江大学城市学院2-5广义表与稀疏矩阵都是线性表的扩展,它们的共同点为(D)。
(2分)1.都可以用链接结构与顺序结构存储2.无共同点3.都是递归结构4.数据元素本身是一个数据结构作者: 严冰单位: 浙江大学城市学院2-6(neuDS_C++)以下叙述中正确的是(A )。
(2分)1.串是一种特殊的线性表2.串的长度必须大于零3.串中元素只能是字母4.空串就是空白串作者: 姚志军单位: 广东东软学院2-7(neuDS_C++)串是一种特殊的线性表,其特殊性体现在(B )。
(2分)1.可以顺序存储2.数据元素是一个字符3.可以链接存储4.数据元素可以是多个字符作者: 姚志军单位: 浙江大学2-8(neuDS_C++)设有两个串p和q,求q在p中首次出现的位置的运算称作( B)。
(2分)1.连接2.模式匹配3.求子串4.求串长作者: 姚志军单位: 广东东软学院2-9(neuDS_C++)设串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))的结果串是(D )。
第4章习题答案

习题41.名词解释:串、空串、空格串、子串。
解:串是有限的字符序列,从数据结构角度讲,串属于线性结构。
与线性表的不同之处在于串的元素是字符。
空串是不含任何字符的串,其长度为0。
空格是一个字符,其ASCII 码值是32。
空格串是由空格组成的串,其长度等于空格的个数。
串中任意连续的若干字符组成的子序列称为该串的子串。
2.已知三个字符串分别为”“a abcaabcbca ab S =,”“caab S =',”“bcb S ="。
利用串的基本运算得到结果串为”“a aca caabcbca S ='",要求写出得到结果串3S 所用的函数及执行算法。
解:串'"S 可看作由以下两部分组成:”“a caabcbca 和”“a ca ,设这两部分分别叫串s1和s2,要设法从S 、'S 、"S 中得到这两部分,然后使用连接操作连接s1和s2得到'"S 。
i=index();//s1=substr(S ,i,length(S )-i+1);//取出串s1j=index(S ,"S );//求串"S 在串S 中的起始位置,S 串中”“bcb 后是”“a cas2=substr(S ,j+3,length(S )-j-2);//形成串s2'"S =concat(s1,s2);3.已知字符串1S 中存放一段英文,写出算法),3,2,1(n S S S format ,将其按给定的长度n 格式化成两端对齐的字符串2S ,其多余的字符存入3S 。
解:题目要求将字符串S1拆分成字符串S2和S3,要求字符串S2“按给定长度n 格式化为两端对齐的字符串”,即长度为n 且首尾字符不能为空格字符。
算法从左到右扫描字符串S1,找到第一个非空格字符,计数到n ,第n 个拷入字符串S2的字符不能为空格,然后将余下字符复制到字符串S3中。
数据结构第4、5章作业答案
第4、5章作业答案1. 不包含任何字符(长度为0)的串 称为空串; 由一个或多个空格(仅由空格符)组成的串 称为空白串。
(对应严题集4.1①,简答题:简述空串和空格串的区别)2. 设S=“A;/document/Mary.doc ”,则strlen(s)= 20 , “/”的字符定位的位置为 3 。
3. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 8950 。
答:不考虑0行0列,利用列优先公式: LOC(a ij )=LOC(a c 1,c 2)+[(j-c 2)*(d 1-c 1+1)+i-c 1)]*L 得:LOC(a 32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=89504. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 行下标 、 列下标 和 元素值 。
5(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 ) ;6. 用三元组表表示下列稀疏矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡2000000000000005000000000006000000000000030008000000000000000000)1(7. 下列各三元组表分别表示一个稀疏矩阵,试写出它们的稀疏矩阵。
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡16166354443131212221646)1(8 给出A=(a, b, (c, (d, e)))的存储结构。
第四章串 习题
第四章串习题一、选择题1.串是一种特殊的线性表,其特殊性体现在()A.可以顺序存储 B.数据元素是一个字符 C. 可以链式存储 D.数据元素可以是多个字符2. 空串与空格字符组成的串的区别在于()。
A.没有区别B.两串的长度不相等C.两串的长度相等D.两串包含的字符不相同3.有串S1=”ABCDEFG”, S2=”PQRST”, 假设函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从数组序号为i(下标从0开始)的字符开始的j个字符组成的子串, len(s)返回串s 的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是( )A.BCDEFB.BCDEFGC.BCPQRSTD.CDEFGFG4.若串s=”sfotware”,其子串的个数是( )A.8B.37C.36D.95. 一个子串在包含它的主串中的位置是指()。
A.子串的最后那个字符在主串中的位置B.子串的最后那个字符在主串中首次出现的位置C.子串的第一个字符在主串中的位置D.子串的第一个字符在主串中首次出现的位置6. 下面的说法中,只有()是正确的。
A.字符串的长度是指串中包含的字母的个数B.字符串的长度是指串中包含的不同字符的个数C.若T包含在S中,则T一定是S的一个子串D.一个字符串不能说是其自身的一个子串7. 两个字符串相等的条件是()。
A.两串的长度相等B.两串包含的字符相同C.两串的长度相等,并且两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同8. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=()。
A. “ijing”B. “jing&”C. “ingNa”D. “ing&N”9. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=()。
第4章串答案.doc
一、选择题1如下陈述中正确的是(A).A.串是一种特殊的线性表B串的长度必须大于0C串中元素只能是字母D空串就是空格串2串的长度是指(B).A串中所有不同字母的个数B串中所有字符的个数c.串中所含不同字符的个数D串中所有非空格字符的个数3设有两个串p和q,求q在p中首次出现的位置的运算称作(B )oA连接B模式匹配C求子串D求串长4.( D )是(2语言中"abed 321ABCD "的子串.A. abedB. 321ABC. "abcABC"D. "21AB "5若串s=n sofrware n ,其子串的数目是(B37).A. 8B. 37C. 36D. 96下而关于串的叙述中,哪个是不正确的?( B ).A串是字符的有限序列B空串是由空格构成的串C模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以釆用链式存储7.设串S=n abcdefgh", S的所有非平凡子串的个数是(C )A. 8B. 37C. 36D. 358.设S为一个长度为n的字符串,其中的字符各不相同,s中的互异的非平凡子串的个数是(C)A.川B. % + % —1C. % + %D. % —% —19.设主串的长度为m,模式串的长度是n,串匹配的B算法时间复杂度是(D )A.o(n2)B・o(〃)C・ o(〃 + nt)D・o(m*n)10•顺序串中,根据空间分配方式的不同,可分为(B)A.直接分配和间接分配B.静态分配和动态分配C.顺序分配和链式分配D.随机分配和固定分配二、基本知识题1空串与空格串有何区别?空串是指长度是零的串,空格串中可以包含一个或多个空白符2己知有两个串为A= n ac cab cabcbbca"B="abc"判断B串是否是A串的子串,如果是其子串,说明起始点是A 串的第几个字符。
是93.串是一种特殊的线性表,其特殊性体现在什么地方?数据元素是一个字符4串的两种基本的存储方式是什么?顺序和链接5两个串相等的充分必要条件是什么?串长相等且对应位置的字符相同三、算法设计题1对于采用顺序结构有储的串r,编写一个函数删除其值等于ch 的所有字符.2对于采用顺序结构有储的串r,编写一个函数删除r中第i个字符开始的j个字符.3对于采用顺序结构有储的串r,设计一算法将串逆置.4采用单链表结构存储的串r ,编写一个函数将其中所有的'c,宇符替挟成's,宇符.5己如两个采用单链表结构存储的串A和 B o试编写个函数将串B插入串A中第k个字符之后。
数据结构1-5章习题参考答案
第1章绪论一、填空题01、【操作对象】【关系和运算】02、【数据元素】【关系】03、【逻辑结构】【存储结构】【运算】04、【线性结构】【非线性结构】05、【一对一】【一对多】【多对多】06、【没有】【没有】07、【前驱】【1】【后续】【任意多个】08、【任意多个】09、【顺序】【链式】【索引】【散列】10、【集合】【线性结构】【树形结构】【图状结构】11、【插入】【删除】【修改】【查找】【排序】12、【时间】【空间】13、【时间复杂度】【空间复杂度】14、【映射】15、【有穷性】【确定性】【可行性】16、【n+1】【n】【n(n+3)/2】【n(n+1)/2】17、【n(n+1)(n+2)/6】【O(n3)】18、【O(n2 log)】19、【O(nn2 log)】20、【O(22log n)】21、【(n+3)(n-2)/2】22、【n(n-1)/2】二、判断题01-05、×××√×06-10、×√×××11-12、√×三、单项选择题B01 BD02 A03 C04 C05A06 C07 B08 A09 C10B11 A12 C13 D14 A15C16四、分析下面各程序段的时间复杂度01、O(nm )02、O(2n)03、答:O(2n)04、答:O(n3 log)五、设有数据逻辑结构S=(D,R),试按各小题所给条件画出这些逻辑结构的图示,并确定相对于关系R,哪些结点是开始结点,哪些结点是终端结点?01、此图为线性结构d1→d2→d3→d4d1—无直接前驱,是首结点d4—无直接后继是尾结点02、此图为树形结构d1—无直接前驱,是根结点d2,d5,d7,d9—无直接后继是叶子结点03、此图为图形结构d1,d2—无直接前驱,是开始结点d6,d7—无直接后继是终端结点六、简述题01、什么是数据结构?答:数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4~5章串和数组自测卷答案姓名班级第4,5章串和数组自测卷答案姓名班级题号一二三四五总分题分 20 15 20 15 30 100得分一、填空题(每空1分,共20分)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. 假设有二维数组A,每个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置×68(基地址)为1000,则数组A的体积(存储量)为 288 B ;末尾元素A的第一个字节地址为 571282 ;若按行存储时,元素A的第一个字节地址为(8+4)×6+1000=1192 ;若按列存储时,元14素A的第一个字节地址为(6×7,4)×6,1000),1276 。
47. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列8序为主序顺序存储,则元素a[32,58]的存储地址为 9188 。
答:考虑0行0列,(58列×61行,32行)×2字节,基址2048=9188,,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) ;二、单选题(每小题1分,共15分)( B )1. 〖李〗串是一种特殊的线性表,其特殊性体现在:,(可以顺序存储 ,(数据元素是一个字符,(可以链式存储 ,(数据元素可以是多个字符( B )2. 〖李〗设有两个串p和q,求q在p中首次出现的位置的运算称作: ,(连接 ,(模式匹配 ,(求子串 ,(求串长( 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))的结果串是:,(BCDEF ,(BCDEFG ,(BCPQRST ,(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列元素) ,(16902 ,(16904 ,(14454 ,(答案A, B, C均不对答:(57列×60行,31行)×2字节,10000=16902(A)( B )5. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素a(i?j), 在一维数组B中下标k的值是: i,j,(i(i-1)/2+j-1 ,(i(i-1)/2+j ,(i(i+1)/2+j-1 ,(i(i+1)/2+ja,,解:注意B的下标要求从1开始。
1,1,,先用第一个元素去套用,可能有B和C; aa2,12,2,, A,再用第二个元素去套用B和C,B=2而C,3(不符); ,,?,,所以选B aa?a,,n,1n,2n,n,,6. 【91初程P78】从供选择的答案中,选出应填入下面叙述 , 内的最确切的解答,把相应编号写在答卷的对应栏内。
有一个二维数组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 。
供选择的答案A,E:?28 ? 44 ? 76 ? 92 ? 108116 132 176 184 188答案:ABCDE=8, 3, 5, 1, 67.【94程P12】从供选择的答案中,选出应填入下面叙述 , 内的最确切的解答,把相应编号写在答卷的对应栏内。
有一个二维数组A,行下标的范围是1到6,列下标的范围是0到7,每个数组元素用相邻的6个字节存储,存储器按字节编址。
那么,这个数组的体积是 A 个字节。
假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是 B 。
若按行存储,则A[2,4]的第一个字节的地址是C 。
若按列存储,则A[5,7]的第一个字节的地址是 D 。
供选择的答案A,D:?12 ? 66 ? 72 ? 96 ? 114 ? 120156 234 276 282 (11)283 (12)288答案:ABCD=12, 10, 3, 9三、简答题(每小题5分,共15分)1. KMP算法的设计思想是什么,它有什么优点,2. (软件技术,)已知二维数组Am,m采用按行优先顺序存放,每个元素占K个存储单元,并且第一个元素的存储地址为Loc(a11),请写出求Loc(aij)的计算公式。
如果采用列优先顺序存放呢, 解:公式教材已给出,此处虽是方阵,但行列公式仍不相同;按行存储的元素地址公式是: Loc(aij)= Loc(a11) +[ (i-1)*m+(j-1) ] * K 按列存储的元素地址公式是: Loc(aij)= Loc(a11) +[ (j-1)*m+(i-1) ] * K3.【全国专升本资格考试】递归算法比非递归算法花费更多的时间,对吗,为什么, 答:不一定。
时间复杂度与样本个数n有关,是指最深层的执行语句耗费时间,而递归算法与非递归算法在最深层的语句执行上是没有区别的,循环的次数也没有太大差异。
仅仅是确定循环是否继续的方式不同,递归用栈隐含循环次数,非递归用循环变量来显示循环次数而已。
四、计算题(每题5分,共20分)1. 设s=’I AM A STUDENT’, t=’GOOD’, q=’WORKER’, 求R eplace(s,’STUDENT’,q) 和 Concat(SubString(s,6,2),Concat(t,SubString(s,7,8)))。
解:? Replace(s,’STUDENT’,q),’I AM A WORKER’因为SubString(s,6,2),‘A ’;SubString(s,7,8),‘ STUDENT’ Concat(t,SubString(s,7,8)),’GOOD STUDENT’所以Concat(SubString(s,6,2), Concat(t,SubString(s,7,8))),‘A GOOD STUDENT’2. 【严题集4.8?】已知主串s=’ADBADABBAABADABBADADA’,模式串pat=’ADABBADADA’。
写出模式串的nextval函数值,并由此画出KMP算法匹配的全过程。
解:(由演示程序得知)nextval函数值为0 1 0 2 1 0 1 0 4 0 在第12个字符处发现匹配~s=’ADBADABBAABADABBADADA’pat=’ADABBADADA’3. (P60 4-18)用三元组表表示下列稀疏矩阵:00000000,,,,0000000000000,2,,,,,,03000800000090,,,,,,00000000000000,,,, (2)(1),,,,00500000060000,,,,,,00000000000000,,,,,,00003000000005,,,,20 000000,,解:参见填空题4. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。
所以(1)可列表为: (2)可列表为:5 8 86 6 4 3 2 3 1 6 -2 3 6 8 2 5 9 5 4 6 4 3 578 5 6 5 3 8 1 24. (P60 4-19)下列各三元组表分别表示一个稀疏矩阵,试写出它们的稀疏矩阵。
646,,455,,,,122,,,,111,,1?212,,249,,,,(1)313(2),,,,328,,,,444,,356,,536,,,,437,,,,6116,,解:(1)为6×4矩阵,非零元素有6个,但其中一数下标有误,(2)为4×5矩阵,非零元素有5个0 2 0 0 1 0 0 0 0 12 0 0 0 改为2,1,12 0 0 0 9 0 3 0 0 0 0 8 0 0 6 00 0 4 0 0 7 0 0 0 0 6 0 16 0 0 0五、算法设计题(每题10分,共30分)【严题集4.12?】编写一个实现串的置换操作Replace(&S, T, V)的算法。
1.解:int Replace(Stringtype &S,Stringtype T,Stringtype V);//将串S中所有子串T替换为 V,并返回置换次数{for(n=0,i=1;i<=Strlen(S)-Strlen(T)+1;i++) //注意i的取值范围if(!StrCompare(SubString(S,i,Strlen(T)),T)) //找到了与T匹配的子串{ //分别把T的前面和后面部分保存为head和tailStrAssign(head,SubString(S,1,i-1));StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1));StrAssign(S,Concat(head,V));StrAssign(S,Concat(S,tail)); //把head,V,tail连接为新串i+=Strlen(V); //当前指针跳到插入串以后n++;n++;}//ifreturn n;}//Replace分析:i+=Strlen(V);这一句是必需的,也是容易忽略的.如省掉这一句,则在某些情况下, 会引起不希望的后果,虽然在大多数情况下没有影响.请思考:设S='place', T='ace', V='face',则省掉i+=Strlen(V);运行时会出现什么结果?2. 【全国专升本资格考试】写出将字符串反序的递归或递推算法,例如字符串为“abcsxw”,反序为“wxscba”(注:这也是严题集4.10? 编写对串求逆的递推算法)算法思路:假定用单链表结构存储字符串;if没有到尾部字符就不停调用自身函数,直至到达末尾,再从尾部返回并打印字符; 否则就打印当前字符并返回。