首页 试题详情
问答题

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下: 1.在串t和串s中,分别设比较的起始下标i=j=0。 2.如果串t和串s都还有字符,则循环执行下列操作: (1)如果j=-l或者t[i]=s[j],则将i和j分别加1,继续比较t和s的下一个字符; (2)否则,将j向右滑动到next[j]的位置,即j =next[j]。 3.如果s中所有字符均已比较完毕,则返回匹配的起始位置(从1开始);否则返回-1. 其中,next数组根据子串s求解。求解next数组的代码已由get_next函数给出。【C代码】 (1)常量和变量说明 t,s:长度为悯铂Is的字符串 next:next数组,长度为Is (2)C程序 #include <stdio.h> #include <stdlib.h> #include <string.h> /*求next[]的值*/ void get_next( int *next, char *s, int Is) { int i=0,j=-1; next[0]=-1;/*初始化next[0]*/ while(i < ls){/*还有字符*/ if(j==-1l ls[i]==s[j]){/*匹配*/ j++; i++; if( s[i]==s[j]) next[i] = next[j]; else Next[i] = j; } else j = next[j]; } } int kmp( int *next, char *t ,char *s, int lt, int Is ) { Int i= 0,j =0 ; while (i < lt && (1) ){ if( j==-1 || (2) ){ i ++ ; j ++ ; } else (3) ; } if (j >= ls) return (4) ; else return -1; } 【问题1】(8分) 根据题干说明,填充C代码中的空(1)~(4). 【问题2】(2分) 根据题干说明和C代码,分析出kmp算法的时间复杂度为(5)(主串和子串的长度分别为It和Is,用O符号表示)。 【问题3】(5分) 根据C代码,字符串“BBABBCAC”的next数组元素值为(6)(直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC”,则函数Kmp的返回值是(7)。

正确答案:A (备注:此答案有误)

相似试题

  • 问答题

    阅读下列说明C代码回答问题1问题3,将解答写在答题纸的对应栏内。【说明】n-皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列相同的对角线上。拟采用以下思路解决n-皇后问题:第i个皇后放在第i行。从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个皇后的位置。重复该过程,直到找到所有的放置方案。【C代码】下面是算法的C语言实现。(1)常量变量说明pos:一维数组,pos[i]表示第i个皇后放置在第i行的具体位置count:统计放置方案数i,j,k:变量N:皇后数【问题1】(10分)根据以上说明C代码,填充C代码中的空(1)~(5)。【问题2】(2分)根据以上说明C代码,算法采用了(6)设计策略。【问题3】(3分)上述C代码的输出为:(7)。

    答案解析

  • 问答题

    阅读下列说明回答问题1问题3,将解答填入答题纸的对应栏内。【说明】某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。以下为E-SQL编写的部分售票代码: EXEC SQL SELECT balance INTO:x FROM tickets WHERE flight=:flightno; printf(航班%s当前剩余机票数为:%d n请输入购票数:, flightno,x); scanf(%d,&a); EXEC SQL UPDATE tickets SET balance =x =:a WHERE flight=:flightno;请根据上述描述,完成下列问题。【问题1】上述售票程序,在并发状态下,可能发生什么错误?产生这种错误的原因是什么?【问题2】若将上述代码封装成一个完整的事务,则:(1)在并发请求下的响应效率会存在什么问题?(2)分析产生效率问题的原因。(3)给出解决方案。【问题3】下面是改写的存储过程,其中flightno为航班号;a为购票数;result为执行状态:1表示成功,0表示失败;表tickets中的剩余机票数

    答案解析

  • 问答题

    阅读下列说明回答问题1问题3,将解答填入答题纸的对应栏内。【说明】某网站采用ASP+SQL Server开发,系统的数据库名为gldb,数据库服务器IP地址为202.12.34.1。打开该网站主页,如图5-1所示:【问题1】(8分,每空1分)以下是该网站主页部分的html代码,请根据图5-1将(1)~(8)的空缺代码补齐。 【问题2】(2分,每空1分)该网站采用ASP编写程序代码,在ASP内置对象中,application对象session对象可以创建存储空间用来存放变量对象的引用。如果在页面中设置访客计数器,应采用上述的 (9) 对象:如果编写购物车组件,应采用上述的 (10) 对象。【问题3】(5分,每空1分)以下是该网站进行数据库连接的代码conn.asp,请根据题目说明完成该程序,将答案填写在答题纸的对应位置。

    答案解析

  • 问答题

    阅读以下说明回答问题1问题2,将解答填入答题纸对应的解答栏内。【说明】某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。【问题1】(9分)以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。【问题2】(6分)1.在登录页面 login.asp 中通过<!--#include file=“bbb.asp”-->导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。

    答案解析

  • 问答题

    阅读以下说明回答问题1问题3,将解答填入对应栏内。【说明】某公司要开发一个招投标市场计算机管理软件项目,具体项目描述如表5-1。表5-2表示分解的项目工作先后顺序。请根据以上描述回答下列问题。17、【问题1】请根据表5-1的项目描述,在对应位置完成项目里程碑甘特图。表5-1 项目描述18、【问题2】请根据表5-2,计算每项工作的最早开始时间最迟开始时间,完成表5-3,并将计算结果填到答题纸的对应位置。19、【问题3】在描述网络计划图时,由于节点表示方式可以有多种形式,进而有多种形式的网络计划图,如单代号或双代号网络图等。图5-1是网络计划图中节点的一种表示方法。依据图5-1的节点表示格式及工作代码为141的节点示例图(如图5-2所示),完成图5-3所示工作代码为122的节点图,将答案填到对应位置。

    答案解析

热门题库