题目
阅读以下说明、C函数和问题,将解答填入答题纸的对应栏内。
【说明】
二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:
●若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;
●若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;
●左、右子树本身就是二叉查找树。
设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:
typedefstructBiTnode{
intkey_value;/*结点的键值,为非负整数*/
structBiTnode*left,*right;/*结点的左、右子树指针*/
}*BSTree;
函数find_key(root,key)的功能是用递归方式在给定的二叉查找树(root指向根结点)中查找键值为key的结点并返回结点的指针;若找不到,则返回空指针。
【函数】
BSTreefind_key(BSTreeroot,intkey)
{
if((1))
returnNULL;
else
if(key==root->key_value)
return(2);
elseif(keykey_value)
return(3);
else
return(4);
}
【问题1】
请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。
【问题2】
若某二叉查找树中有n个结点,则查找一个给定关键字时,需要比较的结点个数取决于(5).
第1题
阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。
[说明] 现有如下关系模式:R(A,B,C,DE),其中,A,B为组合键,R上存在的函数依赖有(A ,B) →E,B→C,C→D
该关系模式满足2NF吗?为什么?
第2题
阅读以下说明,回答问题1~3,将解答填入对应的解答栏内。
[说明] 现有两个应用,涉及到两个关系模式:
R1 (A,A1,A3,B,D1),其上的函数依赖F={A→A1,A→A2,A→A3,(A,B)→D1}
R2 (B,B1,B2),其上的函数依赖F={B →B1,B→B2}
如果将上述应用的数据库设计成如下关系模式;
RS(A,A1,A2,A3,B,B1,B2,D1),请指出该关系模式的候选键。
第3题
试题二(15分)
阅读以下说明,请回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某系统集成项目的建设方要求必须按合同规定的期限交付系统,承建方项目经理李某决定严格执行项目进度管理,以保证项目按期完成。他决定使用关键路径法来编制项目进度网络图。在对工作分解结构进行认真分析后,李某得到一张包含了活动先后关系和每项活动初步历时估计的工作列表,如下所示:
[问题1](5分)
(1)请计算活动B、C、F的自由浮动时间。
(2)请计算活动D、G的最迟开始时间。
[问题2] (4分)
如果活动B拖延了4天,则该项目的工期会拖延几天?请说明理由。
[问题3](6分)
按照题干所述,李某实际完成了项目进度管理的什么过程?如果要进行有效的项目进度管理,还要完成哪些过程?
第4题
试题二 (共15 分)
阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。
【 问题1 】
分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。
【C程序】
【 问题2】
函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。
请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。
【C 函数】
第5题
阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。
[说明] 编写一个函数根据用户输入的偶对(以输入。表示结束)建立其有向图的邻接表。一个图的邻接表存储结构定义如下:
include < stdio. h >
define MAXVEX 30
struct edgenode
{
int adjvex;
char info;
struct edgenode * next;
}
struct vexnode
{
char data;
struct edgenode * link;
}
typedef struct vexnode adjlist [MAXVEX];
实现要求的函数如下:
void creatadjlist (adjlist g)
{
int i, j, k;
street vexnode * s;
for(k=1; k< =n; k+ +)
{
(1)
g [k]. link = NULL;
}
printf (“输一个对:” );
scanf ("%d, %d", &i, &j);
while (2)
{
(3)
s- >adjvex =j;
(4)
g [i].link =s;
(5)
}
}
第6题
阅读以下说明和流程图,回答问题将解答填入对应栏。
[说明]
本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。
注:int min(int X,int y)为返回两数中最小数的函数。
int minInArray(int a[],int n)为返回数组中最小数的函数。
minA为数组中最小值。
[问题l]
将流程图的(1)~(4)处补充完整。
[问题2]
min()函数的定义为(5)。
第7题
阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。
[说明] 假设二叉树采用连接存储结构进行存储,root 指向根接点,p 所指结点为任一给定的结点,编写一个求从根结点到p所指结点之间路径的函数。
void path (root, p)
btree * root, * p;
{
Btree *stack[m0], *s;
int tag[m0], top =0, i, find =0;
s =root;
do
{
while (s ! = NULL)
{
stack [top] = s;
tag[top] =0;
((1))
}
if (top >0)
{
((2))
if (tag[top] = =1)
{
if((3))
{
for (i=1; i< =top; i+ + printf ("%d" ,stack[i]- >data);
find=1;
}
else top - -;
}
if((4))
{
p=p- >right;
((5))
}
}
} while (find || (s! = NULL && top ! =0));
}
第8题
试题五(共15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。
【说明】
某网站登录系统采用MD5对用户信息进行认证,用户登录界面为login.html, error.asp
用于显示登陆出错信息,list.asp用于显示正确登录后页面。
【login.html文档的内容】
<html>
<head>
<title>用户登录界面</title>
</head>
<body>
<center>
<form. action="login.asp" method="post">
<p>用户名:<input type=text name="userid"></p>
<p>密码:<input type= password name="passwd"></p>
</p>
<p><input type="submit" value=”用户登录”></p>
</form>
</center>
</body>
</html>
【login.asp文档的内容】
<!--#include file="md5.asp"-->
<%
Set cnn=Server.CreateObject("ADODB.Connection")
Set rec=Server.CreateObj ect("ADODB.Recordset")
cnn. (1) ="DriveF{Microsoft Access Driver(*. (2) )};Uid=;Pwd=;DBQ="&
Server.MapPath("user.mdb")
cnn.open0
userid_ md5=Md5(trim(Request. (3) ("userid"》)
password_md5=Md5(trim(Request. (3) ("passwd"》)
dim rsql
rsql ="Select* From userinfo Where userid="'&userid md5&"'And
passwd="'&password- md5&""'
rec.open rsql, (4) ,3,2
ifrec.(5) >0 then
(6) .redirect” (7 ) "
else
(6) .redirect” (8) ”
end if
%l>
【问题1】(9分)
从以下备选答案内为程序中(1)~(6)处空缺选择正确答案,并填入答题纸对应的
解答栏内。
(1)~(6)备选答案:
A. connection B.close C.Recordcount D. Form
E. Open F.mdb G. Execute H. response
I.MapPath j.redirect K. ConnectionString L. cnn
【问题2】(4分)
请为程序(7)~(8)填写正确答案,并填入答题纸对应的解答栏内。
【问题3】(2分)
在以上网页中应用了许多函数或方法,其中属于用户自定义的是 (9) 。
(9)备选答案:
A. Server.CreateObject
B.MD5
C. Server.MapPath
D. Trim
第9题
阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。
[说明] 若s和t是用单链表存储的两个串,设计一个函数将s串中首次与串t匹配的字串逆置。
linkstring * invert - substring (s, t)
linkstring * s, * t;
{
linkstring *prior, *p, *t1, *r, *q, *u;
prior =s;
p=s;
t1 =t;
if ((1) ) printf ("error\n") ;
else
{
while { p ! = NULL && t1! = NULL)
{
if (p- >data = = t1 - >data)
{
p = p- >link;
t1 = t1- >link;
}
else
{
(2)
p = prior - > link;
}
t1 = t- >link;
}
if (t1 ! : NULL) printf ("cannot find");
else
{
(3)
r = q- >link;
q- >link = p;
while (r ! = p)
{
u = r- >link;
(4)
q=r;
r = u;
}
(5)
}
}
}
第10题
试题 二(15分)
阅读以下说明,请回答问题1至问题3,将解答或相应的编号填入答题纸的对应栏内。
某大楼布线工程基本情况为:一层到四层,必须在低层完成后才能进行高层布线。每层工作量完全相同。项目经理根据现有人员和工作任务,预计每层需要一天完成。项目经理编制了该项目的布线进度计划,并在3月18号工作时间结束后对工作完成情况进行了绩效评估,如下表所示:
【问题1】(5分)
请计算2011年3月18日时对应的PV、EV、AC、CPI和SPI。
【问题2】(4分)
(1)根据当前绩效,在下图中划出AC和EV曲线。(2分)
(2)分析当前的绩效,并指出绩效改进的具体措施。(2分)
【问题3】(6分)
(1)如果在2011年3月18日绩效评估后,找到了影响绩效的原因,并纠正了项目偏差,请计算ETC和EAC,并预测此种情况下的完工日期。(3分)
(2)如果在2011年3月18日绩效评估后,未进行原因分析和采取相关措施,仍按目前状态开展工作,请计算ETC和EAC,并预测此种情况下的完工日期。(3分)
第11题
阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。
【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!