首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
采用哈希(或散列)技术构造查找表时,需要考虑冲突(碰撞)的处理,冲突是指______。
查看本题答案
包含此试题的试卷
初级程序员《单选题》真题及答案
点击查看
你可能感兴趣的试题
设散列表容量为7散列地址空间0..6给定表3036475234散列函数HK=Kmod6采用线性探测法
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
A
B
C
D
已知一个线性表382574635248采用的散列函数为HKey=Keymod7将元素散列到表长为7的
6/5
7/6
4/3
3/2
设线性表59534648373125采用散列Hash法进行存储和查找散列函数为HKey=KeyMOD
2
3
4
6
设线性表59534648373125采用散列Hash法进行存储和查找散列函数为HKey=KeyMOD
2
3
4
6
设有一组关键字19123145520842768111077采用哈希函数Hkey=key%13采用二
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到表长为
(8×1)/8
(8×1)/9
(5×1+2+3+6)/8
(5×1+2+3+6)/9
已知一个线性表382574635248采用的散列函数为HKey=Keymod7将元素散列到表长为7的
1.5
1.8
2.0
2.3
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(5*1+2+3+6)/8
(5*1+2+3+6)/9
(8*1)/8
(8*1)/9
采用哈希或散列技术构造查找表时需要考虑冲突碰撞的处理冲突是指
关键字相同的记录被映射到不同的哈希地址
关键字依次被映射到编号连续的哈希地址
关键字不同的记录被映射到同一个哈希地址
关键字的数目超过哈希地址的数目
以下关于哈希Hash散列查找的叙述中正确的是
哈希函数应尽可能复杂些,以消除冲突
构造哈希函数时应尽量使关键字的所有组成部分都能起作用
进行哈希查找时,不在需要与查找表中的元素进行比较
在哈希表中只能添加元素不能删除元素
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
A
B
C
D
有一个线性表162570615245采用的散列函数为HKey=Keymod8将元素散列到表长为8的哈
1.25
1.33
2.0
2.3
选取哈希函数Hk=kMOD11用二次探测再散列处理冲突试在0-10的散列地址空间中对关键字序列224
查找哈希Hash表不会发生冲突的哈希函数是34
除留余数法
伪随机探测再散列法
直接地址法
线性探测再散列法
已知一个线性表1625354351628793采用散列函数HKey=Keymod7将元素散列到
(5*1+2+3+6)/8
(5*1+2+3+6)/9
(8*1)/8
(8*1)/9
查找哈希Hash表不会发生冲突的哈希函数是______
除留余数法
伪随机探测再散列法
直接地址法
线性探测再散列法
有一个线性表162570615245采用的散列函数为HKey=Keymod8将元素散列到表长为8的哈
1.0
7/6
4/3
3/2
已知一个线性表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
热门试题
更多
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 Java语言允许用户在需要时创建自己的异常类型用于表达JDK中未涉及到的其他异常状况这些异常必须继承Throwable类或其子类用户自定义异常类通常属于Exception范畴依据命名惯例应以Exception结尾用户自定义异常未被加入JREJava运行时环境的控制逻辑中因此永远不会自动抛出只能由人工创建并抛出 【Java程序】classMyException1 Exception{privateStringid publicMyExceptionStringmessageStringid{ 2//调用父类的构造函数 this.id=id }PublicStringgetId{ returnid} }publicclassTest{public voidtestExceptionthrowsMyException{ throw3抛出自定义异常123 }publicvoidcatchException{ tly{ testException }4MyExceptione{ System.out.print捕获了如下异常 e.printStackTrace } }publicvoidstaticmainString args[]{Testt=new Test t.catchException} }程序输出如下补充完整捕获了如下异常5 atTest.testException...
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【C++程序】#include<stdio.h>#include<string.h>#defineMax 1000classBank{intindex; chardate[Max][10];//记录交易日iht amount[Max];//记录每次交易金额以符号区分存钱和取钱 intrest[Max];//记录每次交易后余额 staticihtsum;//账户累计余额public: Bank{index=0;}voiddepositchard[] intm//存入交易{ strcpydate[index]d; amount[index]=m;1 ;rest[index]=sum; index++;} voidwithdrawchard[]intm//取出交易{ strcpydate[index]d; 2;3; rest[index]=sum;index++; }voiddisplay;};intBank::sum= 0;voidBank::display//输出流水{ inti;printf日期存入取出余额/n; for4{ printf%8sdate[i];if 5printf%6d -amount[i];else printf%6damount[i]; printf%6d/nrest[i];}}voidmain {Bankobject;object.deposit 2006.2.5100;object.deposit2006.3.2 200;object.withdraw2006.4.150; object.withdraw2006.4.580;object.display ;}本程序的执行结果如下日期存入 取出余额2006.2.5100 1002006.3.22003002006.4.1 502502006.4.580 170
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】下面程序的功能是计算并输出某年某月的天数函数IsLeapYear能够判断是否是闰年【C++程序】# include<iostream>usingnamespacestd;1 Month{JanFebMarAprMayJunJulAugSepOctNovDec };classDate{public:Date intyearMonthm_month{ this→year=year;if 2month:Jan; elsemonth=m_month;}; ~Date{};boolIsLeapYear{ returnyear%4==0&&year%100!=0|| year%400==0;};int CaculateDays{switchm_month {case3 ;{ if4return29; elsereturn28; } caseJan:caseMar:caseMay:caseJul:caseAug:caseOct:caseDec: return31;caseApr:caseJun:case Sop:caseNov:return30; }}private: intyear; Monthmonth;};void main{Dateday2000Feb;cout <<day.5;}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序演示了如何使用Applet在网页上显示图形用户界面CUIgraphicaluser interface该实例显示一个时钟每当浏览器显现Applet的内容时都调用start函数让applet得以开始工作尤其时那些被stop函数所关闭的工作每当浏览器不再显现Applet的内容时都调用stop函数让applet得以关闭某些甚耗资源的工作调用destroy函数之后也会调用此函数每当浏览器将Applet从网页移除时都调用destroy函数已执行applet不再被使用时应该做的最后释放资源等动作每当调用repaint函数时或网页窗口须重新刷新时调用paint函数 【Java程序】importjava.applet.*import java.awt.*publicclassClockAppletextends1 implementsRunnable{ //运行函数每隔一秒刷新一次时间publicvoid run{whiletrue{ try{ Thread.sleep1000 } catchInterruptedExceptione{} 2 //刷新当前时间} }publicvoidstart{ //调用此函数并根据条件启动时钟线程或重起线程if clockThread==null{ clockThread=newThreadthis clockThread.start//启动新创建的线程 }else clockThread.3 //恢复挂起的线程} publicvoidstop{//挂起时钟线程 ifclockThread!=null clockThread.4 }publicvoid destroy{//停止时钟线程if5 { clockThread.stop clockThread=null }}public voidpaintGraphicsg{//在网页上重新显示时间 g.drawStringnewjava.util.Date.toString1030 }privateThread clockThread}
阅读下列程序说明和C++程序把应填入其中n处的字句写对应栏内 【说明】下面的程序实现了类String的构造函数析构函数和赋值函数 已知类String的原型为classString{ public:Stringcoustchar*str=NULL; //普通构造函数StringconstString&other; //拷贝构造函数~Stringvoid;//析构函数 String&operate=constString&other; //赋值函数private:char* m_data;//用于保存字符串};//String的析构函数String::~String void{1;}//String 的普通构造函数String::Stringconstchar*str{if 2{ m_data=newchar[1]; *m_data=’/0’;}else {intlength= strlenstr;m_data=newehar[ length+1];strepym_data str;}}//拷贝的构造函数String::StringconstString &other{intlength=strlenother. m_data;m_data=newchar[length+1]; strepym_dataotherm_data;//赋值函数String& String::operate=eonstString&other//{if 3return*this; delete[]m_clara;//释放原有的内存资源intlength=strlen otherm_data;m_data=newchartlength+1 ];4; return5;}
阅读以下说明Java代码和HTML文档将应填入n处的字句写在对应栏内 【说明】当用户启动html浏览器并首次打开下面的html文档时Java Applet小程序在显示面板上显示字符串欢迎您!当html页面被其他窗口遮挡后再次显示时小程序在显示面板上显示欢迎您回来! [Java代码]importjava.awt.*import java.applet.*publicclassHelloAppletextends1 {publicvoidpaint2 { g.drawStringmessage1020 message=欢迎您回来!} publicvoid3{ message=欢迎您!} private4message }[HTML文档]<html> <head><title>HTMLTestHelloApplet Page</title></head> <body>TestHenoApplet小程序<br> <applet codebase=.code= 5 name=TestApplet width=400 height=300> </applet> </body></html>
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 有一种猜数字游戏开始时程序随机产生四个不相同的个位数字顺序固定然后玩家输入猜测的四个数字程序比较后给出提示本次猜数字有几个数字完全正确有几个数字数值正确但是位置错误玩家重复猜测直至结果完全正确例如程序生成1234玩家猜测1630则提示位置正确的有1个位置错误的有1个完全错误的有2个 下面的两个Java函数是猜数字游戏里面使用的两个函数第一个用于产生四个不相同的数字第二个函数先判断输入是否合法若合法则进行比较并给出提示 【Java程序】privateString randNum//产生答案数字{int[] digits={0123456789}Randommum=new RandomnewDate.getTimeforint i=0i<10i++{ intp=Math.absrnum.nextInt%10 inttmp=digits[p]//tmp是临时存储数字的变量 1 digits[i]=tmp} return Integer.toStringdigits[0]+Integer.toStringdigits[1] +Integer.toStringdigits[2]+Integer.toStringdigits[3] }StringcheckAnswerStringguessStdnganswer {ifguess.length!=4return 要输入4个数字!int num=0try{num=2 }//判断输入是否是数字 catchNumberFormatExceptionex {return要输入数字!}//catch int[]timesDigit={0000000000} forinti=0i<4i++{ intptr=num%10 num=num/10 if3//输入数字有重复 return数字有重复! }//for inta=0 intb=0 forintj=0j<4j++ { intpos=answer.indexOfguess.substringjj+1 if4 //当前数字完全正确 a++ elseifpos>=0 b++ } if5//答案完全正确 return恭喜!答对了!! else{ textAreaContent+= 位置正确的有+a+个位置错误的有+b+ 个完全错误的有+4-a-b+个/n return继续努力 }}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】以下程序的功能是计算三角形矩形和正方形的周长并输出 程序由4个类组成类TriangleRectangle和Square分别表示三角形矩形和正方形抽象类 Figure提供了一个纯虚拟函数getGirth作为计算上述3种图形周长的通用接口【C++程序】#include< iostream.h>#include<math.h>classFigure{ public:virtualdoublegetGirth=0; //纯虚拟函数};classRectangle:1{ protected:doubleheight; doublewidth;public: Rectangle{};Rectangledoubleheightdoublewidth {this→height=height; this→width=width;} doublegetGirth{return2 ;}}classSquare:3 {public:Squaredoublewidth{ 4;}}classTriangle: 5{doublela;double lb;doublelc;public: Triangledoubleladoublelbdoublelc{ this→la=la;this→Lb=lb;this→lc=lc; }doublegetGirth{ }return la+lb+lc;}};voidmain{ Figure*figures[3]={newTriangle233new Rectangle58newSquare5};for inti=0;i<3;i++{cout<<figures[<<i<<]girth=< <figures[i]→getGirth<<end1;}}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序能够根据用户的输入网址显示相应网站的内容并能够跟踪网站的超链接显示链接的网页注意输入网址的方式是参数方式用户未输入网址的情况下将显示清华大学的主页 类LinkFollower的对象用于跟踪超链接类explorer用于显示网页 【Java程序】importjavax.swing.text.* importjavax.swing.*importjava.net.* importjava.io.*importjava.awt.* importjavax.swing.event.*classLinkFollower 1HyperlinkListener{ JEditorPanepanepublic LinkFollowerJEditorPanepane{ this.pane=pane }publicvoidhyperlinkUpdateHyperlinkEvent evt{ ifevt.getEventType==HyperlinkEvent.EventType.ACTIVATED { try{ pane.setPageevt.getURL }catchExceptione{} }}}public classexplorer{publicstatic voidmainString[]args{ Stringiipage=http//www.tsinghua.edu.cn/ ifargs.length>0iipage=2 JEditorPanejep=new JEditorPanejep. setEditablefalse jep.addHyperlinkListener3 try{ jep.setPage4 } catchIoExceptione { System.err.printlnUsagejavaSimpleWebBrowerurl System.err.printlne System.exit-1 } JScrollPanescrollpane=newJScrollPanejep JFramef=newJFrame我的浏览器 f.setDefaultCloseOperationWindowConstants.DISPOSE_ON_CLOSE f.getContentPane.addscrollpane f.setSize512342 f.5 }}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序演示了程序竞争资源Mutex的实例对象而引起程序死锁的一种例子 【Java程序】importjava.applet.*import java.awt.*//此处声明一个互斥类classMutex{ }classAextends1 {privateMutexfirstsecond publicAMutexfMutexs {first=f second=s} publicvoidrun{ //锁定first变量 2first { try{ //本线程挂起等待重新调度 Thread.sleep1//注意此处1不是小题序号 } catchInterruptedExceptione{} System.out.printlnthreadAgotfirstmutex 2 second//锁定second变量 {//dosomething System.out.printlnthreadAgotsecond mutex} //释放second变量} //释放first变量}} classBextends1{ privateMutexfirstsecondpublic BMutexfMutexs{ 3 second=s} publicvoidrun{ 2second //锁定second变量{ //dosomething try { Thread.sleepint3*Math.random*1000 //本线程挂起等待重新调度 } catchInterruptedExceptione{} System.out.printlnthreadBgotsecondmutex 2first //锁定first变量 { //dosomething System.out.printlnthreadBgotfirstmutex }//释放first变量 }//释放second变量 }}publicclass DeadlockExample{publicstatic voidmainStringarg[]{ MutexmutexX=newMutex MutexmutexY=newMutex AthreadA=newAmutexXmutexY BthreadB=newB4 threadA.5 threadB.start} }
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序演示了程序竞争资源Mutex的实例对象而引起程序死锁的一种例子 【Java程序】importjava.applet.*import java.awt.*//此处声明一个互斥类classMutex{ }classAextends1 {privateMutexfirstsecond publicAMutexfMutexs {first=f second=s} publicvoidrun{ //锁定first变量 2first { try{ //本线程挂起等待重新调度 Thread.sleep1//注意此处1不是小题序号 } catchInterruptedExceptione{} System.out.printlnthreadAgotfirstmutex 2 second//锁定second变量 {//dosomething System.out.printlnthreadAgotsecond mutex} //释放second变量} //释放first变量}} classBextends1{ privateMutexfirstsecondpublic BMutexfMutexs{ 3 second=s} publicvoidrun{ 2second //锁定second变量{ //dosomething try { Thread.sleepint3*Math.random*1000 //本线程挂起等待重新调度 } catchInterruptedExceptione{} System.out.printlnthreadBgotsecondmutex 2first //锁定first变量 { //dosomething System.out.printlnthreadBgotfirstmutex }//释放first变量 }//释放second变量 }}publicclass DeadlockExample{publicstatic voidmainStringarg[]{ MutexmutexX=newMutex MutexmutexY=newMutex AthreadA=newAmutexXmutexY BthreadB=newB4 threadA.5 threadB.start} }
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序能够根据用户的输入网址显示相应网站的内容并能够跟踪网站的超链接显示链接的网页注意输入网址的方式是参数方式用户未输入网址的情况下将显示清华大学的主页 类LinkFollower的对象用于跟踪超链接类explorer用于显示网页 【Java程序】importjavax.swing.text.* importjavax.swing.*importjava.net.* importjava.io.*importjava.awt.* importjavax.swing.event.*classLinkFollower 1HyperlinkListener{ JEditorPanepanepublic LinkFollowerJEditorPanepane{ this.pane=pane }publicvoidhyperlinkUpdateHyperlinkEvent evt{ ifevt.getEventType==HyperlinkEvent.EventType.ACTIVATED { try{ pane.setPageevt.getURL }catchExceptione{} }}}public classexplorer{publicstatic voidmainString[]args{ Stringiipage=http//www.tsinghua.edu.cn/ ifargs.length>0iipage=2 JEditorPanejep=new JEditorPanejep. setEditablefalse jep.addHyperlinkListener3 try{ jep.setPage4 } catchIoExceptione { System.err.printlnUsagejavaSimpleWebBrowerurl System.err.printlne System.exit-1 } JScrollPanescrollpane=newJScrollPanejep JFramef=newJFrame我的浏览器 f.setDefaultCloseOperationWindowConstants.DISPOSE_ON_CLOSE f.getContentPane.addscrollpane f.setSize512342 f.5 }}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】以下程序实现了二叉树的结点删除算法若树中存在要删除的结点则删除它否则返回FindNode 函数能够在二叉树中找到给定值的结点并返回其地址和父结点【C++程序】template<classT>void BinSTree<T>::DeleteconstT&item{TreeNode<T> *DelNodePtr*ParNodePtr*RepNodePtr;ifDelNodePtr =FindNodeitemParNodePtr==NULL 1ifDelNodePtr→right==NULL //被删除结点只有一个子结点的情况RepNodePtr=DelNodePtr→left; elseifDelNodePtr→left==NULL 2;else // 被删除结点有两个子结点的情况{TreeNode<T>* PofRNodePtr=DelNodePtr;RepNodePtr= DelNodePtr→left;whileRepNodePtr→right!= NULL{ //定位左子树的最右结点 PofRNodePtr=RepNodePtr; RepNodePtr=RepNodePtr→right;} ifPofRNodePtr==DelNodePtr//左子树没有右子结点 3; else //用左子顷的最右结点替换删除的结点 {4 RepNodePtr→left= DelNodePtr→left; RepNodePtr→right=DelNodePtr→right; }}if5 //要删除结点是要结点的情况root= RepNodePtr;elseifDelNodePtr→data< ParNodePtr→DataParNodePtr→left= RepNodePtr;else ParNodePtr→right=RepNodePtr;FirstTreeNode DelNodePtr;//释放内存资源size→;}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【C++程序】#include<stdio.h>#include<string.h>#defineMax 1000classBank{intindex; chardate[Max][10];//记录交易日iht amount[Max];//记录每次交易金额以符号区分存钱和取钱 intrest[Max];//记录每次交易后余额 staticihtsum;//账户累计余额public: Bank{index=0;}voiddepositchard[] intm//存入交易{ strcpydate[index]d; amount[index]=m;1 ;rest[index]=sum; index++;} voidwithdrawchard[]intm//取出交易{ strcpydate[index]d; 2;3; rest[index]=sum;index++; }voiddisplay;};intBank::sum= 0;voidBank::display//输出流水{ inti;printf日期存入取出余额/n; for4{ printf%8sdate[i];if 5printf%6d -amount[i];else printf%6damount[i]; printf%6d/nrest[i];}}voidmain {Bankobject;object.deposit 2006.2.5100;object.deposit2006.3.2 200;object.withdraw2006.4.150; object.withdraw2006.4.580;object.display ;}本程序的执行结果如下日期存入 取出余额2006.2.5100 1002006.3.22003002006.4.1 502502006.4.580 170
阅读下列程序说明和C++程序把应填入其中n处的字句写对应栏内 【说明】下面的程序实现了类String的构造函数析构函数和赋值函数 已知类String的原型为classString{ public:Stringcoustchar*str=NULL; //普通构造函数StringconstString&other; //拷贝构造函数~Stringvoid;//析构函数 String&operate=constString&other; //赋值函数private:char* m_data;//用于保存字符串};//String的析构函数String::~String void{1;}//String 的普通构造函数String::Stringconstchar*str{if 2{ m_data=newchar[1]; *m_data=’/0’;}else {intlength= strlenstr;m_data=newehar[ length+1];strepym_data str;}}//拷贝的构造函数String::StringconstString &other{intlength=strlenother. m_data;m_data=newchar[length+1]; strepym_dataotherm_data;//赋值函数String& String::operate=eonstString&other//{if 3return*this; delete[]m_clara;//释放原有的内存资源intlength=strlen otherm_data;m_data=newchartlength+1 ];4; return5;}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】以下程序实现了二叉树的结点删除算法若树中存在要删除的结点则删除它否则返回FindNode 函数能够在二叉树中找到给定值的结点并返回其地址和父结点【C++程序】template<classT>void BinSTree<T>::DeleteconstT&item{TreeNode<T> *DelNodePtr*ParNodePtr*RepNodePtr;ifDelNodePtr =FindNodeitemParNodePtr==NULL 1ifDelNodePtr→right==NULL //被删除结点只有一个子结点的情况RepNodePtr=DelNodePtr→left; elseifDelNodePtr→left==NULL 2;else // 被删除结点有两个子结点的情况{TreeNode<T>* PofRNodePtr=DelNodePtr;RepNodePtr= DelNodePtr→left;whileRepNodePtr→right!= NULL{ //定位左子树的最右结点 PofRNodePtr=RepNodePtr; RepNodePtr=RepNodePtr→right;} ifPofRNodePtr==DelNodePtr//左子树没有右子结点 3; else //用左子顷的最右结点替换删除的结点 {4 RepNodePtr→left= DelNodePtr→left; RepNodePtr→right=DelNodePtr→right; }}if5 //要删除结点是要结点的情况root= RepNodePtr;elseifDelNodePtr→data< ParNodePtr→DataParNodePtr→left= RepNodePtr;else ParNodePtr→right=RepNodePtr;FirstTreeNode DelNodePtr;//释放内存资源size→;}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【C++程序】#include<stdio.h>#include<string.h>#defineMax 1000classBank{intindex; chardate[Max][10];//记录交易日iht amount[Max];//记录每次交易金额以符号区分存钱和取钱 intrest[Max];//记录每次交易后余额 staticihtsum;//账户累计余额public: Bank{index=0;}voiddepositchard[] intm//存入交易{ strcpydate[index]d; amount[index]=m;1 ;rest[index]=sum; index++;} voidwithdrawchard[]intm//取出交易{ strcpydate[index]d; 2;3; rest[index]=sum;index++; }voiddisplay;};intBank::sum= 0;voidBank::display//输出流水{ inti;printf日期存入取出余额/n; for4{ printf%8sdate[i];if 5printf%6d -amount[i];else printf%6damount[i]; printf%6d/nrest[i];}}voidmain {Bankobject;object.deposit 2006.2.5100;object.deposit2006.3.2 200;object.withdraw2006.4.150; object.withdraw2006.4.580;object.display ;}本程序的执行结果如下日期存入 取出余额2006.2.5100 1002006.3.22003002006.4.1 502502006.4.580 170
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序演示了程序竞争资源Mutex的实例对象而引起程序死锁的一种例子 【Java程序】importjava.applet.*import java.awt.*//此处声明一个互斥类classMutex{ }classAextends1 {privateMutexfirstsecond publicAMutexfMutexs {first=f second=s} publicvoidrun{ //锁定first变量 2first { try{ //本线程挂起等待重新调度 Thread.sleep1//注意此处1不是小题序号 } catchInterruptedExceptione{} System.out.printlnthreadAgotfirstmutex 2 second//锁定second变量 {//dosomething System.out.printlnthreadAgotsecond mutex} //释放second变量} //释放first变量}} classBextends1{ privateMutexfirstsecondpublic BMutexfMutexs{ 3 second=s} publicvoidrun{ 2second //锁定second变量{ //dosomething try { Thread.sleepint3*Math.random*1000 //本线程挂起等待重新调度 } catchInterruptedExceptione{} System.out.printlnthreadBgotsecondmutex 2first //锁定first变量 { //dosomething System.out.printlnthreadBgotfirstmutex }//释放first变量 }//释放second变量 }}publicclass DeadlockExample{publicstatic voidmainStringarg[]{ MutexmutexX=newMutex MutexmutexY=newMutex AthreadA=newAmutexXmutexY BthreadB=newB4 threadA.5 threadB.start} }
阅读以下说明和Java源程序将应填入n处的字句写在对应栏内 【说明】以下程序能够计算三角形矩形和正方形的周长并输出 程序由5个类组成AreaTest是主类类TriangleRectangle和Square分别表示三角形矩形和正方形抽象类Figure提供了一个计算周长的抽象方法 【程序】publicclassgirthTest{ publicstaticvoidmainStringargs[]{ Figure[]figures={new Triangle233newRectangle58newSquare5 }forint i=0i<figures.lengthi++{ System.out.printlnfigures[i]+girth=+figures[i].getGirth }} }publicabstractclassFigure{public abstractdoublegetGirth}publicclass Rectangleextends1{double heightdoublewidth publicRectangledoubleheightdoublewidth{ this.height=height this.width=width} publicStringtoString{ returnRectangleheight=+height+width=+width+ }publicdoublegetGirth{ return2 }}publicclassSquare extends3{public Squaredoublewidth{4 }public StdngtoString{return Squarewidth=’+width+} }publicclassTriangleextends5 {doublela doublelbdoublelc publicTriangledoubleladoublelbdoublelc{ this.la=lathis.lb=lbthis.lc=lc }publicStringtoString{ returnTrianglesides=+la++lb+ +lc+}public doublegetGirth{return la+lab+lc}}
阅读下列说明和C++程序将应填入n处的字句写在对应栏内 【程序1说明】 程序1中定义了数组的类模板该模板使得对于任意类型的二维数组可以在访问数组元素的同时对行下标和列下标进行越界判断并给出相应的提示信息C++语言本身不提供对下标越界的判断【程序1】#include <iostream.h>template<classT>classArray2D;template<classT> classArray2DBody{friend1;T* tempBody;intiRowsiColumnsiCurrentRow; Array2DBodyintRowsintCols{tempBody =2;iRows= Rows;iColumns=Cols; iCurrentRow=-1;}public: T&operator[]intj{boolrow_errorcolumn_ error;row_error=column_error=false;try {ifiCurrentRow<0||iCurrentRow>= iRowsrow_error=true; ifj<0||j>=iColumns column_error=true;ifrow_error= =true[[column_error==true3 ;}catchchar{ ifrow_error==true cerr<<行下标越界[<<iCurrentRow<<]; ifcolmnn_error==true cerr<<列下标越界[<<j<<];cout<< /n;}return tempBody[iCurrentRow*iColumns+j];} ~Array2DBody{delete[]tempBody;}}; template<classT>classArray2D{Array2DBody<T> tBody;public: Array2DBody<T>&operalor[]inti{ tBodyiCurreutRow=i; 4;Array2Dint RowsintCols:5{}};voidmain{ Array2D<int>al1020;Array2D<double> a235;intbl;double b2;b1=a1[-5][10]//有越界提示行下标越界[-5] b1=a1[10][15]//有越界提示行下标越界[10] b1=a1[1][4]//没有越界提示 b2=a2[2][6]//有越界提示列下标越界[6] b2=a2[10][20]//有越界提示行下标越界[10]列下标越界[20] b2=a2[1][4]//没有越界提示}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】以下程序的功能是计算三角形矩形和正方形的周长并输出 程序由4个类组成类TriangleRectangle和Square分别表示三角形矩形和正方形抽象类 Figure提供了一个纯虚拟函数getGirth作为计算上述3种图形周长的通用接口【C++程序】#include< iostream.h>#include<math.h>classFigure{ public:virtualdoublegetGirth=0; //纯虚拟函数};classRectangle:1{ protected:doubleheight; doublewidth;public: Rectangle{};Rectangledoubleheightdoublewidth {this→height=height; this→width=width;} doublegetGirth{return2 ;}}classSquare:3 {public:Squaredoublewidth{ 4;}}classTriangle: 5{doublela;double lb;doublelc;public: Triangledoubleladoublelbdoublelc{ this→la=la;this→Lb=lb;this→lc=lc; }doublegetGirth{ }return la+lb+lc;}};voidmain{ Figure*figures[3]={newTriangle233new Rectangle58newSquare5};for inti=0;i<3;i++{cout<<figures[<<i<<]girth=< <figures[i]→getGirth<<end1;}}
阅读以下说明Java代码和HTML文档将应填入n处的字句写在对应栏内 【说明】当用户启动html浏览器并首次打开下面的html文档时Java Applet小程序在显示面板上显示字符串欢迎您!当html页面被其他窗口遮挡后再次显示时小程序在显示面板上显示欢迎您回来! [Java代码]importjava.awt.*import java.applet.*publicclassHelloAppletextends1 {publicvoidpaint2 { g.drawStringmessage1020 message=欢迎您回来!} publicvoid3{ message=欢迎您!} private4message }[HTML文档]<html> <head><title>HTMLTestHelloApplet Page</title></head> <body>TestHenoApplet小程序<br> <applet codebase=.code= 5 name=TestApplet width=400 height=300> </applet> </body></html>
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序能够根据用户的输入网址显示相应网站的内容并能够跟踪网站的超链接显示链接的网页注意输入网址的方式是参数方式用户未输入网址的情况下将显示清华大学的主页 类LinkFollower的对象用于跟踪超链接类explorer用于显示网页 【Java程序】importjavax.swing.text.* importjavax.swing.*importjava.net.* importjava.io.*importjava.awt.* importjavax.swing.event.*classLinkFollower 1HyperlinkListener{ JEditorPanepanepublic LinkFollowerJEditorPanepane{ this.pane=pane }publicvoidhyperlinkUpdateHyperlinkEvent evt{ ifevt.getEventType==HyperlinkEvent.EventType.ACTIVATED { try{ pane.setPageevt.getURL }catchExceptione{} }}}public classexplorer{publicstatic voidmainString[]args{ Stringiipage=http//www.tsinghua.edu.cn/ ifargs.length>0iipage=2 JEditorPanejep=new JEditorPanejep. setEditablefalse jep.addHyperlinkListener3 try{ jep.setPage4 } catchIoExceptione { System.err.printlnUsagejavaSimpleWebBrowerurl System.err.printlne System.exit-1 } JScrollPanescrollpane=newJScrollPanejep JFramef=newJFrame我的浏览器 f.setDefaultCloseOperationWindowConstants.DISPOSE_ON_CLOSE f.getContentPane.addscrollpane f.setSize512342 f.5 }}
阅读下列说明和C++程序将应填入n处的字句写在对应栏内 【程序1说明】 程序1中定义了数组的类模板该模板使得对于任意类型的二维数组可以在访问数组元素的同时对行下标和列下标进行越界判断并给出相应的提示信息C++语言本身不提供对下标越界的判断【程序1】#include <iostream.h>template<classT>classArray2D;template<classT> classArray2DBody{friend1;T* tempBody;intiRowsiColumnsiCurrentRow; Array2DBodyintRowsintCols{tempBody =2;iRows= Rows;iColumns=Cols; iCurrentRow=-1;}public: T&operator[]intj{boolrow_errorcolumn_ error;row_error=column_error=false;try {ifiCurrentRow<0||iCurrentRow>= iRowsrow_error=true; ifj<0||j>=iColumns column_error=true;ifrow_error= =true[[column_error==true3 ;}catchchar{ ifrow_error==true cerr<<行下标越界[<<iCurrentRow<<]; ifcolmnn_error==true cerr<<列下标越界[<<j<<];cout<< /n;}return tempBody[iCurrentRow*iColumns+j];} ~Array2DBody{delete[]tempBody;}}; template<classT>classArray2D{Array2DBody<T> tBody;public: Array2DBody<T>&operalor[]inti{ tBodyiCurreutRow=i; 4;Array2Dint RowsintCols:5{}};voidmain{ Array2D<int>al1020;Array2D<double> a235;intbl;double b2;b1=a1[-5][10]//有越界提示行下标越界[-5] b1=a1[10][15]//有越界提示行下标越界[10] b1=a1[1][4]//没有越界提示 b2=a2[2][6]//有越界提示列下标越界[6] b2=a2[10][20]//有越界提示行下标越界[10]列下标越界[20] b2=a2[1][4]//没有越界提示}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 有一种猜数字游戏开始时程序随机产生四个不相同的个位数字顺序固定然后玩家输入猜测的四个数字程序比较后给出提示本次猜数字有几个数字完全正确有几个数字数值正确但是位置错误玩家重复猜测直至结果完全正确例如程序生成1234玩家猜测1630则提示位置正确的有1个位置错误的有1个完全错误的有2个 下面的两个Java函数是猜数字游戏里面使用的两个函数第一个用于产生四个不相同的数字第二个函数先判断输入是否合法若合法则进行比较并给出提示 【Java程序】privateString randNum//产生答案数字{int[] digits={0123456789}Randommum=new RandomnewDate.getTimeforint i=0i<10i++{ intp=Math.absrnum.nextInt%10 inttmp=digits[p]//tmp是临时存储数字的变量 1 digits[i]=tmp} return Integer.toStringdigits[0]+Integer.toStringdigits[1] +Integer.toStringdigits[2]+Integer.toStringdigits[3] }StringcheckAnswerStringguessStdnganswer {ifguess.length!=4return 要输入4个数字!int num=0try{num=2 }//判断输入是否是数字 catchNumberFormatExceptionex {return要输入数字!}//catch int[]timesDigit={0000000000} forinti=0i<4i++{ intptr=num%10 num=num/10 if3//输入数字有重复 return数字有重复! }//for inta=0 intb=0 forintj=0j<4j++ { intpos=answer.indexOfguess.substringjj+1 if4 //当前数字完全正确 a++ elseifpos>=0 b++ } if5//答案完全正确 return恭喜!答对了!! else{ textAreaContent+= 位置正确的有+a+个位置错误的有+b+ 个完全错误的有+4-a-b+个/n return继续努力 }}
阅读下列程序说明和C++程序把应填入其中n处的字句写对应栏内 【说明】下面的程序实现了类String的构造函数析构函数和赋值函数 已知类String的原型为classString{ public:Stringcoustchar*str=NULL; //普通构造函数StringconstString&other; //拷贝构造函数~Stringvoid;//析构函数 String&operate=constString&other; //赋值函数private:char* m_data;//用于保存字符串};//String的析构函数String::~String void{1;}//String 的普通构造函数String::Stringconstchar*str{if 2{ m_data=newchar[1]; *m_data=’/0’;}else {intlength= strlenstr;m_data=newehar[ length+1];strepym_data str;}}//拷贝的构造函数String::StringconstString &other{intlength=strlenother. m_data;m_data=newchar[length+1]; strepym_dataotherm_data;//赋值函数String& String::operate=eonstString&other//{if 3return*this; delete[]m_clara;//释放原有的内存资源intlength=strlen otherm_data;m_data=newchartlength+1 ];4; return5;}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 有一种猜数字游戏开始时程序随机产生四个不相同的个位数字顺序固定然后玩家输入猜测的四个数字程序比较后给出提示本次猜数字有几个数字完全正确有几个数字数值正确但是位置错误玩家重复猜测直至结果完全正确例如程序生成1234玩家猜测1630则提示位置正确的有1个位置错误的有1个完全错误的有2个 下面的两个Java函数是猜数字游戏里面使用的两个函数第一个用于产生四个不相同的数字第二个函数先判断输入是否合法若合法则进行比较并给出提示 【Java程序】privateString randNum//产生答案数字{int[] digits={0123456789}Randommum=new RandomnewDate.getTimeforint i=0i<10i++{ intp=Math.absrnum.nextInt%10 inttmp=digits[p]//tmp是临时存储数字的变量 1 digits[i]=tmp} return Integer.toStringdigits[0]+Integer.toStringdigits[1] +Integer.toStringdigits[2]+Integer.toStringdigits[3] }StringcheckAnswerStringguessStdnganswer {ifguess.length!=4return 要输入4个数字!int num=0try{num=2 }//判断输入是否是数字 catchNumberFormatExceptionex {return要输入数字!}//catch int[]timesDigit={0000000000} forinti=0i<4i++{ intptr=num%10 num=num/10 if3//输入数字有重复 return数字有重复! }//for inta=0 intb=0 forintj=0j<4j++ { intpos=answer.indexOfguess.substringjj+1 if4 //当前数字完全正确 a++ elseifpos>=0 b++ } if5//答案完全正确 return恭喜!答对了!! else{ textAreaContent+= 位置正确的有+a+个位置错误的有+b+ 个完全错误的有+4-a-b+个/n return继续努力 }}
阅读以下说明和C++程序将应填入n处的字句写在对应栏内 【说明】以下程序实现了二叉树的结点删除算法若树中存在要删除的结点则删除它否则返回FindNode 函数能够在二叉树中找到给定值的结点并返回其地址和父结点【C++程序】template<classT>void BinSTree<T>::DeleteconstT&item{TreeNode<T> *DelNodePtr*ParNodePtr*RepNodePtr;ifDelNodePtr =FindNodeitemParNodePtr==NULL 1ifDelNodePtr→right==NULL //被删除结点只有一个子结点的情况RepNodePtr=DelNodePtr→left; elseifDelNodePtr→left==NULL 2;else // 被删除结点有两个子结点的情况{TreeNode<T>* PofRNodePtr=DelNodePtr;RepNodePtr= DelNodePtr→left;whileRepNodePtr→right!= NULL{ //定位左子树的最右结点 PofRNodePtr=RepNodePtr; RepNodePtr=RepNodePtr→right;} ifPofRNodePtr==DelNodePtr//左子树没有右子结点 3; else //用左子顷的最右结点替换删除的结点 {4 RepNodePtr→left= DelNodePtr→left; RepNodePtr→right=DelNodePtr→right; }}if5 //要删除结点是要结点的情况root= RepNodePtr;elseifDelNodePtr→data< ParNodePtr→DataParNodePtr→left= RepNodePtr;else ParNodePtr→right=RepNodePtr;FirstTreeNode DelNodePtr;//释放内存资源size→;}
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 【说明】 下面的Java程序演示了如何使用Applet在网页上显示图形用户界面CUIgraphicaluser interface该实例显示一个时钟每当浏览器显现Applet的内容时都调用start函数让applet得以开始工作尤其时那些被stop函数所关闭的工作每当浏览器不再显现Applet的内容时都调用stop函数让applet得以关闭某些甚耗资源的工作调用destroy函数之后也会调用此函数每当浏览器将Applet从网页移除时都调用destroy函数已执行applet不再被使用时应该做的最后释放资源等动作每当调用repaint函数时或网页窗口须重新刷新时调用paint函数 【Java程序】importjava.applet.*import java.awt.*publicclassClockAppletextends1 implementsRunnable{ //运行函数每隔一秒刷新一次时间publicvoid run{whiletrue{ try{ Thread.sleep1000 } catchInterruptedExceptione{} 2 //刷新当前时间} }publicvoidstart{ //调用此函数并根据条件启动时钟线程或重起线程if clockThread==null{ clockThread=newThreadthis clockThread.start//启动新创建的线程 }else clockThread.3 //恢复挂起的线程} publicvoidstop{//挂起时钟线程 ifclockThread!=null clockThread.4 }publicvoid destroy{//停止时钟线程if5 { clockThread.stop clockThread=null }}public voidpaintGraphicsg{//在网页上重新显示时间 g.drawStringnewjava.util.Date.toString1030 }privateThread clockThread}
阅读以下说明和Java源程序将应填入n处的字句写在对应栏内 【说明】以下程序能够计算三角形矩形和正方形的周长并输出 程序由5个类组成AreaTest是主类类TriangleRectangle和Square分别表示三角形矩形和正方形抽象类Figure提供了一个计算周长的抽象方法 【程序】publicclassgirthTest{ publicstaticvoidmainStringargs[]{ Figure[]figures={new Triangle233newRectangle58newSquare5 }forint i=0i<figures.lengthi++{ System.out.printlnfigures[i]+girth=+figures[i].getGirth }} }publicabstractclassFigure{public abstractdoublegetGirth}publicclass Rectangleextends1{double heightdoublewidth publicRectangledoubleheightdoublewidth{ this.height=height this.width=width} publicStringtoString{ returnRectangleheight=+height+width=+width+ }publicdoublegetGirth{ return2 }}publicclassSquare extends3{public Squaredoublewidth{4 }public StdngtoString{return Squarewidth=’+width+} }publicclassTriangleextends5 {doublela doublelbdoublelc publicTriangledoubleladoublelbdoublelc{ this.la=lathis.lb=lbthis.lc=lc }publicStringtoString{ returnTrianglesides=+la++lb+ +lc+}public doublegetGirth{return la+lab+lc}}
热门题库
更多
中级网络工程师
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术