1、程序员-Java 试题及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】下面的 Java 程序演示了如何在用户等待载入主程序时显示 logo 图片的例子。logo 图片 mylogo.gif 存放在文件夹 image 下面。显示 logo 图片的是一个线程类 logo。【Java 程序】import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.ImageIcon.
2、*;import java.lang.Runnable;public class mainFrame extends JFramepublic static void main(String args)Logo lg=new Logo(“image/mylogo.gif“);lg. U(1) /U;mainFrame main_framE = new mainFrame();main_framesetTitle(“使用 logo 图片示例程序”);Thread.sleep(1);/程序暂时挂起main_framesetVisible(true);lgU (2) /U;/使 logo 图片不可见
3、class Logo extends JWindow implementsU (3) /UString filename;/Logo 图像文件的文件名public Logo(Stringname)filename = name;public void run()ImageIcon ig = new ImageIcon(filename);JButton btn = new JButton(ig); /将图片给 JButton 显示getContentPane()U (4) /U; /将按钮加到 JPanel 里Toolkit kit = ToolkitgetDefauhToolkit();Di
4、mension screenSize = kitgetScreenSize(); /获得屏幕的大小setLocation(screenSizewidth/4,screenSizeheight/4);/将 Logo 窗口显示在屏幕宽的 1/4,高的 1/4 处setSize(ig. getIconWidth(),ig. getIconHeight(); /将 Logo 窗口大小设成图像的大小toFront(); /将 Logo 窗口显示为最前面的窗口setVisible(true) U(5) /U; /显示该窗口public void setNOtVisible()setVisible(fals
5、e);(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_二、B试题二/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】Java 语言允许用户在需要时创建自己的异常类型,用于表达 JDK 中未涉及到的其他异常状况,这些异常必须继承 Throwable 类或其子类。用户自定义异常类通常属于 Exception 范畴,依据命名惯例,应以Exception 结尾。用户自定义异常未被加入 JRE(Java 运行时环境)的控制逻辑中,因
6、此永远不会自动抛出,只能由人工创建并抛出。【Java 程序】class MyExceptionU (1) /UExceptionprivate String id;public MyException(String message,String id)U (2) /U;/调用父类的构造函数this. id=id;Public String getId()return id;public class Testpublic void testException()throws MyExceptionthrowU (3) /U (“抛出自定义异常”,“123”);public void catchE
7、xception()tlytestException();U (4) /U (MyException e)Systemoutprint(“捕获了如下异常:”);e.printStackTrace();public void static main(String args)Test t=new Test();tcatchException();程序输出如下(补充完整):捕获了如下异常:U (5) /Uat TesttestException()(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.0
8、0)_三、B试题三/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示“位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。下面的两个 Java 函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相同的数字。第二个函数先判断输入是否合法,若合法则进行
9、比较,并给出提示。【Java 程序】private String randNum()/产生答案数字int digits=0,1,2,3,4,5,6,7,8,9;Random mum=new Random(new Date().getTime();for(int i=0;i10;i+)int p=Mathabs(rnum.nextInt()%10;int tmp=digitsp;/tmp 是临时存储数字的变量U (1) /U;digitsi=tmp;return IntegertoString(digits0)+IntegertoString(digits1)+IntegertoString(d
10、igits2)+IntegertoString(digits3);String checkAnswer(String guess,Stdng answer)if guesslength()!=4)return “要输入 4 个数字!“;int num=0;try num=U (2) /U; /判断输入是否是数字catch(NumberFormatException ex)return “要输入数字!“;/catchinttimesDigit=0,0,0,0,0,0,0,0,0,0;for(int i=0;i4;i+)int ptr=num%10;num=num/10;ifU (3) /U /输
11、入数字有重复return “数字有重复!“;/forint a=0;int b=0;for(int j=0;j4;j+)int pos=answerindexOf(guesssubstring(j,j+1);ifU (4) /U /当前数字完全正确a+;else if(pos=0)b+;ifU (5) /U /答案完全正确return “恭喜!答对了!“;elsetextAreaContent+= “位置正确的有:“+a+“个,位置错误的有:“+b+“个,完全错误的有“+(4-a-b)+“个/n“;return “继续努力“;(分数:15.00)(1).(分数:3.00)_(2).(分数:3.
12、00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_四、B试题四/B(总题数:1,分数:15.00)阅读以下说明和 Java 源程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序能够计算三角形、矩形和正方形的周长并输出。程序由 5 个类组成:AreaTest 是主类,类 Triangle、Rectangle 和 Square 分别表示三角形、矩形和正方形,抽象类 Figure 提供了一个计算周长的抽象方法。【程序】public class girthTestpublic static void main (String args)Figurefi
13、gures=new Triangle (2,3,3),new Rectangle(5,8),new Square(5);for(int i=0;ifigureslength;i+)Systemoutprintln(figuresi+“girth=“+figuresigetGirth();public abstract class Figurepublic abstract double getGirth();public class Rectangle extendsU (1) /Udouble height;double width;public Rectangle(double heigh
14、t,double width)thisheight=height;thiswidth=width;public String toString()return “Rectangle:height=“+height+“,width=“+width+“:“;public double getGirth()returnU (2) /U;public class Square extendsU (3) /Upublic Square(double width)U (4) /U;public Stdng toString()return “Square:width=+width+“:“;public c
15、lass Triangle extendsU (5) /Udouble la;double lb;double lc;public Triangle(double la,double lb,double lc)thisla=la;this.lb=lb;thislc=lc;public String toString()return “Triangle:sides=“ +la+“,“ +lb+“,“ +lc+“:“;public double getGirth()return la+lab+lc;(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00
16、)_(4).(分数:3.00)_(5).(分数:3.00)_五、B试题五/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】下面的 Java 程序演示了程序竞争资源(Mutex 的实例对象)而引起程序死锁的一种例子。【Java 程序】import javaapplet*;import javaawt*;/此处声明一个互斥类class Mutex class A extends U(1) /Uprivate Mutex first,second;public A(Mutex f,Mutex s)first = f;second = s;
17、public void run()/锁定 first 变量U (2) /U (first)try /本线程挂起,等待重新调度Threadsleep(1); /注意此处(1)不是小题序号catch(InterruptedException e)System. out. println(“threadA got first mutex“);U (2) /U (second) /锁定 second 变量 /do somethingSystem. out. println(“threadA got second mutex“); /释放 second 变量 /释放 first 变量class B ex
18、tendsU (1) /Uprivate Mutex first,second;public B(Mutex f,Mutex s)U (3) /U;second = s;public void run()U (2) /U (second) /锁定 second 变量/do somethingtryThreadsleep(int)(3*Mathrandom()*1000);/本线程挂起,等待重新调度catch(InterruptedException e)Systemoutprintln(“threadB got second mutex“);U (2) /U (first) /锁定 first
19、 变量/do somethingSystemoutprintln(“threadB got first mutex“); /释放 first 变量 /释放 second 变量public class DeadlockExamplepublic static void main(String arg)Mutex mutexX = new Mutex();Mutex mutexY = new Mutex();AthreadA = new A(mutexX,mutexY);B threadB = new BU (4) /U;threadAU (5) /U;threadBstart();(分数:15.
20、00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_六、B试题六/B(总题数:1,分数:15.00)阅读以下说明、Java 代码和 HTML 文档,将应填入(n)处的字句写在对应栏内。【说明】当用户启动 html 浏览器并首次打开下面的 html 文档时,Java Applet 小程序在显示面板上显示字符串“欢迎您!”;当 html 页面被其他窗口遮挡后再次显示时,小程序在显示面板上显示“欢迎您回来!”Java 代码import javaawt*;import javaapplet*;public c
21、lass HelloApplet extendsU (1) /Upublic void paint(U (2) /U)g.drawString(message,10,20);message=“欢迎您回来!“;public void U(3) /U ()message=“欢迎您!“;private U(4) /U message;HTML 文档htmlheadtitleHTML Test HelloApplet Page/title/headbodyTest HenoApplet 小程序brappletcodebase=“.“code=“U (5) /U“name=“TestApplet“wid
22、th=“400“height=“300“/applet/body/html(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_七、B试题七/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】下面的 Java 程序能够根据用户的输入网址,显示相应网站的内容,并能够跟踪网站的超链接,显示链接的网页。注意输入网址的方式是参数方式。用户未输入网址的情况下,将显示清华大学的主页。类 LinkFollower 的对象用于跟踪超链接,类 ex
23、plorer 用于显示网页。【Java 程序】import javax. swing. text.*;import javax. swing. *;import java. net. *;import javaio*;import javaawt*;import javaxswingevent*;class LinkFollowerU (1) /UHyperlinkListenerJEditorPane pane;public LinkFollower(JEditorPane pane)this. pane=pane;public void hyperlinkUpdate(HyperlinkE
24、vent evt)if(evt. getEventType()= =HyperlinkEvent. EventTypeACTIVATED)trypanesetPage(evt. getURL();catch(Exception e)public class explorerpublic static void main(String args)String iipage=“http:/wwwtsinghuaeducn/“;if(argslength0)iipage=U (2) /U;JEditorPane jep=new JEditorPane();jep. setEditable(false
25、);jepaddHyperlinkListenerU (3) /U;tryjepsetPageU (4) /U;catch(IoExceptione)Systemerr. println(“Usage:java SimpleWebBrower url“);Systemerr. println(e);Systemexit(-1);JScrollPane scrollpane=new JScrollPane(jep);JFrame f=new JFrame(“我的浏览器“);fsetDefaultCloseOperation(WindowConstantsDISPOSE_ON_CLOSE);fge
26、tContentPane()add(scrollpane);f. setSize(512,342);fU (5) /U;(分数:15.00)(1).(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_八、B试题八/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】下面的 Java 程序演示了如何使用 Applet 在网页上显示图形用户界面 CUI(graphical user interface),该实例显示一个时钟。每当浏览器显现 Applet 的内容时
27、都调用 start()函数,让 applet 得以开始工作(尤其时那些被 stop()函数所关闭的工作)。每当浏览器不再显现 Applet 的内容时都调用 stop()函数,让applet 得以关闭某些甚耗资源的工作调用 destroy()函数之后也会调用此函数。每当浏览器将 Applet 从网页移除时都调用 destroy()函数,已执行“applet 不再被使用时“应该做的最后释放资源等动作。每当调用 repaint()函数时,或网页窗口须重新刷新时调用 paint()函数。【Java 程序】import javaapplet*;import javaawt*;public class C
28、lockApplet extends U(1) /U implements Runnable /运行函数,每隔一秒刷新一次时间public void run()while (true)tryThreadsleep(1000);catch (InterruptedException e)U (2) /U; /刷新当前时间public void start() /调用此函数,并根据条件启动时钟线程或重起线程if( clockThread= =null)clockThread = new Thread(this);clockThread. start();/启动新创建的线程elseclockThre
29、adU (3) /U;/恢复挂起的线程public void stop() /挂起时钟线程if (clockThread ! = null)clockThreadU (4) /U;public void destroy()/停止时钟线程ifU (5) /UclockThreadstop();clockThread = null;public void paint(Graphics g)/在网页上重新显示时间g. drawString( new javautil. Date()toString(), 10,30);private Thread clockThread;(分数:15.00)(1).
30、(分数:3.00)_(2).(分数:3.00)_(3).(分数:3.00)_(4).(分数:3.00)_(5).(分数:3.00)_程序员-Java 试题答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,将应填入(n)处的字句写在对应栏内。【说明】下面的 Java 程序演示了如何在用户等待载入主程序时显示 logo 图片的例子。logo 图片 mylogo.gif 存放在文件夹 image 下面。显示 logo 图片的是一个线程类 logo。【Java 程序】import javax.swing.*;import
31、 java.awt.*;import java.awt.event.*;import javax.swing.ImageIcon.*;import java.lang.Runnable;public class mainFrame extends JFramepublic static void main(String args)Logo lg=new Logo(“image/mylogo.gif“);lg. U(1) /U;mainFrame main_framE = new mainFrame();main_framesetTitle(“使用 logo 图片示例程序”);Thread.sl
32、eep(1);/程序暂时挂起main_framesetVisible(true);lgU (2) /U;/使 logo 图片不可见class Logo extends JWindow implementsU (3) /UString filename;/Logo 图像文件的文件名public Logo(Stringname)filename = name;public void run()ImageIcon ig = new ImageIcon(filename);JButton btn = new JButton(ig); /将图片给 JButton 显示getContentPane()U
33、(4) /U; /将按钮加到 JPanel 里Toolkit kit = ToolkitgetDefauhToolkit();Dimension screenSize = kitgetScreenSize(); /获得屏幕的大小setLocation(screenSizewidth/4,screenSizeheight/4);/将 Logo 窗口显示在屏幕宽的 1/4,高的 1/4 处setSize(ig. getIconWidth(),ig. getIconHeight(); /将 Logo 窗口大小设成图像的大小toFront(); /将 Logo 窗口显示为最前面的窗口setVisible(true) U(5) /U; /显示该窗口public void setNOtVisible()setVisible(false);(分数:15.00)(1).(分数:3.00)_正确答案:()解析:(2).(分数:3.00)_正确答案:()解析:setNotVisible() 解析 阅读 logo 类的实现代码不难看出函数 setNotVisible()能使 logo 窗口不可见。(3).(分数:3.00)_正确答案:()解析:Runnable 解析 创建线程类的一个方法是实现接口 Runnable,另一个方法是继承类 Thread。(4).(分数:3.00)_正确答案:()解析:a
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1