首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
在包含具有一对多关系的记录的分组的数据访问页上,应按什么分组记录,以提高加载速度
查看本题答案
包含此试题的试卷
中级软件设计师《单项选择》真题及答案
点击查看
你可能感兴趣的试题
当数据访问页包含来自两个表或查询的字段时这些表或查询应具有
一对一关系
一对多关系
多对一关系
多对多关系
在包含具有—对多关系的记录的分组的数据访问页上应按下列选项中的哪一个尽心分组记录以提高加载速度
字段
表
表达式
数据库
使用快速创建数据访问页方式创建的数据访问页页面上的数据都简单的以【6】出现并且没有进行数据分组等信息
创建数据访问页最重要的是要确定
字段的个数
记录的顺序
记录分组
记录的个数
使用向导创建数据访问页时在确定分组级别步骤中最多可设置______个分组字段
创建数据访问页最重要的是要确定
字段的个数
记录的顺序
记录的分组
记录的个数
在包含具有一对多关系的记录的分组的数据访问页上应按下列选项中的哪一个尽心分组记录以提高加载速度
字段
表
表达式
数据库
利用数据访问页向导创建的数据访问页需要确定______分组级别排列顺序数据访问页的标题等内容
用于实现报表的分组统计数据的操作的是
一对多关系
多对多关系
一对一关系
多对一关系
在包含具有一对多关系的记录的分组的数据访问页上应按下列选项中的哪一个来分组记录以提高加载速度
字段
表
表达式
数据库
在数据访问页中用户可以将记录按照从一般类别到特定细目的方式进行分组下列描述中不正确的一项是
按照分组字段中的每个值对记录进行分组
使用表达式对记录进行分组
按照自动编号、货币或数字值对记录进行分组
根据单个字段对记录进行分组
在包含具有一对多关系的记录的分组的数据访问页上应按分组记录以提高加速度
字段
表
表达式
以上都可以
创建数据访问页时应将排序与分组对话框中的数据页大小属性设置为一个值提高数据访问页的性能
较低的
一般的
较高的
任意的
创建数据访问页时应将排序与分组对话框中的数据页大小属性设置为一个什么值才能提高数据访问页的性能
较低的
一般的
较高的
任意的
热门试题
更多
在软件设计和编码过程中采取的做法将使软件更加容易理解和维护
阅读以下说明图和C代码将应填入n处的字句写在对应栏内 [说明] 一般的树结构常采用孩子一兄弟表示法表示即用二叉链表作为树的存储结构链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点例如如图21-6a所示的树的孩子一兄弟表示如图21-6b所示 函数LevelTraverse0的功能是对给定树进行层序遍历例如对如图21-6a所示的树进行层序遍历时结点的访问次序为DBAEFPC 对树进行层序遍历时使用了队列结构实现队列基本操作的函数原型如表21-1所示 表21-1实现队列基本操作的函数原型表 函数原型 说明 VoidInitQueueQueue*Q 初始化队列 BoolIsEmptyQueueQ 判断队列是否为空若是则返回TRUE否则返回FALSE VoidEnQueueQueue*QTreeNodep 元素入队列 VoidDeQueueQueue*QTreeNode*p 元素出队列 BoolStatus类型定义如下 typedefenumFALSE=0TRUE=1Bool typedefenumOVERFLOW=-2UNDERFLOW=-1ERROR=0OK=1Status树的二叉链表结点定义如下 typedefstructNode chardata structNode*fimstchild*nextbrother Node*TreeNode [本题函数] StatusLeveiTraverseTreeNoderoot /*层序遍历树树采用孩子一兄弟表示法root是树根结点的指针*/ QueuetemQ TreeNodeptrbrotherptr if!root returnERROR InitQueue&tempQ 1 brotherptr=root->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 2 /-end-while*/ while3 4 printf"%c/t"ptr->data if5continue 6 brotherptr=ptr->firstchild->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 7 /*end-while*/ /*end-while*/ returnOK /*LevelTraverse*/ 6
阅读下列说明图和C代码将应填入n处的字句写在对应栏内 [说明1] B树是一种多叉平衡查找树一棵m阶的B树或为空树或为满足下列特性的m叉树 ①树中每个结点至多有m棵子树 ②若根结点不是叶子结点则它至少有两棵子树 ③除根之外的所有非叶子结点至少有[m/2]棵子树 ④所有的非叶子结点中包含下列数据信息 nA0K1A1K2A2…K11A11 其中Ki=12…n为关键字且K<Ki+1i=12…n-1Aii=01…n为指向子树根结点的指针且指针Ai-1所指子树中所有结点的关键字均小于KiAi+1所指子树中所有结点的关键字均大于Kin为结点中关键字的数目 ⑤所有的叶子结点都出现在同一层次上并且不带信息可以看作是外部结点或查找失败的结点实际上这些结点不存在指向这些结点的指针为空 例如一棵4阶B树如图21-4所示结点中关键字的数目省略 B树的阶mBool类型关键字类型及B树结点的定义如下 #defineM4/*B树的阶数*/ typedefenumFALSE=0TRUE=1bool typedefintE1emKeyType typedefstructBTreeNode intnumkeys/*结点中关键字的数目*/ structBTreeNode*parent/*指向父结点的指针树根的父结点指针为空*/ StructBTreeNode*A[M]/*指向子树结点的指针数组*/ ElemKeyTypeK[M]/*存储关键字的数组K[0]闲置不用*/ BTreeNode 函数SearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr的功能是在给定的一棵m阶B树中查找关键字akey所在结点若找到则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针参数ptr返回akey所在结点的指针若akey不在该B树中则ptr返回查找失败时空指针所在结点的指针例如在如图21-4所示的4阶B树中查找关键字akey时ptr返回指向结点e的指针 注在结点中查找关键字akey时采用二分法 [本题函数] boolSearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr intlwhikmid BTreeNode*P=root *ptr=NULL whilep lw=1hi=1 whilelw<=hi mid=lw+hi/2 ifp->K[mid]==akey *ptr=p returnTRUE else if2 hi=mid-1 else lw=mid+1 *ptr=p p=3 returnFALSE [说明2] 在m阶B树中插入一个关键字时首先在最接近外部结点的某个非叶子结点中增加一个关键字若该结点中关键字的个数不超过m-1则完成插入否则要进行结点的“分裂”处理所谓“分裂”就是把结点中处于中间位置上的关键字取出来并插入其父结点中然后以该关键字为分界线把原结点分成两个结点“分裂”过程可能会一直持续到树根若树根结点也需要分裂则整棵树的高度增1 例如在如图21-4所示的B树中插入关键字25时需将其插入结点e中由于e中已经有3个关键字因此将关键字24插入结点e的父结点b中并以24为分界线将结点e分裂为e1和e2两个结点结果如图21-5所示 函数IsgrowingBTreeNode*rootElemKeyTypeakey的功能是判断在给定的m阶B树中插入关键字akey后该B树的高度是否增加若增加则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针 在函数Isgrowing中首先调用函数SearchBtree查找关键字akey是否在给定的m阶B树中若在则返回FALSE表明无须插入关键字akey树的高度不会增加否则通过判断结点中关键字的数目考察插入关键字akey后该B树的高度是否增加 [本题函数] boolIsgrowingBTreeNode*rootElenlKeyTypeakey BTreeNode*t*f if!SearchBtree4 t=f while5 t=t->parent if!t returnTRUE:// returnFALSE:// 3
阅读下列说明和C代码将应填入n处的字句写在对应栏内 [说明] 栈Stack结构是计算机语言实现中的一种重要数据结构对于任意栈进行插入和删除操作的一端称为栈顶StackTop而另一端称为栈底StackBottom栈的基本操作包括创建栈NewStack判断栈是否为空IsEmpty判断栈是否已满IsFull获取栈顶数据Top压栈/入栈Push弹栈/出栈Pop 当设计栈的存储结构时可以采取多种方式其中采用链式存储结构实现的栈中各数据项不必连续存储如图21-9所示 以下C代码采用链式存储结构实现一个整数栈操作 [C代码] typedefstructList intdata//栈数据 structList*next//上次入栈的数据地址 List typedefstructStack List*pTop//当前栈顶指针 Stack Stack*NewStackreturnStack*calloc1sizeofStack intIsEmptyStack*S//判断栈S是否为空栈 if1return1 return0 intTopStack*S//获取栈顶数据若栈为空则返回机器可表示的最小整数 ifIsEmptySreturnINT_MIN return2 voidPushStack*SinttheData//将数据theData压栈 List*newNode newNode=List*calloc1sizeofList newNode->data=theData newNode->next=S->pTop S->pTop=3 voidPopStack*S//弹栈 List*lastTop ifIsEmptySreturn lastTop=S->pTop S->pTop=4 freelastTop #defineMDaa<<2 intmain inti Stack*myStack myStack=NewStack PushmyStackMD1 PushmyStackMD2 PopmyStack PushmyStackMD3+1 while!IsEmptymyStack printf"%d"TopmyStack PopmyStack return0 以上程序运行时的输出结果为5 1
阅读下列说明和C代码将应填入n处的字句写在对应栏内 [说明] 栈Stack结构是计算机语言实现中的一种重要数据结构对于任意栈进行插入和删除操作的一端称为栈顶StackTop而另一端称为栈底StackBottom栈的基本操作包括创建栈NewStack判断栈是否为空IsEmpty判断栈是否已满IsFull获取栈顶数据Top压栈/入栈Push弹栈/出栈Pop 当设计栈的存储结构时可以采取多种方式其中采用链式存储结构实现的栈中各数据项不必连续存储如图21-9所示 以下C代码采用链式存储结构实现一个整数栈操作 [C代码] typedefstructList intdata//栈数据 structList*next//上次入栈的数据地址 List typedefstructStack List*pTop//当前栈顶指针 Stack Stack*NewStackreturnStack*calloc1sizeofStack intIsEmptyStack*S//判断栈S是否为空栈 if1return1 return0 intTopStack*S//获取栈顶数据若栈为空则返回机器可表示的最小整数 ifIsEmptySreturnINT_MIN return2 voidPushStack*SinttheData//将数据theData压栈 List*newNode newNode=List*calloc1sizeofList newNode->data=theData newNode->next=S->pTop S->pTop=3 voidPopStack*S//弹栈 List*lastTop ifIsEmptySreturn lastTop=S->pTop S->pTop=4 freelastTop #defineMDaa<<2 intmain inti Stack*myStack myStack=NewStack PushmyStackMD1 PushmyStackMD2 PopmyStack PushmyStackMD3+1 while!IsEmptymyStack printf"%d"TopmyStack PopmyStack return0 以上程序运行时的输出结果为5 3
若一个项目由9个主要任务构成其计划图如下图所示展示了任务之间的前后关系以及每个任务所需天数该项目的关键路径是1完成项目所需的最短时间是2天 1处填
阅读下列说明和C代码将应填入n处的字句写在对应栏内 [说明] 栈Stack结构是计算机语言实现中的一种重要数据结构对于任意栈进行插入和删除操作的一端称为栈顶StackTop而另一端称为栈底StackBottom栈的基本操作包括创建栈NewStack判断栈是否为空IsEmpty判断栈是否已满IsFull获取栈顶数据Top压栈/入栈Push弹栈/出栈Pop 当设计栈的存储结构时可以采取多种方式其中采用链式存储结构实现的栈中各数据项不必连续存储如图21-9所示 以下C代码采用链式存储结构实现一个整数栈操作 [C代码] typedefstructList intdata//栈数据 structList*next//上次入栈的数据地址 List typedefstructStack List*pTop//当前栈顶指针 Stack Stack*NewStackreturnStack*calloc1sizeofStack intIsEmptyStack*S//判断栈S是否为空栈 if1return1 return0 intTopStack*S//获取栈顶数据若栈为空则返回机器可表示的最小整数 ifIsEmptySreturnINT_MIN return2 voidPushStack*SinttheData//将数据theData压栈 List*newNode newNode=List*calloc1sizeofList newNode->data=theData newNode->next=S->pTop S->pTop=3 voidPopStack*S//弹栈 List*lastTop ifIsEmptySreturn lastTop=S->pTop S->pTop=4 freelastTop #defineMDaa<<2 intmain inti Stack*myStack myStack=NewStack PushmyStackMD1 PushmyStackMD2 PopmyStack PushmyStackMD3+1 while!IsEmptymyStack printf"%d"TopmyStack PopmyStack return0 以上程序运行时的输出结果为5 5
风险分析在软件项目开发中具有重要作用包括风险识别风险预测风险评估和风险控制等“建立风险条目检查表”是6时的活动“描述风险的结果”是7时的活动 6处填
阅读以下说明和C语言函数将应填入n处的字句写在对应栏内 [说明] 在一个分布网络中资源石油天然气电力等可从生产地送往其他地方在传输过程中资源会有损耗例如天然气的气压会减少电压会降低我们将需要输送的资源信息称为信号在信号从信源地送往消耗地的过程中仅能容忍一定范围的信号衰减称为容忍值分布网络可表示为一个树形结构如图21-7所示信号源是树根树中的每个结点除了根表示一个可以放置放大器的子结点其中某些结点同时也是信号消耗点信号从一个结点流向其子结点 每个结点有一个d值表示从其父结点到该结点的信号衰减量例如在图21-7中结点wpq的d值分别为213树根结点表示信号源其d值为0 每个结点有一个M值表示从该结点出发到其所有叶子结点的信号衰减量的最大值显然叶子结点的M值为0对于非叶子结点jM[j=maxMk+dkk是j的孩子结点在此公式中要计算结点的M值必须先算出其所有子结点的M值 在计算M值的过程中对于某个结点i其有一个子结点k满足dk+Mk大于容忍值则应在k处放置放大器否则从结点i到某叶子结点的信号衰减量会超过容忍值使得到达该叶子结点时信号不可用而在结点i处放置放大器并不能解决到达叶子结点的信号衰减问题 例如在图21-7中从结点p到其所有叶子结点的最大衰减值为4若容忍值为3则必须在s处放置信号放大器这样可使得结点p的M值为2同样需要在结点qv处放置信号放大器如图21-8中阴影结点所示若在某结点放置了信号放大器则从该结点输出的信号与信号源输出的信号等价 函数placeBoostersTreeNode*root的功能是对于给定树形分布网络中各个结点计算其信号衰减量的最大值并确定应在树中的哪些结点放置信号放大器 全局变量Tolerance保存信号衰减容忍值 树的结点类型定义如下 typedefstructTreeNDde intid/*当前结点的识别号*/ intchildNum/*当前结点的子结点数目*/ intd/*父结点到当前结点的信号衰减值*/ structTreeNde**childptr/*向量存放当前结点到其所有子结点的指针*/ intM/*当前结点到其所有子结点的信号衰减值中的最大值*/ boolboost/*是否在当前结点放置信号放大器的标志*/ TreeNode [C语言函数] voidplaceB00stersTreeNode*root /*计算root所指结点处的衰减量如果衰减量超出了容忍值则放置放大器*/ TreeNode*p intidegradation if1 degradation=0root->M=0 i=0 ifi>=root->ChildNum return p=2 fori<root->ChildNum&&pi++p=3 p->M=0 4 ifp->d+p->M>Tolerance/*在p所指结点中放置信号放大器*/ p->Doost=true p->M=0 ifp->d+p->M>degradation degradation=p->d+p->M root->M=5 1
软件风险一般包含两个特性
软件测试是软件开发中不可缺少的活动通常21在代码编写阶段进行检查软件的功能是否与用户要求一致是22的任务 22处填
系统的可维护性可以用系统的可维护性评价指标来衡量系统的可维护性评价指标不包括
某项目制定的开发计划中定义了3个任务其中任务A首先开始且需要3周完成任务B必须在任务A启动1周后开始且需要2周完成任务C必须在任务A完成后才能开始且需要2周完成该项目的进度安排可用下面的甘特图来描述
阅读下列说明图和C代码将应填入n处的字句写在对应栏内 [说明1] B树是一种多叉平衡查找树一棵m阶的B树或为空树或为满足下列特性的m叉树 ①树中每个结点至多有m棵子树 ②若根结点不是叶子结点则它至少有两棵子树 ③除根之外的所有非叶子结点至少有[m/2]棵子树 ④所有的非叶子结点中包含下列数据信息 nA0K1A1K2A2…K11A11 其中Ki=12…n为关键字且K<Ki+1i=12…n-1Aii=01…n为指向子树根结点的指针且指针Ai-1所指子树中所有结点的关键字均小于KiAi+1所指子树中所有结点的关键字均大于Kin为结点中关键字的数目 ⑤所有的叶子结点都出现在同一层次上并且不带信息可以看作是外部结点或查找失败的结点实际上这些结点不存在指向这些结点的指针为空 例如一棵4阶B树如图21-4所示结点中关键字的数目省略 B树的阶mBool类型关键字类型及B树结点的定义如下 #defineM4/*B树的阶数*/ typedefenumFALSE=0TRUE=1bool typedefintE1emKeyType typedefstructBTreeNode intnumkeys/*结点中关键字的数目*/ structBTreeNode*parent/*指向父结点的指针树根的父结点指针为空*/ StructBTreeNode*A[M]/*指向子树结点的指针数组*/ ElemKeyTypeK[M]/*存储关键字的数组K[0]闲置不用*/ BTreeNode 函数SearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr的功能是在给定的一棵m阶B树中查找关键字akey所在结点若找到则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针参数ptr返回akey所在结点的指针若akey不在该B树中则ptr返回查找失败时空指针所在结点的指针例如在如图21-4所示的4阶B树中查找关键字akey时ptr返回指向结点e的指针 注在结点中查找关键字akey时采用二分法 [本题函数] boolSearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr intlwhikmid BTreeNode*P=root *ptr=NULL whilep lw=1hi=1 whilelw<=hi mid=lw+hi/2 ifp->K[mid]==akey *ptr=p returnTRUE else if2 hi=mid-1 else lw=mid+1 *ptr=p p=3 returnFALSE [说明2] 在m阶B树中插入一个关键字时首先在最接近外部结点的某个非叶子结点中增加一个关键字若该结点中关键字的个数不超过m-1则完成插入否则要进行结点的“分裂”处理所谓“分裂”就是把结点中处于中间位置上的关键字取出来并插入其父结点中然后以该关键字为分界线把原结点分成两个结点“分裂”过程可能会一直持续到树根若树根结点也需要分裂则整棵树的高度增1 例如在如图21-4所示的B树中插入关键字25时需将其插入结点e中由于e中已经有3个关键字因此将关键字24插入结点e的父结点b中并以24为分界线将结点e分裂为e1和e2两个结点结果如图21-5所示 函数IsgrowingBTreeNode*rootElemKeyTypeakey的功能是判断在给定的m阶B树中插入关键字akey后该B树的高度是否增加若增加则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针 在函数Isgrowing中首先调用函数SearchBtree查找关键字akey是否在给定的m阶B树中若在则返回FALSE表明无须插入关键字akey树的高度不会增加否则通过判断结点中关键字的数目考察插入关键字akey后该B树的高度是否增加 [本题函数] boolIsgrowingBTreeNode*rootElenlKeyTypeakey BTreeNode*t*f if!SearchBtree4 t=f while5 t=t->parent if!t returnTRUE:// returnFALSE:// 5
阅读以下说明和C代码将应填入n处的字句写在对应栏内[说明]在一个简化的绘图程序中支持的图形种类有点point和圆ckcle在设计过程中采用面向对象思想认为所有的点和圆都是一种图形shape并定义了类型shape_tpoint_t和circle_t分别表示基本图形点和圆并且点和圆具有基本图形的所有特征[C代码]typedefenumpointcircleshape_type/*程序中的两种图形点和圆*/typedefstruct/*基本的图形类型*/shape_typetype/*图形种类标识点或者圆*/void*destroy/*销毁图形操作的函数指针*/void*draw/*绘制图形操作的函数指针*/shape_ttypedefstructshape_tcommonintxintypoint_t/*定义点类型xy为点坐标*/voiddestroyPointpoint_t*thisfreethisprintfPointdestoryed!/n/*销毁点对象*/voiddrawPointpoint_t*thisprintfP%d%dthis->xthis->y/*绘制点对象*/shape_t*createPointva_list*ap/*创建点对象并设置其属性*/point_t*p_pointifp_point=point_t*mallocsizeofpoint_t==NULLreturnNULLp_point->common.type=pointp_point->common.destroy=destroyPointp_point->common.draw=drawPointp_point->x=va_arg*apint/*设置点的横坐标*/p_point->y=va_arg*apint/*设置点的纵坐标*/returnshape_t*p_point/*返回点对象指针*/typedefstruct/*定义圆类型*/shape_tcommonpoint_t*center/*圆心点*/intradius/*圆半径*/circle_tvoiddestroyCircleCircle_t*thisfree1freethisprintfCircledestoryed!/nvoiddrawCircleCircle_t*thisprintf<C<>2.drawthis->center/*绘制圆心*/printf.%dthis->radiusshape_t*createCircleva_list*ap/*创建一个圆并设置其属性*/Circle_t*p_circleifp_circle=circle_t*mallocSizeofcircle_t==NULLreturnNULLp_circle->common.type=circlep_circle->common.destroy=destroyCirclep_circle->common.draw=drawCircle3=createPointap/*设置圆心*/p_circle->radius=va_arg*apint/*设置圆半径*/returnp_circleshape_t*createShapeshape_typest/*创建某一种具体的图形*/va_listap/*可变参数列表*/shape_t*p_shape=NULL4apstifst==pointp_shape=createPoint&ap/*创建点对象*/ifst==circlep_shape=createCircle&ap/*创建圆对象*/va_endapreturnp_shapeintmaininti/*循环控制变量用于循环计数*/shape_t*shapes[2]/*图形指针数组存储图形的地址*/shapes[0]=createShapepoint23/*横坐标为2纵坐标为3*/shapes[1]=createShapeCircle204010/*圆心坐标为2040半径为10*/fori=0i<2i++shapes[i]->drawshapes[i]printf/n/*绘制数组中图形*/fori=1i>=0i--shapes[i]->destroyshapes[i]/*销毁数组中图形*/return0[运行结果]P235Circledestoryed!Pointdestoryed!
阅读下列说明图和C代码将应填入n处的字句写在对应栏内 [说明1] B树是一种多叉平衡查找树一棵m阶的B树或为空树或为满足下列特性的m叉树 ①树中每个结点至多有m棵子树 ②若根结点不是叶子结点则它至少有两棵子树 ③除根之外的所有非叶子结点至少有[m/2]棵子树 ④所有的非叶子结点中包含下列数据信息 nA0K1A1K2A2…K11A11 其中Ki=12…n为关键字且K<Ki+1i=12…n-1Aii=01…n为指向子树根结点的指针且指针Ai-1所指子树中所有结点的关键字均小于KiAi+1所指子树中所有结点的关键字均大于Kin为结点中关键字的数目 ⑤所有的叶子结点都出现在同一层次上并且不带信息可以看作是外部结点或查找失败的结点实际上这些结点不存在指向这些结点的指针为空 例如一棵4阶B树如图21-4所示结点中关键字的数目省略 B树的阶mBool类型关键字类型及B树结点的定义如下 #defineM4/*B树的阶数*/ typedefenumFALSE=0TRUE=1bool typedefintE1emKeyType typedefstructBTreeNode intnumkeys/*结点中关键字的数目*/ structBTreeNode*parent/*指向父结点的指针树根的父结点指针为空*/ StructBTreeNode*A[M]/*指向子树结点的指针数组*/ ElemKeyTypeK[M]/*存储关键字的数组K[0]闲置不用*/ BTreeNode 函数SearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr的功能是在给定的一棵m阶B树中查找关键字akey所在结点若找到则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针参数ptr返回akey所在结点的指针若akey不在该B树中则ptr返回查找失败时空指针所在结点的指针例如在如图21-4所示的4阶B树中查找关键字akey时ptr返回指向结点e的指针 注在结点中查找关键字akey时采用二分法 [本题函数] boolSearchBtreeBTreeNode*rootElemKeyTypeakeyBTreeNode**ptr intlwhikmid BTreeNode*P=root *ptr=NULL whilep lw=1hi=1 whilelw<=hi mid=lw+hi/2 ifp->K[mid]==akey *ptr=p returnTRUE else if2 hi=mid-1 else lw=mid+1 *ptr=p p=3 returnFALSE [说明2] 在m阶B树中插入一个关键字时首先在最接近外部结点的某个非叶子结点中增加一个关键字若该结点中关键字的个数不超过m-1则完成插入否则要进行结点的“分裂”处理所谓“分裂”就是把结点中处于中间位置上的关键字取出来并插入其父结点中然后以该关键字为分界线把原结点分成两个结点“分裂”过程可能会一直持续到树根若树根结点也需要分裂则整棵树的高度增1 例如在如图21-4所示的B树中插入关键字25时需将其插入结点e中由于e中已经有3个关键字因此将关键字24插入结点e的父结点b中并以24为分界线将结点e分裂为e1和e2两个结点结果如图21-5所示 函数IsgrowingBTreeNode*rootElemKeyTypeakey的功能是判断在给定的m阶B树中插入关键字akey后该B树的高度是否增加若增加则返回TRUE否则返回FALSE其中root是指向该m阶B树根结点的指针 在函数Isgrowing中首先调用函数SearchBtree查找关键字akey是否在给定的m阶B树中若在则返回FALSE表明无须插入关键字akey树的高度不会增加否则通过判断结点中关键字的数目考察插入关键字akey后该B树的高度是否增加 [本题函数] boolIsgrowingBTreeNode*rootElenlKeyTypeakey BTreeNode*t*f if!SearchBtree4 t=f while5 t=t->parent if!t returnTRUE:// returnFALSE:// 1
阅读以下说明图和C代码将应填入n处的字句写在对应栏内 [说明] 一般的树结构常采用孩子一兄弟表示法表示即用二叉链表作为树的存储结构链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点例如如图21-6a所示的树的孩子一兄弟表示如图21-6b所示 函数LevelTraverse0的功能是对给定树进行层序遍历例如对如图21-6a所示的树进行层序遍历时结点的访问次序为DBAEFPC 对树进行层序遍历时使用了队列结构实现队列基本操作的函数原型如表21-1所示 表21-1实现队列基本操作的函数原型表 函数原型 说明 VoidInitQueueQueue*Q 初始化队列 BoolIsEmptyQueueQ 判断队列是否为空若是则返回TRUE否则返回FALSE VoidEnQueueQueue*QTreeNodep 元素入队列 VoidDeQueueQueue*QTreeNode*p 元素出队列 BoolStatus类型定义如下 typedefenumFALSE=0TRUE=1Bool typedefenumOVERFLOW=-2UNDERFLOW=-1ERROR=0OK=1Status树的二叉链表结点定义如下 typedefstructNode chardata structNode*fimstchild*nextbrother Node*TreeNode [本题函数] StatusLeveiTraverseTreeNoderoot /*层序遍历树树采用孩子一兄弟表示法root是树根结点的指针*/ QueuetemQ TreeNodeptrbrotherptr if!root returnERROR InitQueue&tempQ 1 brotherptr=root->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 2 /-end-while*/ while3 4 printf"%c/t"ptr->data if5continue 6 brotherptr=ptr->firstchild->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 7 /*end-while*/ /*end-while*/ returnOK /*LevelTraverse*/ 2
阅读以下说明和C代码将应填入n处的字句写在对应栏内[说明]在一个简化的绘图程序中支持的图形种类有点point和圆ckcle在设计过程中采用面向对象思想认为所有的点和圆都是一种图形shape并定义了类型shape_tpoint_t和circle_t分别表示基本图形点和圆并且点和圆具有基本图形的所有特征[C代码]typedefenumpointcircleshape_type/*程序中的两种图形点和圆*/typedefstruct/*基本的图形类型*/shape_typetype/*图形种类标识点或者圆*/void*destroy/*销毁图形操作的函数指针*/void*draw/*绘制图形操作的函数指针*/shape_ttypedefstructshape_tcommonintxintypoint_t/*定义点类型xy为点坐标*/voiddestroyPointpoint_t*thisfreethisprintfPointdestoryed!/n/*销毁点对象*/voiddrawPointpoint_t*thisprintfP%d%dthis->xthis->y/*绘制点对象*/shape_t*createPointva_list*ap/*创建点对象并设置其属性*/point_t*p_pointifp_point=point_t*mallocsizeofpoint_t==NULLreturnNULLp_point->common.type=pointp_point->common.destroy=destroyPointp_point->common.draw=drawPointp_point->x=va_arg*apint/*设置点的横坐标*/p_point->y=va_arg*apint/*设置点的纵坐标*/returnshape_t*p_point/*返回点对象指针*/typedefstruct/*定义圆类型*/shape_tcommonpoint_t*center/*圆心点*/intradius/*圆半径*/circle_tvoiddestroyCircleCircle_t*thisfree1freethisprintfCircledestoryed!/nvoiddrawCircleCircle_t*thisprintf<C<>2.drawthis->center/*绘制圆心*/printf.%dthis->radiusshape_t*createCircleva_list*ap/*创建一个圆并设置其属性*/Circle_t*p_circleifp_circle=circle_t*mallocSizeofcircle_t==NULLreturnNULLp_circle->common.type=circlep_circle->common.destroy=destroyCirclep_circle->common.draw=drawCircle3=createPointap/*设置圆心*/p_circle->radius=va_arg*apint/*设置圆半径*/returnp_circleshape_t*createShapeshape_typest/*创建某一种具体的图形*/va_listap/*可变参数列表*/shape_t*p_shape=NULL4apstifst==pointp_shape=createPoint&ap/*创建点对象*/ifst==circlep_shape=createCircle&ap/*创建圆对象*/va_endapreturnp_shapeintmaininti/*循环控制变量用于循环计数*/shape_t*shapes[2]/*图形指针数组存储图形的地址*/shapes[0]=createShapepoint23/*横坐标为2纵坐标为3*/shapes[1]=createShapeCircle204010/*圆心坐标为2040半径为10*/fori=0i<2i++shapes[i]->drawshapes[i]printf/n/*绘制数组中图形*/fori=1i>=0i--shapes[i]->destroyshapes[i]/*销毁数组中图形*/return0[运行结果]P235Circledestoryed!Pointdestoryed!
阅读以下说明和C语言函数将应填入n处的字句写在对应栏内 [说明] 在一个分布网络中资源石油天然气电力等可从生产地送往其他地方在传输过程中资源会有损耗例如天然气的气压会减少电压会降低我们将需要输送的资源信息称为信号在信号从信源地送往消耗地的过程中仅能容忍一定范围的信号衰减称为容忍值分布网络可表示为一个树形结构如图21-7所示信号源是树根树中的每个结点除了根表示一个可以放置放大器的子结点其中某些结点同时也是信号消耗点信号从一个结点流向其子结点 每个结点有一个d值表示从其父结点到该结点的信号衰减量例如在图21-7中结点wpq的d值分别为213树根结点表示信号源其d值为0 每个结点有一个M值表示从该结点出发到其所有叶子结点的信号衰减量的最大值显然叶子结点的M值为0对于非叶子结点jM[j=maxMk+dkk是j的孩子结点在此公式中要计算结点的M值必须先算出其所有子结点的M值 在计算M值的过程中对于某个结点i其有一个子结点k满足dk+Mk大于容忍值则应在k处放置放大器否则从结点i到某叶子结点的信号衰减量会超过容忍值使得到达该叶子结点时信号不可用而在结点i处放置放大器并不能解决到达叶子结点的信号衰减问题 例如在图21-7中从结点p到其所有叶子结点的最大衰减值为4若容忍值为3则必须在s处放置信号放大器这样可使得结点p的M值为2同样需要在结点qv处放置信号放大器如图21-8中阴影结点所示若在某结点放置了信号放大器则从该结点输出的信号与信号源输出的信号等价 函数placeBoostersTreeNode*root的功能是对于给定树形分布网络中各个结点计算其信号衰减量的最大值并确定应在树中的哪些结点放置信号放大器 全局变量Tolerance保存信号衰减容忍值 树的结点类型定义如下 typedefstructTreeNDde intid/*当前结点的识别号*/ intchildNum/*当前结点的子结点数目*/ intd/*父结点到当前结点的信号衰减值*/ structTreeNde**childptr/*向量存放当前结点到其所有子结点的指针*/ intM/*当前结点到其所有子结点的信号衰减值中的最大值*/ boolboost/*是否在当前结点放置信号放大器的标志*/ TreeNode [C语言函数] voidplaceB00stersTreeNode*root /*计算root所指结点处的衰减量如果衰减量超出了容忍值则放置放大器*/ TreeNode*p intidegradation if1 degradation=0root->M=0 i=0 ifi>=root->ChildNum return p=2 fori<root->ChildNum&&pi++p=3 p->M=0 4 ifp->d+p->M>Tolerance/*在p所指结点中放置信号放大器*/ p->Doost=true p->M=0 ifp->d+p->M>degradation degradation=p->d+p->M root->M=5 3
RUP在每个阶段都有主要目标并在结束时产生一些制品在结束时产生在适当的平台上集成的软件产品
软件复杂性度量的参数不包括
在模拟环境下常采用黑盒测试检验所开发的软件是否与需求规格说明书一致其中有效性模测试属于中的一个步骤
阅读以下说明和C语言函数将应填入n处的字句写在对应栏内 [说明] 在一个分布网络中资源石油天然气电力等可从生产地送往其他地方在传输过程中资源会有损耗例如天然气的气压会减少电压会降低我们将需要输送的资源信息称为信号在信号从信源地送往消耗地的过程中仅能容忍一定范围的信号衰减称为容忍值分布网络可表示为一个树形结构如图21-7所示信号源是树根树中的每个结点除了根表示一个可以放置放大器的子结点其中某些结点同时也是信号消耗点信号从一个结点流向其子结点 每个结点有一个d值表示从其父结点到该结点的信号衰减量例如在图21-7中结点wpq的d值分别为213树根结点表示信号源其d值为0 每个结点有一个M值表示从该结点出发到其所有叶子结点的信号衰减量的最大值显然叶子结点的M值为0对于非叶子结点jM[j=maxMk+dkk是j的孩子结点在此公式中要计算结点的M值必须先算出其所有子结点的M值 在计算M值的过程中对于某个结点i其有一个子结点k满足dk+Mk大于容忍值则应在k处放置放大器否则从结点i到某叶子结点的信号衰减量会超过容忍值使得到达该叶子结点时信号不可用而在结点i处放置放大器并不能解决到达叶子结点的信号衰减问题 例如在图21-7中从结点p到其所有叶子结点的最大衰减值为4若容忍值为3则必须在s处放置信号放大器这样可使得结点p的M值为2同样需要在结点qv处放置信号放大器如图21-8中阴影结点所示若在某结点放置了信号放大器则从该结点输出的信号与信号源输出的信号等价 函数placeBoostersTreeNode*root的功能是对于给定树形分布网络中各个结点计算其信号衰减量的最大值并确定应在树中的哪些结点放置信号放大器 全局变量Tolerance保存信号衰减容忍值 树的结点类型定义如下 typedefstructTreeNDde intid/*当前结点的识别号*/ intchildNum/*当前结点的子结点数目*/ intd/*父结点到当前结点的信号衰减值*/ structTreeNde**childptr/*向量存放当前结点到其所有子结点的指针*/ intM/*当前结点到其所有子结点的信号衰减值中的最大值*/ boolboost/*是否在当前结点放置信号放大器的标志*/ TreeNode [C语言函数] voidplaceB00stersTreeNode*root /*计算root所指结点处的衰减量如果衰减量超出了容忍值则放置放大器*/ TreeNode*p intidegradation if1 degradation=0root->M=0 i=0 ifi>=root->ChildNum return p=2 fori<root->ChildNum&&pi++p=3 p->M=0 4 ifp->d+p->M>Tolerance/*在p所指结点中放置信号放大器*/ p->Doost=true p->M=0 ifp->d+p->M>degradation degradation=p->d+p->M root->M=5 5
软件文档按照其产生和使用的范围可分为开发文档管理文档和用户文档其中开发文档不包括
在软件开发过程中进行风险分析时活动目的是辅助项目组建立处理风险的策略有效的策略应考虑风险避免风险监控风险管理及意外事件计划
McCabe度量法是通过定义环路复杂度建立程序复杂性的度量它基于一个程序模块的程序图中环路的个数计算有向图G的环路复杂性的公式为VG=m-n+2其中VG是有向图G中的环路个数m是G中的有向弧数n是G中的节点数如图所示程序图的程序复杂度是
确定构建软件系统所需要的人数时无需考虑
阅读以下说明图和C代码将应填入n处的字句写在对应栏内 [说明] 一般的树结构常采用孩子一兄弟表示法表示即用二叉链表作为树的存储结构链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点例如如图21-6a所示的树的孩子一兄弟表示如图21-6b所示 函数LevelTraverse0的功能是对给定树进行层序遍历例如对如图21-6a所示的树进行层序遍历时结点的访问次序为DBAEFPC 对树进行层序遍历时使用了队列结构实现队列基本操作的函数原型如表21-1所示 表21-1实现队列基本操作的函数原型表 函数原型 说明 VoidInitQueueQueue*Q 初始化队列 BoolIsEmptyQueueQ 判断队列是否为空若是则返回TRUE否则返回FALSE VoidEnQueueQueue*QTreeNodep 元素入队列 VoidDeQueueQueue*QTreeNode*p 元素出队列 BoolStatus类型定义如下 typedefenumFALSE=0TRUE=1Bool typedefenumOVERFLOW=-2UNDERFLOW=-1ERROR=0OK=1Status树的二叉链表结点定义如下 typedefstructNode chardata structNode*fimstchild*nextbrother Node*TreeNode [本题函数] StatusLeveiTraverseTreeNoderoot /*层序遍历树树采用孩子一兄弟表示法root是树根结点的指针*/ QueuetemQ TreeNodeptrbrotherptr if!root returnERROR InitQueue&tempQ 1 brotherptr=root->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 2 /-end-while*/ while3 4 printf"%c/t"ptr->data if5continue 6 brotherptr=ptr->firstchild->nextbrother whilebrotherptr EnQueue&tempQbrotherptr 7 /*end-while*/ /*end-while*/ returnOK /*LevelTraverse*/ 4
某项目组拟开发一个大规模系统且具备了相关领域及类似规模系统的开发经验下列过程模型中最适合开发此项目
某公司采用的软件开发过程通过了CMM2认证表明该公司
热门题库
更多
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术