收藏 分享(赏)

数据结构第四章考试题库(含答案).doc

上传人:weiwoduzun 文档编号:4146761 上传时间:2018-12-11 格式:DOC 页数:17 大小:175.02KB
下载 相关 举报
数据结构第四章考试题库(含答案).doc_第1页
第1页 / 共17页
数据结构第四章考试题库(含答案).doc_第2页
第2页 / 共17页
数据结构第四章考试题库(含答案).doc_第3页
第3页 / 共17页
数据结构第四章考试题库(含答案).doc_第4页
第4页 / 共17页
数据结构第四章考试题库(含答案).doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、第四章 串一、选择题1下面关于串的的叙述中,哪一个是不正确的?( ) 【北方交通大学 2001 一、5(2 分) 】A串是字符的有限序列 B空串是由空格构成的串C模式匹配是串的一种重要运算 D串既可以采用顺序存储,也可以采用链式存储2 若串 S1=ABCDEFG, S2=9898 ,S3=#,S4=012345,执行concat(replace(S1,substr(S1,length(S2),length(S3),S3),substr(S4,index(S2,8),length(S2)其结果为( ) 【北方交通大学 1999 一、5 (25/7 分) 】AABC#G0123 BABCD#234

2、5 CABC#G2345 DABC#2345EABC#G1234 FABCD#1234 GABC#012343设有两个串 p 和 q,其中 q 是 p 的子串,求 q 在 p 中首次出现的位置的算法称为( )A求子串 B联接 C匹配 D求串长【北京邮电大学 2000 二、4(20/8 分) 】 【西安电子科技大学 1996 一、1 (2 分) 】4已知串 S=aaab,其 Next 数组值为( ) 。 【西安电子科技大学 1996 一、7 (2 分) 】A0123 B1123 C1231 D12115串 ababaaababaa 的 next 数组为( ) 。 【中山大学 1999 一、7】A

3、012345678999 B012121111212 C011234223456 D01230123223456字符串ababaabab 的 nextval 为( )A(0,1,0,1,04,1,0,1) B(0,1,0,1,0,2,1,0,1)C(0,1,0,1,0,0,0,1,1) D(0,1,0,1,0,1,0,1,1 )【北京邮电大学 1999 一、1(2 分) 】7模式串 t=abcaabbcabcaabdab,该模式串的 next 数组的值为( ) ,nextval 数组的值为 ( ) 。 A0 1 1 1 2 2 1 1 1 2 3 4 5 6 7 1 2 B0 1 1 1 2

4、1 2 1 1 2 3 4 5 6 1 1 2C0 1 1 1 0 0 1 3 1 0 1 1 0 0 7 0 1 D0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2 E0 1 1 0 0 1 1 1 0 1 1 0 0 1 7 0 1 F0 1 1 0 2 1 3 1 0 1 1 0 2 1 7 0 1【北京邮电大学 1998 二、3 (2 分) 】8若串 S=software,其子串的数目是( ) 。 【西安电子科技大学 2001 应用 一、2(2 分) 】A8 B37 C36 D99设 S 为一个长度为 n 的字符串,其中的字符各不相同,则 S 中的互异的非平凡子串(非

5、空且不同于 S 本身)的个数为( ) 。 【中科院计算所 1997 】A2n-1 Bn2 C(n2/2)+(n/2) D(n2/2)+(n/2)-1 E. (n2/2)-(n/2)-1 F.其他情况10串的长度是指( ) 【北京工商大学 2001 一、6 (3 分) 】A串中所含不同字母的个数 B串中所含字符的个数C串中所含不同字符的个数 D串中所含非空格字符的个数二、判断题1KMP 算法的特点是在模式匹配时指示主串的指针不会变小。 ( ) 【北京邮电大学 2002 一、4 (1 分) 】2设模式串的长度为 m,目标串的长度为 n,当 nm 且处理只匹配一次的模式时,朴素的匹配(即子串定位函数

6、)算法所花的时间代价可能会更为节省。 ( ) 【长沙铁道学院 1998 一、1 (1 分)】3串是一种数据对象和操作都特殊的线性表。 ( ) 【大连海事大学 2001 1、L (1 分)】二、填空题1空格串是指_(1)_,其长度等于_(2)_。 【西安电子科技大学 2001 软件 一、4(2 分) 】2组成串的数据元素只能是_。 【中山大学 1998 一、5 (1 分) 】3一个字符串中_称为该串的子串 。 【华中理工大学 2000 一、3(1 分) 】4INDEX(DATASTRUCTURE , STR )=_。 【福州大学 1998 二、4 (2 分)】5设正文串长度为 n,模式串长度为

7、m,则串匹配的 KMP 算法的时间复杂度为_。 【重庆大学 2000 一、4】6模式串 P=abaabcac的 next 函数值序列为_。 【西安电子科技大学 2001 软件 一、6(2 分) 】7字符串ababaaab的 nextval 函数值为_。 【北京邮电大学 2001 二、4 (2 分) 】8设 T 和 P 是两个给定的串,在 T 中寻找等于 P 的子串的过程称为_(1)_,又称 P 为_(2)_。【西安电子科技大学 1998 二、5 (16/6 分) 】9串是一种特殊的线性表,其特殊性表现在_(1)_;串的两种最基本的存储方式是_(2)_、_(3)_;两个串相等的充分必要条件是_(

8、4)_。 【中国矿业大学 2000 一、3 (4 分) 】10两个字符串相等的充分必要条件是_。 【西安电子科技大学 1999 软件 一、1 (2 分) 】11知 U=xyxyxyxxyxy;t=xxy ;ASSIGN(S,U) ;ASSIGN(V,SUBSTR(S,INDEX(s,t) ,LEN(t)+1) ) ;ASSIGN(m, ww)求 REPLACE(S,V,m)= _。 【东北大学 1997 一、1 (5 分)】12实现字符串拷贝的函数 strcpy为:void strcpy(char *s , char *t) /*copy t to s*/ while (_) 【浙江大学 19

9、99 一、5 (3 分)】13下列程序判断字符串s 是否对称,对称则返回1,否则返回0;如 f(“abba“)返回1,f(“abab“)返回0; int f(1)_)int i=0,j=0;while (sj)(2)_;for(j-; ilength) THEN index:=i; length:=length1; (3)_; ELSE (4)_;(5) _;END;程序(b)void maxcomstr(orderstring *s,*t; int index, length)int i,j,k,length1,con;index=0;length=0;i=1;while (ilength)

10、 index=i; length=length1; (3)_; else (4) _;(5) _ 【上海大学 2000 一、2 (10 分) 】15完善算法:求 KMP 算法中 next 数组。PROC get _next(t:string,VAR next:ARRAY1t.len OF integer);BEGIN j:=1; k:=(1)_; next1:=0;WHILE jmt THEN return (5)_; ELSE return (6)_ENDF;【南京理工大学 1999 三、2 (6 分) 】17阅读下列程序说明和 pascal 程序,把应填入其中的( )处的字句写在答题纸上。

11、程序说明:本程序用于判别输入的字符串是否为如下形式的字符串:WCONST midch= endch=$;VAR an:boolean; ch:char;PROCEDURE match(VAR answer: boolean);VAR ch1,ch2:char; f:boolean;BEGINread(ch1);IF ch1= j14题目分析本题算法采用顺序存储结构求串 s 和串 t 的最大公共子串。串 s 用 i 指针(1midch /当读入不是分隔符while (it.curlen,则向左移;若 jmaxlen)printf(“参数错误n”);exit(0); /检查参数及置换后的长度的合法

12、性。if(j=i+j-1;k-) s.chk+t.curlen-j=s.chk;else if (jt.curlen) /s 串中被替换子串的长度小于 t 串的长度。for(k=i-1+j;kt.curlen) s.curlen=s.curlen-(j-t.curlen);else s.curlen=s.curlen+(t.curlen-j);/算法结束算法讨论若允许使用另一数组,在检查合法性后,可将 s 的第 i 个(不包括 i)之前的子串复制到另一子串如 s1 中,再将 t 串接到 s1 串后面,然后将 s 的第 i+j 直到尾的部分加到 s1 之后。最后将 s1 串复制到 s。主要语句有

13、:for(k=0;ki-1+j;k-);/将子串第 i+j-1 个字符以后的子串复制到 s1s1.chl-=s.chkfor(k=0;k=pos ;j-)*(p+x)=*p; p-;/串 s 的 pos 后的子串右移,空出串 t 的位置。q-; /指针 q 回退到串 t 的最后一个字符for(j=1;j0) sj+=stki- /将第偶数个字符逆序填入原字符数组14.题目分析本题是对字符串表达式的处理问题,首先定义 4 种数据结构:符号的类码,符号的 TOKEN 表示,变量名表 NAMEL 和常量表 CONSL。这四种数据结构均定义成结构体形式,数据部分用一维数组存储,同时用指针指出数据的个数

14、。算法思想是从左到右扫描表达式,对读出的字符,先查出其符号类码:若是变量或常量,就到变量名表和常量表中去查是否已有,若无,则在相应表中增加之,并返回该字符在变量名表或常量表中的下标;若是操作符,则去查其符号类码。对读出的每个符号,均填写其 TOKEN 表。如此下去,直到表达式处理完毕。先定义各数据结构如下。struct / 定义符号类别数据结构char data7; /符号char code7; /符号类码 TYPL;typedef struct /定义 TOKEN 的元素int typ; /符号码int addr; /变量、常量在名字表中的地址cmp;struct cmp data50;/定

15、义 TOKEN 表长度NAMEL.last)NAMEL.datai=ch;NAMEL.last+;/变量加入case0: case1: case2: case3: case4: case5:/处理常量case6: case 7:case8: case9: TY=1;/常量类码为 1for(i=1;iCONSL.last)CONSL.datai=ch;CONSL.last+;/将新常量加入default: /处理运算符TYoperator(ch);/类码序号i=0; /填入 TOKEN 的 addr 域(期望输出空白)/结束 switch,下面将 ch 填入 TOKEN 表TOKEN.data+

16、TOKEN.last.typ=TY;TOKEN.dataTOKEN.last.addr=i;scanf(“c”,&ch); /读入表达式的下一符号。/while/算法结束程序讨论为便于讨论,各一维数组下标均以 1 开始,在字符为变量或常量的情况下,将其类码用 TY 记下,用 i 记下其 NAMEL 表或 CONSL 表中的位置,以便在填 TOKEN 表时用。在运算符(+,*,(,)填入 TOKEN 表时,TOKEN 表的 addr 域没意义,为了程序统一,这里填入了0。本题是表达式处理的简化情况(只有 3 个单字母变量,常量只有 09,操作符只 4 个),若是真实情况,所用数据结构要相应变化。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报