试题详情

试题内容

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
计算两个字符串x和y的最长公共子串(Longest Common Substring)。
假设字符串x和字符串y的长度分别为m和n,用数组c的元素c[i][j]记录x中前i个字符和y中前j个字符的最长公共子串的长度。
c[i][j]满足最优子结构,其递归定义为:

计算所有c[i][j](0 ≤i ≤ m,0 ≤j ≤ n)的值,值最大的c[i][j]即为字符串x和y的最长公共子串的长度。根据该长度即i和j,确定一个最长公共子串。
【C代码】
(1)常量和变量说明
x,y:长度分别为m和n的字符串
c[i][j]:记录x中前i个字符和y中前j个字符的最长公共子串的长度
max:x和y的最长公共子串的长度
maxi, maXj:分别表示x和y的某个最长公共子串的最后一个字符在x和y中的位置(序号)
(2)C程序

#include
#include

int c[50][50];
int maxi;
int maxj;

int lcs(char *x, int m, char *y, int n)     {
int i, j;
int max= 0;
maxi= 0;
maxj = 0;


for ( i=0; i<=m ; i++) c[i][0] = 0;
for (i =1; i<= n; i++) c[0][i]=0;
for (i =1; i<= m; i++) {
for (j=1; j<= n; j++) {
if (    (1)    )    {
c[i][j] = c[i -1][j -1] + 1;
if(max (2)   ;
maxi = i;
maxj =j;
}
}
else     (3)    ;
}
}
return max;
}
void printLCS(int max, char *x) {
int i= 0;
if (max == 0)        return;
for (  (4)    ; i < maxi; i++)
printf("%c",x[i]);
}
void main(){
char* x= "ABCADAB";
char*y= "BDCABA";
int max= 0;
int m = strlen(x);
int n = strlen(y);

max=lcs(x,m,y,n);
printLCS(max , x);
}
【问题1】(8分)
根据以上说明和C代码,填充C代码中的空(1)~(4)。
【问题2】(4分)
根据题干说明和以上C代码,算法采用了 (5) 设计策略。
分析时间复杂度为 (6) (用O符号表示)。
【问题3】(3分)
根据题干说明和以上C代码,输入字符串x= "ABCADAB’,'y="BDCABA",则输出为 (7) 。
查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

1题:

试题一
阅读下列说明,回答问题1和问题2,将解答填入的对应栏内。
[说明]
假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如下:
1.系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。
2.在接到供货请求后,从商品库存记录文件中进行商品库存信息查询。如果库存满足供货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。
3.配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。
4.采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支付货款。
该系统采用结构化方法进行开发,得到待修改的数据流图如下图所示。
2题:

试题二
阅读下列说明,回答问题1至问题3,将解答填入对应栏内。
[说明]
某学校拟开发一套实验管理系统,对各课程的实验安排情况进行管理。
[需求分析]
一个实验室可进行多种类型不同的实验。由于实验室和实验员资源有限,需根据学生人数分批次安排实验室和实验员。一门课程可以为多个班级开设,每个班级每学期可以开设多门课程。一门课程的一种实验可以根据人数、实验室的可容纳人数和实验类型,分批次开设在多个实验室的不同时问段。一个实验室的一次实验可以分配多个实验员负责辅导实验,实验员给出学生的每次实验成绩。
课程信息包括:课程编号、课程名称、实验学时、授课学期和丌课的班级等信息;实验信息记录该课程的实验进度信息,包括:实验名、实验类型、学时、安排周次等信息,如表2-1所示。

3题:

试题:3
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司欲开发一个管理选民信息的软件系统。系统的基本需求描述如下:
(1)每个人(Person)可以是一个合法选民(Eligible)或者无效的选民(Ineligible)。
(2)每个合法选民必须通过该系统对其投票所在区域(即选区,Riding)进行注册( Registration)。每个合法选民仅能注册一个选区。
(3)选民所属选区由其居住地址(Address)决定。假设每个人只有一个地址,地址可以是镇(Town)或者城市(City)。
(4)某些选区可能包含多个镇;而某些较大的城市也可能包含多个选区。
现采用面向对象方法对该系统进行分析与设计,得到如图1-1所示的初始类图。


图1-1类图
<
6题:

[试题6]
阅读下列说明和Java代码,回答下列问题。
[说明]
现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SOLServer和Access两种数据库以及系统中的数据库表Department为例,其类图如图1-15所示。

[Java代码]
import java.util.*;
class Department{  /*代码省略* /  }
interface IDepartment{
______;
______;
}
class SqlserverDepartment ______{
public void Insert(Department department){
System.out.p
2题:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某宾馆为了有效地管理客房资源,满足不同客户需求,拟构建一套宾馆信息管理系统,以方便宾馆管理及客房预订等业务活动。
【需求分析结果】
该系统的部分功能及初步需求分析的结果如下:
(1)宾馆有多个部门,部门信息包括部门号、部门名称、电话、经理。每个部门可以有多名员工,每名员工只属于一个部门;每个部门只有一名经理,负责管理本部门。
(2)员工信息包括员工号、姓名、岗位、电话、工资,其中,员工号唯一标识员工关系中
的一个元组,岗位有经理、业务员。
(3)客房信息包括客房号(如1301、1302等)、客房类型、收费标准、入住状态(已入住/未入住),其中客房号唯一标识客房关系中的一个元组,不同客房类型具有不同的收费标准。
(4)客户信息包括客户号、单位名称、联系人、联系电话、联系地址,其中客户号唯一标识客户关系中的一个元组。
(5)客户预订客房时,需要填写预订申请。预订申请信息包括申请号、客户号、入住时间、入
3题:阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某游戏公司欲开发一款吃金币游戏。游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙。迷宫中有两种类型的机器人(Robos):小精灵(PacMan)和幽灵(Ghost)。游戏的目的就是控制小精灵在迷宫内游走,吞吃迷宫路径上的金币,且不能被幽灵抓到。幽灵在迷宫中游走,并会吃掉遇到的小精灵。机器人游走时,以单位距离的倍数计算游走路径的长度。当迷宫中至少存在一个小精灵和一个幽灵时,游戏开始。
机器人上有两种传感器,使机器人具有一定的感知能力。这两种传感器分别是:
(1)前向传感器(FrontSensor),探测在机器人当前位置的左边、右边和前方是否有墙(机器人遇到墙时,必须改变游走方向)。机器人根据前向传感器的探测结果,决定朝哪个方向运动。
(2)近距离传感器(ProxiSesor),探测在机器人的视线范围内(正前方)是否存在隐藏的金币或幽灵。近距离传感器并不报告探测到的对象是否正在移动以及朝哪个方向移动。但是如果近距离传感器的连续两次探测结