首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
已知一个线性表(16,25,35,43,51,62,87,93),采用散列函数H(Key)=Key mod 7将元素散列到表长为9的散列表中。若采用线性探测的开放定址法解决冲突(顺序地探查可用存储单元...
查看本题答案
包含此试题的试卷
中级软件设计师《单选题》真题及答案
点击查看
你可能感兴趣的试题
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
A
B
C
D
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(5*1+2+3+6)/8
(5*1+2+3+6)/9
(8*1)/8
(8*1)/9
已知一个有序线性表为131824354750628390115134当户分法查找值为90的元素时查找
1
2
3
9
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(1)
(2)
(3)
(4)
已知一个有序线性表为131824354750628390115134当用二分法查找值为90的元素时查
1
2
3
9
已知一个有序线性表为131824354750628390115134当用二分法查找值为90的元素时查
1
2
3
9
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
A
B
C
D
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(5*1+2+3+6)/8
(5*1+2+3+6)/9
(8*1)/8
(8*1)/9
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(5*1+2+3+6)/8
(5*1+2+3+6)/9
(8*1)/8
(8*1)/9
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
A
B
C
D
热门试题
更多
阅读下列说明和E-R图回答问题1至问题3将解答填入对应栏内 [说明] 设有下列关于学生成绩管理系统的E-R图见图2-1图中矩形表示实体圆表示属性双圆表示关键字属性菱形表示实体间的联系假定已通过下列SQL语言建立了基本表 CREATETABLESTUDENTSNoCHAR6NOTNULLUNIQUE SNameCHAR20 SexCHAR1 DeptCHAR20 AgeSMALLINT CREATETABLECOURSECNoCHAR6NOTNULLUNIQUE CNameCHAR20 HourSMALLINT CreditSMALLINT CREATETABLESCSNoCHAR6 CNoCHAR6 GRADESMALLINT PRIMARYKEYSNoCNo 为了答题的方便图中的实体和属性同时给出了中英文两种名字回答问题时只须写出英文名即可 填充下列SQL程序5.1~5.4中的1~6使它们分别完成以下查询功能 程序5.1检索选修所有课程的学生姓名 程序5.2给出全体学生人数 程序5.3按学号给出每个学生的平均成绩 程序5.4按学号给出每个学生选修课程的门数 [程序5.1] SELECTSNameFROMSTUDENTWHERE1 SELECTFROMCOURSEWHERE2 SELECT*FROMSCWHERE3 [程序5.2] SELECT4FROMSTUDENT [程序5.3] SELECT5FROMSCGROUPBYSNO [程序5.4] SELECT6FROMSCGROUPBYSNO 5处填
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 下面程序用来将打乱的单词还原为原来的次序比如将rty还原为try单词的原来次序存储于wordlist.txt文件中原则上可用穷举法rty对应的穷举为rtyryttrytyrytryrt但考虑到破译速度采用如下方法 注意到单词列表中不存在组成字符完全相同的单词如Hack12与Hack21包含完全相同的字符因此将单词中的字符进行重组再进行比较例如try单词重组为rty按ASCⅡ码顺序这样不管打乱的单词是什么顺序只要是由rty三个字母组成的均破译为try大大提高破译速度程序中借助二叉排序树以进一步提高查找效率二叉排序树左子树如果有上的节点对应的值均小于根节点的值右子树如果有上的节点对应的值均大于根节点的值 函数中使用的符号定义如下 #defineNumberofWords1275//单词总数 #defineMaxLength10//最长单词所含字符数 charWordList[NumberofWords][MaxLength]//存储单词列表 intcmpNode*qNode*p//q与p比较p小返回负值P大返回正值相等返回0 typedefstructNode//二叉树节点 char*eleLetters//重组后的字符串 intindex//对应单词表中的下标 structNode*lChiId*rChiid//左右子节点 }Node [C代码] voidreComposeNode*pchar*temp //重纰亦即将temp字符串中的字符升序排序存储于p节点中 //采用直接插入排序法 { charc strcpyp->eleLetterstemp// intlen=strlentemp intijk fori=0i<len-1i++{ k=i forj=i+1j<lanj++{ ifp->eleLetters[j]<P->eleLetters[k]k=J } if1{ C=P->eleLetters[i] P->eleLetters[i]=P->eleLetters[k] P->eleLetters[k]=c }//if }//for } intfindNode&rootchar*temp //在二叉排序树root中查找与temp匹配的单词 //若匹配返回相应单词在WordList中下标若查找失败返回-1 { Node*P*q intflag P=2//临时存储 reComposeptemp//将temp重组 q=&root whileflag=3&&q!=NULL{ ifflag<0{//搜索左子树 q=q->lChiid }else//搜索右子树 q=q->rChild } }//while ifflag==0{//找到匹配的保存下标 return4 } } if5{//查找失败 printf"cantunscramblethefollowingword%s"temp return-1 } } 1处填
阅读下列函数说明将应填入n处的字句写在答卷纸的对应栏内【函数1说明】函数compareSqListASqListB的功能是设A=alam和B=b1bn均为顺序表比较两个顺序表A和B的大小设A’和B’分别为A和B中除去最大共同前缀后的子表例如A=yXXZXZB=yxxzyxx2则两者中最大的共同前缀为yxx2在两表中除去最大共同前缀后的子表分别为A’=XZ和B’=yxx2若A’=B’=空表则A=B若A’=空表而B’≠空表或者两者均不为空表且A’的首元小于B的首元则A<B否则A>B提示算法的基本思想为若相等则j+1之后继续比较后继元素否则即可得山比较结果显然j的初值应为0循环的条件是j不超出其中任何一个表的范围若在循环内不能得出比较结果则循环结束时有3种可能出现的情况需要区分【函数1】intcompareSqListASqListB{//若A<B则返回-1若A=B则返回o若A>B则返回1j=0whilej<1&&j<B.1engthifA.elem[j]<B.elem[j]return-1;elseifA.elem[j]>B.elem[j]returni;else2ffA.length==B.lengthreturn0;elsefiA.length<B.lengthreturn-1;elsereturn1;}//compare//函数1的时间复杂度是3【函数2说明】函数exchange_LSLink&Lintm的功能是用尽可能少的辅助空间将单链表中前m个结点和后n个结点的互换即将单链表a1a2...amb1b2...bn改变成b1b2...bna1a2am【函数2】voidexchange_LSLink&Lintm{if4&&L->next//链表不空且m!=0{p=L->next;k=1;whilek<m&&p//查找am所在结点{p=5;++k;}if6&&p->next//n!=0时才需要修改指针{ha=L->next;//以指针ha记a1结点的位置L->next=p->next;//将b1结点链接在头结点之后p->next=NULL;//设am的后继为空q:7;//令q指向b1结点whileq->nextq=8;//查的bn结点q->next=9;//将a1结点链接到bn结点之后}}}//函数2的时间复杂度是10
【说明】 某医院收费系统的主要功能是收取病人门诊的各项费用系统的收费功能分为3个方面病历收费挂号收费和根据处方单内容收取检查或药物费用 1.病人初次来该医院看病首先购买病历记录病人基本情况 2.病人看病前要挂号根据病人的病历和门诊部门内科外科等系统提供相应的挂号单和处方单并收取费用 3.病人根据处方单进行进一步检查或取药前需交纳各项费用系统首先根据病人基本情况检查处方单中病历号是否正确记录合格的处方单并提供收据 4.所有收费都必须依据定价表中的定价来计算且所有收费都必须写入收费记录中 医院收费系统的顶层图如图3—2所示医院收费系统的第0层D四图如图3—3所示其中加工1的细化图如图3—4所示加工2的细化图如图3-5所示 假定顶层图是正确的定价表文件已由其他系统生成【数据流图】 【问题2】 数据流图3—4中缺少2条数据流请直接在图中添加
阅读下列说明以及图示如图1所示回答问题1~3 【说明】 某大学准备开发一个学生课程注册系统学生可以使用该系统查询新学期将开设的课程和讲课教师情况选择自己要学习的课程进行登记注册并可以查询成绩单教师可以使用该系统查询新学期将开设的课程和选课学生情况并可以登记成绩单注册管理员使用该系统进行注册管理包括维护教师信息学生信息和课程信息等 在每个学期的开始学生可以获得该学期的课程目录表课程目录表列出每门课程的所有信息诸如基本信息教师开课系和选课条件等 新学期开始前两周为选课注册时间在此期间学生可以选课注册并且允许改变或取消注册申请开学两周后注册管理员负责关闭课程注册每个学生可以选择不超过4门课程同时指定2门侯选课程以备主选课程未选上每门课程最多不能超过10人最少不能低于3人低于3人选课的课程将被取消一旦学生的注册过程完毕注册系统将有关信息提交收费系统以便学生付费如果在实际注册过程中名额已满系统将通知学生在提交课程表之前予以更改 在学期结束时学生可以存取系统查看电子成绩单由于学生成绩属于敏感信息系统必须提供必要的安全措施以防非法存取 【用例图】表1学生课程注册系统的实体类 实体类 说明 Professor 学校中讲课的教师 student 学校中注册课程的学生 Schedule 学生在新学期选择登记的课程列表 CourseCatalog 学校所有课程的目录 Course 课程的基本信息 CourseOffering 新学期课程的开设信息如讲课教师时间地点等信息表2 学生课程注册系统的边界类 边界类 说明 LoginForm 为教师学生和注册管理员提供登录的操作 RegisterCoursesForm 为学生提供选课注册的操作 ViewReportForm 为学生提供成绩查询的操作 selecrTeachCoursesForm 为教师提供查看学生选课情况的操作 SubmitCradesForm 为教师提供登记成绩的操作 MaintainProfessorsForm 为注册管理员提供维护教师信息的操作 MaintainStudentsForm 为注册管理员提供维护学生信息的操作 MaintainCoursesForm 为注册管理员提供维护课程信息的操作 CloseRegistrationForm 为注册管理员提供关闭注册的操作 BillingSystemNotice 提供与收费系统的信息交换接口表3 学生课程注册系统的控制类 控制类 说明 RegisterCoursesControl 负责新学期学生的选课登记 ViewReportControl 负责学生成绩的查询 SelectTeachCoursesControl 负责新学期课程的学生选择情况 SubmitGradesControl 负责学生成绩的登记 CloseRegistrationControl 负责关闭课程注册【协作图】 【时序图】 注释1学生打算注册新的课程注释2一张这学期可选择的课程列表 注释3显示一张为学生选课用的空白登记表 【问题3】 UML采用5个互联的视图来描述软件系统的体系结构即用例视图Use—caseView设计视图Design View进程视图ProcessView实现视图ImplementationView和展开视图Deployment View系统模型中每一个视图的内容是由一些图来描述的UML中包含用例图类图对象图状态图时序图协作图活动图组件图分布图等9种图对整个系统而言其功能由用例图描述静态结构由类图和对象图描述动态行为由状态图时序图协作图和活动图描述而物理架构则是由组件图和分布图描述请分别指出用例图类图对象图状态图时序图协作图活动图组件图分布图的作用
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 [说明] 在一些大型系统中大多数的功能在初始化时要花费很多时间如果在启动的时候所有功能连不用的功能都要全面初始化的话会连带影响到应用软件要花很多时间才能启动因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能 以下示例展示了Proxy代理模式PrinterProxy类执行一些比较“轻”的方法——设置名称和取得名称需要真正执行“重”的方法——真正打印——时才初始Print类图6-1显示了各个类间的关系 [图6-1] [Java代码] //Printable.Java publiC1Printable{ publicabstractvoidsetPrinterNameStringname publicabstractStringgetprinterName publicabstractvoidprintStringstring } //Printer.Java publicclassPrinterimplementsPrintable{ privateStringname publicPrinter{ System.out.println"正在产生Printer的对象实例" } publicPrinterStringname{ this.name=name heavyJob"正在产生Printer的对象实例"+name+"" publicvoidsetPrinterNameStringname{ this.name=name publicStringgetPrinterName{ returnname publicvoidprintStringstring{ System.out.println"==="+name+"====" System.out.printlnstring } } //PrinterProxy.Java publicclassPrinterProxy2Printable{ privateStringname privatePrinterreal publicPrinterProxy{} publicPrinterProxyStringname{ this.name=name } publicgynchronizedvoidsetPrinterNameStringname{ if3{ real.setPrinterNamename } this.name=name } publicStringgetprinterName{ returnname } publicvoidprintStringstring{ 4 real.printstring } privatesynchronizedvoidrealize{//产生真正的Printer对象 ifreal==null{ real=5 } } } 4处填
阅读下列说明和算法回答问题1和问题2 【说明】 算法2-1是用来检查文本文件中的圆括号是否匹配若文件中存在圆括号没有对应的左括号或者右括号则给出相应的提示信息如下所示 文件 提示信息1+2abc 缺少对应左括号第2行第4列defgx 缺少对应左括号第3行第10列h ijk1ml 缺少对应右括号第5行第4列第4行第1列 在算法2-1中stack为一整数栈算法中各函数的说明见表4 表4 函数名 函数功能 pushinti 将整数i压人栈stack中 pop stack的栈顶元素出栈 empty 判断stack栈是否为空若为空函数返回1否则函数返回0 nextch 读取文本文件中的下—个字符井返回该字符的ASCII值将字符所在的行号以及字符在行中的位置分别存储到变量row和col中若遇到文件结束符则将变量EOF置为true kindcharch 判断字符ch是左括号还是右括号若是左括号函数返回1若是右括号函数返回2若两者都不是函数返回【算法2-1】将栈stack 置空置EOF为falsech<-nextch;whilenotEOFk<-kindCH;ifk==1 push2;push3;elseifk==4ifnot emptypop;pop;else显示错误信息缺少对应左括号或右括号显示行号row显示列号colendifendif ch<-nextch;endwhileifnotempty显示错误信息缺少对应左括号或右括号whilenot emptyrow<-pop;col<-pop;显示行号row;显示列号col;endwhileendif 为了识别更多种类的括号对算法2-1加以改进后得到算法2-2算法2-2能够识别圆括号方括号和花括号不同类型的括号不能互相匹配改进后函数kindchar ch的参数及其对应的返回值见表5表五 ch { } [ ] 其他 返回值 1 2 3 4 5 6 0 【算法2-2】将栈stack置空置EOF为falsech< -nextchwhilenotEOF k<-kindchifk>0 if判断条件1 push5;push 6;push7; elseif判断条件2and判断条件3 pop;pop;pop; else 显示行号row显示列号col endifendifch<- nextch;endwhileifnotempty 显示错误信息缺少对应左括号或右括号whilenotempty pop;row←pop;col←pop; 显示行号row显示列号colendwhileendif 【问题2】 请从下面的选项中选择相应的判断逻辑填补【算法2-1】中的判断条件1至判断条件3注意若判断条件2的逻辑判断结果为假就无需对判断条件3进行判断 a字符是括号b字符是左括号c字符是右括号 d栈空e栈不空 f栈顶元素表示的是与当前字符匹配的左括号 R栈顶元素表示的是与当前字符匹配的右括号
阅读下列函数说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一些大型系统中大多数的功能在初始化时要花费很多时间如果在启动的时候所有功能包括不用的功能都要全面初始化的话会导致应用软件要花很多时间才能启动因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能 以下示例展示了Proxy代理模式PrinterProxy类执行一些比较“轻”的方法需要真正执行“重”的方法时才初始化Print类图5-1显示了各个类间的关系 [图5-1] [C++代码] classPrintable{ public virtualvoidsetPrinterNamestringname=0 virtualstringgetprinterName=0 virtualvoidprintstringname=0 } classPrinterpublicPrintable{ private stringname public Printerstringname{ cout<<"正在产生Printer的对象实例"<<endl this->name=name } voidsetPrinterNamestringname{ this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ cout<<"======="<<name<<"==========="<<endl cout<<msg<<endl } } classprinterproxypublic1{ private Stringname Printer*real public PrinterProxystringname{ 2=NULL this->name=name } voidsetPrinterNamestringname{ if3real->setPrinterNamename this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ 4 real->printmsg } voidrealize{ ifreal==NULLreal=5 } } 5处填
【说明】 某超市的销售业务由一个销售业务管理系统进行管理该系统每完成一次交易都需要提供顾客发票其格式如表1-1所示 对于这样一个销售业务管理系统分别给出了以下两种关系数据库的设计下划线表示主关键字设计一 顾客Customer顾客代码Cno姓名name住址address联系电话phone 收银员Salesman收银员代码Sno身份证号idno姓名flame住址address联系电话phone 商品Merchandise商品代码Milo商品名称Mname价格price 发票Invoice发票号码Ino交易日期Idate顾客代码Cno收银员代码Sno商品代码Mno单价unitprice数量amount 设计二 顾客Customer顾客代码Cno姓名name住址address联系电话phone 收银员Salesman收银员代码Sno身份证号idno姓名name住址address联系电话吵one 商品Merchandise商品代码Mno商品名称mllame价格pnce 发票Invoice发票号码Ino交易日期Idate顾客代码Cno收银员代码Sno 发票明细Invoicedetail发票号码Ino商品代码Uno单价unitprice数量amount 【问题4】 设计二中关系Merchandise中由属性price表示商品价格关系Invoicedetail中的属性 unitprice也表示商品价格两个是否有必要同时存在为什么
【说明】 某大学准备开发一个学生课程注册系统学生可以使用该系统查询新学期将开设的课程和讲课教师情况选择自己要学习的课程进行登记注册并可以查询成绩单教师可以使用该系统查询新学期将开设的课程和选课学生情况并可以登记成绩单注册管理员使用该系统进行注册管理包括维护教师信息学生信息和课程信息等 在每个学期的开始学生可以获得该学期的课程目录表课程目录表列出每门课程的所有信息诸如基本信息教师开课系和选课条件等 新学期开始前两周为选课注册时间在此期间学生可以选课注册并且允许改变或取消注册申请开学两周后注册管理员负责关闭课程注册每个学生可以选择不超过4门课程同时指定2门侯选课程以备主选课程未选上每门课程最多不能超过10人最少不能低于3人低于3人选课的课程将被取消一旦学生的注册过程完毕注册系统将有关信息提交收费系统以便学生付费如果在实际注册过程中名额已满系统将通知学生在提交课程表之前予以更改 在学期结束时学生可以存取系统查看电子成绩单由于学生成绩属于敏感信息系统必须提供必要的安全措施以防非法存取 【用例图】【表】 表3-1学生课注册系统的实体类 实体类 说明 Professor 学校中讲课的教师 Strdent 学校中注册课程的学生 Schedule 学生在新学期选择登记的课程列表 CourseCatalog 学校所有课程的目录 Course 课程的基本信息 CourseOffering 新学期课程的开设信息如课课教师时间地点等信息表3-2 学生课程注册系统的边界类 边界类 说明 LoginForm 为教师学生和注册管理提供登录的操作 RegisterCoursesForm 为学生提供选课注册的操作 ViewReportForm 为学生提供成绩查询的操作 SelectTeachCoursesForm 为教师提供查看学生选课情况的操作 SubmitGradesForm 为教师提供登记成绩的操作 MaintainProfessorsForm 为注册管理员提供维护教师信息的操作 MaintainStudentsForm 为注册管理员提供维护学生信息的操作 MaintainCoursesForm 为注册管理员提供维护课程信息的操作 CloseRegistrationForm 为注册管理员提供关闭注册的操作 BillingSystemNotice 提供与收费系统的信息交换接口表3-3学生课程注册系统的控制类 控制类 说明 RegisterCoursesControl 负责新学期学生的选课登记 ViewReportControl 负责学生成绩的查询 SelectTeachCoursesControl 负责新学期课程的学生选择情况 SubmitGradesControl 负责学生成绩的登记 CloseRegistrationControl 负责关闭课程注册【协作图】 【时序图】注释1学生打算注册新的课程注释2一张这学期可选择的课程列表注释3显示一张为学生选课用的空白登记表 【问题3】 UML采用5个互联的视图来描述软件系统的体系结构即用例视图Use-caseView设计视图Design View进程视图ProcessView实现视图ImplementationView和展开视图Deployment View系统模型中每一个视图的内容是由一些图来描述的UML中包含用例图类图对象图状态图时序图协作图活动图组件图分布图等9种图对整个系统而言其功能由用例图描述静态结构由类图和对象图描述动态行为由状态图时序图协作图和活动图描述而物理架构则是由组件图和分布图描述请分别指出用例图类图对象图状态图时序图协作图活动图组件图分布图的作用
阅读下列说明以及图示如图1所示回答问题1~3 【说明】 某大学准备开发一个学生课程注册系统学生可以使用该系统查询新学期将开设的课程和讲课教师情况选择自己要学习的课程进行登记注册并可以查询成绩单教师可以使用该系统查询新学期将开设的课程和选课学生情况并可以登记成绩单注册管理员使用该系统进行注册管理包括维护教师信息学生信息和课程信息等 在每个学期的开始学生可以获得该学期的课程目录表课程目录表列出每门课程的所有信息诸如基本信息教师开课系和选课条件等 新学期开始前两周为选课注册时间在此期间学生可以选课注册并且允许改变或取消注册申请开学两周后注册管理员负责关闭课程注册每个学生可以选择不超过4门课程同时指定2门侯选课程以备主选课程未选上每门课程最多不能超过10人最少不能低于3人低于3人选课的课程将被取消一旦学生的注册过程完毕注册系统将有关信息提交收费系统以便学生付费如果在实际注册过程中名额已满系统将通知学生在提交课程表之前予以更改 在学期结束时学生可以存取系统查看电子成绩单由于学生成绩属于敏感信息系统必须提供必要的安全措施以防非法存取 【用例图】表1学生课程注册系统的实体类 实体类 说明 Professor 学校中讲课的教师 student 学校中注册课程的学生 Schedule 学生在新学期选择登记的课程列表 CourseCatalog 学校所有课程的目录 Course 课程的基本信息 CourseOffering 新学期课程的开设信息如讲课教师时间地点等信息表2 学生课程注册系统的边界类 边界类 说明 LoginForm 为教师学生和注册管理员提供登录的操作 RegisterCoursesForm 为学生提供选课注册的操作 ViewReportForm 为学生提供成绩查询的操作 selecrTeachCoursesForm 为教师提供查看学生选课情况的操作 SubmitCradesForm 为教师提供登记成绩的操作 MaintainProfessorsForm 为注册管理员提供维护教师信息的操作 MaintainStudentsForm 为注册管理员提供维护学生信息的操作 MaintainCoursesForm 为注册管理员提供维护课程信息的操作 CloseRegistrationForm 为注册管理员提供关闭注册的操作 BillingSystemNotice 提供与收费系统的信息交换接口表3 学生课程注册系统的控制类 控制类 说明 RegisterCoursesControl 负责新学期学生的选课登记 ViewReportControl 负责学生成绩的查询 SelectTeachCoursesControl 负责新学期课程的学生选择情况 SubmitGradesControl 负责学生成绩的登记 CloseRegistrationControl 负责关闭课程注册【协作图】 【时序图】 注释1学生打算注册新的课程注释2一张这学期可选择的课程列表 注释3显示一张为学生选课用的空白登记表 【问题1】 在UML中用例代表一个完整的功能如与角色通信进行计算或在系统内工作等请简要说明用例具有哪些的特征并指出用例图中1~3处表示的内容
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 下面程序用来将打乱的单词还原为原来的次序比如将rty还原为try单词的原来次序存储于wordlist.txt文件中原则上可用穷举法rty对应的穷举为rtyryttrytyrytryrt但考虑到破译速度采用如下方法 注意到单词列表中不存在组成字符完全相同的单词如Hack12与Hack21包含完全相同的字符因此将单词中的字符进行重组再进行比较例如try单词重组为rty按ASCⅡ码顺序这样不管打乱的单词是什么顺序只要是由rty三个字母组成的均破译为try大大提高破译速度程序中借助二叉排序树以进一步提高查找效率二叉排序树左子树如果有上的节点对应的值均小于根节点的值右子树如果有上的节点对应的值均大于根节点的值 函数中使用的符号定义如下 #defineNumberofWords1275//单词总数 #defineMaxLength10//最长单词所含字符数 charWordList[NumberofWords][MaxLength]//存储单词列表 intcmpNode*qNode*p//q与p比较p小返回负值P大返回正值相等返回0 typedefstructNode//二叉树节点 char*eleLetters//重组后的字符串 intindex//对应单词表中的下标 structNode*lChiId*rChiid//左右子节点 }Node [C代码] voidreComposeNode*pchar*temp //重纰亦即将temp字符串中的字符升序排序存储于p节点中 //采用直接插入排序法 { charc strcpyp->eleLetterstemp// intlen=strlentemp intijk fori=0i<len-1i++{ k=i forj=i+1j<lanj++{ ifp->eleLetters[j]<P->eleLetters[k]k=J } if1{ C=P->eleLetters[i] P->eleLetters[i]=P->eleLetters[k] P->eleLetters[k]=c }//if }//for } intfindNode&rootchar*temp //在二叉排序树root中查找与temp匹配的单词 //若匹配返回相应单词在WordList中下标若查找失败返回-1 { Node*P*q intflag P=2//临时存储 reComposeptemp//将temp重组 q=&root whileflag=3&&q!=NULL{ ifflag<0{//搜索左子树 q=q->lChiid }else//搜索右子树 q=q->rChild } }//while ifflag==0{//找到匹配的保存下标 return4 } } if5{//查找失败 printf"cantunscramblethefollowingword%s"temp return-1 } } 5处填
【说明】 某大学准备开发一个学生课程注册系统学生可以使用该系统查询新学期将开设的课程和讲课教师情况选择自己要学习的课程进行登记注册并可以查询成绩单教师可以使用该系统查询新学期将开设的课程和选课学生情况并可以登记成绩单注册管理员使用该系统进行注册管理包括维护教师信息学生信息和课程信息等 在每个学期的开始学生可以获得该学期的课程目录表课程目录表列出每门课程的所有信息诸如基本信息教师开课系和选课条件等 新学期开始前两周为选课注册时间在此期间学生可以选课注册并且允许改变或取消注册申请开学两周后注册管理员负责关闭课程注册每个学生可以选择不超过4门课程同时指定2门侯选课程以备主选课程未选上每门课程最多不能超过10人最少不能低于3人低于3人选课的课程将被取消一旦学生的注册过程完毕注册系统将有关信息提交收费系统以便学生付费如果在实际注册过程中名额已满系统将通知学生在提交课程表之前予以更改 在学期结束时学生可以存取系统查看电子成绩单由于学生成绩属于敏感信息系统必须提供必要的安全措施以防非法存取 【用例图】【表】 表3-1学生课注册系统的实体类 实体类 说明 Professor 学校中讲课的教师 Strdent 学校中注册课程的学生 Schedule 学生在新学期选择登记的课程列表 CourseCatalog 学校所有课程的目录 Course 课程的基本信息 CourseOffering 新学期课程的开设信息如课课教师时间地点等信息表3-2 学生课程注册系统的边界类 边界类 说明 LoginForm 为教师学生和注册管理提供登录的操作 RegisterCoursesForm 为学生提供选课注册的操作 ViewReportForm 为学生提供成绩查询的操作 SelectTeachCoursesForm 为教师提供查看学生选课情况的操作 SubmitGradesForm 为教师提供登记成绩的操作 MaintainProfessorsForm 为注册管理员提供维护教师信息的操作 MaintainStudentsForm 为注册管理员提供维护学生信息的操作 MaintainCoursesForm 为注册管理员提供维护课程信息的操作 CloseRegistrationForm 为注册管理员提供关闭注册的操作 BillingSystemNotice 提供与收费系统的信息交换接口表3-3学生课程注册系统的控制类 控制类 说明 RegisterCoursesControl 负责新学期学生的选课登记 ViewReportControl 负责学生成绩的查询 SelectTeachCoursesControl 负责新学期课程的学生选择情况 SubmitGradesControl 负责学生成绩的登记 CloseRegistrationControl 负责关闭课程注册【协作图】 【时序图】注释1学生打算注册新的课程注释2一张这学期可选择的课程列表注释3显示一张为学生选课用的空白登记表 【问题1】 在UML中用例代表一个完整的功能如与角色通信进行计算或在系统内工作等请简要说明用例具有哪些的特征并指出用例图中1~3处表示的内容
阅读下列说明和C程序将应填入n处的字句写在对应栏中 [说明] 借助一个栈结构可实现二叉树的非递归遍历算法InOrderTraverse数实现中序非递归遍历遍历 过程如下 若不是空树根节点入栈进入左子树若已经是空树则栈顶元素出栈访问该元素根节点进入该节点的右子树继续直到遍历完成 函数中使用的预定义符号如下 typedefstructBiTNode{ intdata structBiTNode*iChiid*rChiid }BiTNode*BiTree typedefstructSNode{/*链栈的节点类型*/ BiTreeelem structSNode*next }SNode [函数] intInOrderTraverseBiTreeroot { BiTreeP SNode*q*stop=NULL/*不带头节点的单链表作为栈的存储结构*/ P=root whilep!=NULL||stop!=NULL{ if1{/*不是空树*/ q=SNode*mallocsizeofq ifq==NULLreturn-1 /*根节点指针入栈*/ 2 q->elem=P stop=q P=3/*进入根的左子树*/ }else{ q=stop 4/*栈顶元素出栈*/ printf"%d|q->elem->data/*防问根节点*/ P=5/*进入根的右子树*/ freeq/*释放原栈顶元素*/ }/*if*/ }/*while*/ return0 }/*InOrderTraverse*/ 2处填
设供应商供应零件的关系模式为SPSnoPnoQty其中Sno表示供应商号Pno表示零件号Qty表示零件数量查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下 SELECTSno FROMSPSPX WHERE37 SELECT* FROMSPSPY WHERE38ANDNOTEXISTS SELECT* FROMSPSPZ WHERE39 38处填
阅读下列函数说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一些大型系统中大多数的功能在初始化时要花费很多时间如果在启动的时候所有功能包括不用的功能都要全面初始化的话会导致应用软件要花很多时间才能启动因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能 以下示例展示了Proxy代理模式PrinterProxy类执行一些比较“轻”的方法需要真正执行“重”的方法时才初始化Print类图5-1显示了各个类间的关系 [图5-1] [C++代码] classPrintable{ public virtualvoidsetPrinterNamestringname=0 virtualstringgetprinterName=0 virtualvoidprintstringname=0 } classPrinterpublicPrintable{ private stringname public Printerstringname{ cout<<"正在产生Printer的对象实例"<<endl this->name=name } voidsetPrinterNamestringname{ this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ cout<<"======="<<name<<"==========="<<endl cout<<msg<<endl } } classprinterproxypublic1{ private Stringname Printer*real public PrinterProxystringname{ 2=NULL this->name=name } voidsetPrinterNamestringname{ if3real->setPrinterNamename this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ 4 real->printmsg } voidrealize{ ifreal==NULLreal=5 } } 3处填
阅读以下说明和程序流程图将应填入n处的字句写在对应栏内 [说明] 当一元多项式中有许多系数为零时可用一个单链表来存储每个节点存储一个非零项的指受和对应系数 为了便于进行运算用带头节点的单链表存储头节点中存储多项式中的非零项数且各节点按指数递减顺序存储例如多项式8x5-2x2+7的存储结构为 流程图图3-1用于将pCNode结构体指针节点按指数降序插入到多项式C多项式POLY指针中 流程图中使用的符号说明如下 1数据结构定义如下 #defineEPSI1e-6 structNode{/*多项式中的一项*/ doublec/*系数*/ inte/*指数*/ StructNode*next } typedefstruct{/*多项式头节点*/ intn/*多项式不为零的项数*/ structNode*head }POLY 2DelPOLY*CstructNode*p函数若p是空指针则删除头节点否则删除p节点的后继 3fabsdoublec函数返回实数C的绝对值 [图3-1] 1处填
阅读下列说明和流程图2-3将应填入n的字句写在答题纸的对应栏内 【说明】 下面的流程图描述了对8位二进制整数求补的算法 该算法的计算过程如下从二进制数的低位最右位开始依次向高位逐位查看直到首次遇到1时停止查看然后对该1位左面的更高位如果有的话逐位求反所得的结果就是对原二进制数求补的结果 例如对二进制整数10101000求补的结果是01011000 设8位二进制整数中的各位从低位到高位依次存放在整型数组BIT的B1T[1]~BIT[8]中例如二进制整数10101000存放在数组BIT后就有BIT[1]=0BIT[2]=0BIT[7]=0BIT[8]=1若流程图中存在空操作则用NOP表示 【流程图】 注流程图中1处按循环变量名循环初值增量循环终值格式描述
阅读下列说明和E-R图回答问题1至问题3将解答填入对应栏内 [说明] 设有下列关于学生成绩管理系统的E-R图见图2-1图中矩形表示实体圆表示属性双圆表示关键字属性菱形表示实体间的联系假定已通过下列SQL语言建立了基本表 CREATETABLESTUDENTSNoCHAR6NOTNULLUNIQUE SNameCHAR20 SexCHAR1 DeptCHAR20 AgeSMALLINT CREATETABLECOURSECNoCHAR6NOTNULLUNIQUE CNameCHAR20 HourSMALLINT CreditSMALLINT CREATETABLESCSNoCHAR6 CNoCHAR6 GRADESMALLINT PRIMARYKEYSNoCNo 为了答题的方便图中的实体和属性同时给出了中英文两种名字回答问题时只须写出英文名即可 填充下列SQL程序5.1~5.4中的1~6使它们分别完成以下查询功能 程序5.1检索选修所有课程的学生姓名 程序5.2给出全体学生人数 程序5.3按学号给出每个学生的平均成绩 程序5.4按学号给出每个学生选修课程的门数 [程序5.1] SELECTSNameFROMSTUDENTWHERE1 SELECTFROMCOURSEWHERE2 SELECT*FROMSCWHERE3 [程序5.2] SELECT4FROMSTUDENT [程序5.3] SELECT5FROMSCGROUPBYSNO [程序5.4] SELECT6FROMSCGROUPBYSNO 1处填
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 [说明] 在一些大型系统中大多数的功能在初始化时要花费很多时间如果在启动的时候所有功能连不用的功能都要全面初始化的话会连带影响到应用软件要花很多时间才能启动因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能 以下示例展示了Proxy代理模式PrinterProxy类执行一些比较“轻”的方法——设置名称和取得名称需要真正执行“重”的方法——真正打印——时才初始Print类图6-1显示了各个类间的关系 [图6-1] [Java代码] //Printable.Java publiC1Printable{ publicabstractvoidsetPrinterNameStringname publicabstractStringgetprinterName publicabstractvoidprintStringstring } //Printer.Java publicclassPrinterimplementsPrintable{ privateStringname publicPrinter{ System.out.println"正在产生Printer的对象实例" } publicPrinterStringname{ this.name=name heavyJob"正在产生Printer的对象实例"+name+"" publicvoidsetPrinterNameStringname{ this.name=name publicStringgetPrinterName{ returnname publicvoidprintStringstring{ System.out.println"==="+name+"====" System.out.printlnstring } } //PrinterProxy.Java publicclassPrinterProxy2Printable{ privateStringname privatePrinterreal publicPrinterProxy{} publicPrinterProxyStringname{ this.name=name } publicgynchronizedvoidsetPrinterNameStringname{ if3{ real.setPrinterNamename } this.name=name } publicStringgetprinterName{ returnname } publicvoidprintStringstring{ 4 real.printstring } privatesynchronizedvoidrealize{//产生真正的Printer对象 ifreal==null{ real=5 } } } 2处填
阅读下列说明和C程序将应填入n处的字句写在对应栏中 [说明] 借助一个栈结构可实现二叉树的非递归遍历算法InOrderTraverse数实现中序非递归遍历遍历 过程如下 若不是空树根节点入栈进入左子树若已经是空树则栈顶元素出栈访问该元素根节点进入该节点的右子树继续直到遍历完成 函数中使用的预定义符号如下 typedefstructBiTNode{ intdata structBiTNode*iChiid*rChiid }BiTNode*BiTree typedefstructSNode{/*链栈的节点类型*/ BiTreeelem structSNode*next }SNode [函数] intInOrderTraverseBiTreeroot { BiTreeP SNode*q*stop=NULL/*不带头节点的单链表作为栈的存储结构*/ P=root whilep!=NULL||stop!=NULL{ if1{/*不是空树*/ q=SNode*mallocsizeofq ifq==NULLreturn-1 /*根节点指针入栈*/ 2 q->elem=P stop=q P=3/*进入根的左子树*/ }else{ q=stop 4/*栈顶元素出栈*/ printf"%d|q->elem->data/*防问根节点*/ P=5/*进入根的右子树*/ freeq/*释放原栈顶元素*/ }/*if*/ }/*while*/ return0 }/*InOrderTraverse*/ 4处填
阅读下列函数说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一些大型系统中大多数的功能在初始化时要花费很多时间如果在启动的时候所有功能包括不用的功能都要全面初始化的话会导致应用软件要花很多时间才能启动因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能 以下示例展示了Proxy代理模式PrinterProxy类执行一些比较“轻”的方法需要真正执行“重”的方法时才初始化Print类图5-1显示了各个类间的关系 [图5-1] [C++代码] classPrintable{ public virtualvoidsetPrinterNamestringname=0 virtualstringgetprinterName=0 virtualvoidprintstringname=0 } classPrinterpublicPrintable{ private stringname public Printerstringname{ cout<<"正在产生Printer的对象实例"<<endl this->name=name } voidsetPrinterNamestringname{ this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ cout<<"======="<<name<<"==========="<<endl cout<<msg<<endl } } classprinterproxypublic1{ private Stringname Printer*real public PrinterProxystringname{ 2=NULL this->name=name } voidsetPrinterNamestringname{ if3real->setPrinterNamename this->name=name } stringgetPrinterName{ returnname } voidprintstringmsg{ 4 real->printmsg } voidrealize{ ifreal==NULLreal=5 } } 1处填
【说明】 设有下列关于图书借阅系统的E—R图图中矩形表示实体圆表示属性双圆表示关键字属性菱形表示实体间的联系假定已通过下列SQL语言建立了基本表 CREATETABLEReadersRao CHAR6PRIMARYKEYRnameCHAR20NOT NULLRaddressCHAR200 RphoneCHAR15;CREATETABLE BooksBrioCHAR6PRIMARY KEYRnameCHAR50NOTNULL; CREATETABLEAdministrators AnoCHAR6PRIMARYKEYAname CHAR20NOTNULL;CREATETABLEBorrows RnoCHAR6NOTNULL BnoCHAR15NOTNULLAnoCHAR6 NOTNULLBdateDATE RdateDATEPRIMARY KEYRnoBnoAnoFOREGINKEYRno REFERENCEReadersRnoFOREGINKEYBno REFERENCEBookBnoFOREGINKEYAno REFERENCEAdministratorsAno;CREATETABLE ReadersRaoCHAR6PRIMARY KEYRnameCHAR20NOTNULL RaddressCHAR200 RphoneCHAR15;CREATETABLEBooks BrioCHAR6PRIMARYKEY RnameCHAR50NOTNULL;CREATE TABLEAdministratorsAnoCHAR6 PRIMARYKEYAnameCHAR20NOT NULL;CREATETABLEBorrows RnoCHAR6NOTNULL BnoCHAR15NOTNULLAnoCHAR6NOT NULLBdateDATE RdateDATEPRIMARY KEYRnoBnoAnoFOREGINKEYRno REFERENCEReadersRnoFOREGINKEYBno REFERENCEBookBnoFOREGINKEYAno REFERENCEAdministratorsAno; 为了答题的方便图中的实体和属性同时给出了中英文两种名字回答问题时只需写出英文名即可 【系统E-R图】 【问题2】 对于说明中建立的基本表是否允许同一读者从同一管理员处多次两次和两次以上借阅同一本书为什么
阅读以下说明和程序流程图将应填入n处的字句写在对应栏内 [说明] 当一元多项式中有许多系数为零时可用一个单链表来存储每个节点存储一个非零项的指受和对应系数 为了便于进行运算用带头节点的单链表存储头节点中存储多项式中的非零项数且各节点按指数递减顺序存储例如多项式8x5-2x2+7的存储结构为 流程图图3-1用于将pCNode结构体指针节点按指数降序插入到多项式C多项式POLY指针中 流程图中使用的符号说明如下 1数据结构定义如下 #defineEPSI1e-6 structNode{/*多项式中的一项*/ doublec/*系数*/ inte/*指数*/ StructNode*next } typedefstruct{/*多项式头节点*/ intn/*多项式不为零的项数*/ structNode*head }POLY 2DelPOLY*CstructNode*p函数若p是空指针则删除头节点否则删除p节点的后继 3fabsdoublec函数返回实数C的绝对值 [图3-1] 5处填
阅读以下说明和程序流程图将应填入n处的字句写在对应栏内 [说明] 当一元多项式中有许多系数为零时可用一个单链表来存储每个节点存储一个非零项的指受和对应系数 为了便于进行运算用带头节点的单链表存储头节点中存储多项式中的非零项数且各节点按指数递减顺序存储例如多项式8x5-2x2+7的存储结构为 流程图图3-1用于将pCNode结构体指针节点按指数降序插入到多项式C多项式POLY指针中 流程图中使用的符号说明如下 1数据结构定义如下 #defineEPSI1e-6 structNode{/*多项式中的一项*/ doublec/*系数*/ inte/*指数*/ StructNode*next } typedefstruct{/*多项式头节点*/ intn/*多项式不为零的项数*/ structNode*head }POLY 2DelPOLY*CstructNode*p函数若p是空指针则删除头节点否则删除p节点的后继 3fabsdoublec函数返回实数C的绝对值 [图3-1] 3处填
【说明】某网络故障诊断系统使用故障代理aZentSm4P Trap等来检测各种意外情况如大幅丢包路由冲突广播风暴等网络管理员可以在安装该系统时配置安全监控程序如故障代理程序实时诊断程序报警器等也可以在系统运行时修改配置通过网络状态采集器和故障特征数据库并通过控制面板上的键盘与系统进行信息交互在安装过程中系统给每个故障代理赋予一个编号即id和类型并设置管理员密码以启动和关闭系统设置故障代理事件发生时应自动拨出的电话号码当系统检测到一个故障代理事件时就激活警报拨出预置的电话号码并报告关于位置和检测到的事件的性质等信息 【数据流图】 【问题2】 数据流图2网络故障检测系统第0层DFD图中的数据存储配置信息会影响图中的哪些加工
【说明】 下面是某租车信息管理系统的介绍该车库中备有若干车辆每辆车有车号车牌车名价格等属性车库不定期地购买并注册新车供用户借用也可将报废的旧车注销以停止租用 车库可为众多用户提供服务每个用户在借车之前需注册姓名地址等内容每个用户最多可同时借3辆车每辆车借期7天若有一辆车超期则不可再借其他车一辆车超期一天罚款250元若一辆车超期3周不归还则发布通告若用户借的车丢失在罚款处理之前不能借车每辆报失的车罚款该车目前市价包括折旧的1.2倍注册新用户不受限制而注销用户之前该用户必须归还所有借的车或者报失并接受罚款 【状态图1】【状态图2】 【问题2】 分析用户的状态和事件指出图2-2中的5678分别是什么 注意用户与车辆在状态图中的关系
【说明】 某超市的销售业务由一个销售业务管理系统进行管理该系统每完成一次交易都需要提供顾客发票其格式如表1-1所示 对于这样一个销售业务管理系统分别给出了以下两种关系数据库的设计下划线表示主关键字设计一 顾客Customer顾客代码Cno姓名name住址address联系电话phone 收银员Salesman收银员代码Sno身份证号idno姓名flame住址address联系电话phone 商品Merchandise商品代码Milo商品名称Mname价格price 发票Invoice发票号码Ino交易日期Idate顾客代码Cno收银员代码Sno商品代码Mno单价unitprice数量amount 设计二 顾客Customer顾客代码Cno姓名name住址address联系电话phone 收银员Salesman收银员代码Sno身份证号idno姓名name住址address联系电话吵one 商品Merchandise商品代码Mno商品名称mllame价格pnce 发票Invoice发票号码Ino交易日期Idate顾客代码Cno收银员代码Sno 发票明细Invoicedetail发票号码Ino商品代码Uno单价unitprice数量amount 【问题2】 根据设计二中关系模式以下SQL语句是用于建立2005年1月期间每张发票的发票号交易日期交易商品件数和交易总金额的视图的不完整语句请填补其中的空缺 CREATEVIEWInvoice_total1SELECT Invoice.InoIdate23 FROMInvoiceInvoicedetailWHERE4 ANDIdateBETWEEN’2005-01-01’AND’2005-01-31’ GROUPBY5
阅读下列说明和E-R图回答问题1至问题3将解答填入对应栏内 [说明] 设有下列关于学生成绩管理系统的E-R图见图2-1图中矩形表示实体圆表示属性双圆表示关键字属性菱形表示实体间的联系假定已通过下列SQL语言建立了基本表 CREATETABLESTUDENTSNoCHAR6NOTNULLUNIQUE SNameCHAR20 SexCHAR1 DeptCHAR20 AgeSMALLINT CREATETABLECOURSECNoCHAR6NOTNULLUNIQUE CNameCHAR20 HourSMALLINT CreditSMALLINT CREATETABLESCSNoCHAR6 CNoCHAR6 GRADESMALLINT PRIMARYKEYSNoCNo 为了答题的方便图中的实体和属性同时给出了中英文两种名字回答问题时只须写出英文名即可 填充下列SQL程序5.1~5.4中的1~6使它们分别完成以下查询功能 程序5.1检索选修所有课程的学生姓名 程序5.2给出全体学生人数 程序5.3按学号给出每个学生的平均成绩 程序5.4按学号给出每个学生选修课程的门数 [程序5.1] SELECTSNameFROMSTUDENTWHERE1 SELECTFROMCOURSEWHERE2 SELECT*FROMSCWHERE3 [程序5.2] SELECT4FROMSTUDENT [程序5.3] SELECT5FROMSCGROUPBYSNO [程序5.4] SELECT6FROMSCGROUPBYSNO 3处填
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 下面程序用来将打乱的单词还原为原来的次序比如将rty还原为try单词的原来次序存储于wordlist.txt文件中原则上可用穷举法rty对应的穷举为rtyryttrytyrytryrt但考虑到破译速度采用如下方法 注意到单词列表中不存在组成字符完全相同的单词如Hack12与Hack21包含完全相同的字符因此将单词中的字符进行重组再进行比较例如try单词重组为rty按ASCⅡ码顺序这样不管打乱的单词是什么顺序只要是由rty三个字母组成的均破译为try大大提高破译速度程序中借助二叉排序树以进一步提高查找效率二叉排序树左子树如果有上的节点对应的值均小于根节点的值右子树如果有上的节点对应的值均大于根节点的值 函数中使用的符号定义如下 #defineNumberofWords1275//单词总数 #defineMaxLength10//最长单词所含字符数 charWordList[NumberofWords][MaxLength]//存储单词列表 intcmpNode*qNode*p//q与p比较p小返回负值P大返回正值相等返回0 typedefstructNode//二叉树节点 char*eleLetters//重组后的字符串 intindex//对应单词表中的下标 structNode*lChiId*rChiid//左右子节点 }Node [C代码] voidreComposeNode*pchar*temp //重纰亦即将temp字符串中的字符升序排序存储于p节点中 //采用直接插入排序法 { charc strcpyp->eleLetterstemp// intlen=strlentemp intijk fori=0i<len-1i++{ k=i forj=i+1j<lanj++{ ifp->eleLetters[j]<P->eleLetters[k]k=J } if1{ C=P->eleLetters[i] P->eleLetters[i]=P->eleLetters[k] P->eleLetters[k]=c }//if }//for } intfindNode&rootchar*temp //在二叉排序树root中查找与temp匹配的单词 //若匹配返回相应单词在WordList中下标若查找失败返回-1 { Node*P*q intflag P=2//临时存储 reComposeptemp//将temp重组 q=&root whileflag=3&&q!=NULL{ ifflag<0{//搜索左子树 q=q->lChiid }else//搜索右子树 q=q->rChild } }//while ifflag==0{//找到匹配的保存下标 return4 } } if5{//查找失败 printf"cantunscramblethefollowingword%s"temp return-1 } } 3处填
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术