国家二级(JAVA)机试模拟试卷1(共27题)_第1页
国家二级(JAVA)机试模拟试卷1(共27题)_第2页
国家二级(JAVA)机试模拟试卷1(共27题)_第3页
国家二级(JAVA)机试模拟试卷1(共27题)_第4页
国家二级(JAVA)机试模拟试卷1(共27题)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(JAVA)机试模拟试卷1(共9套)(共27题)国家二级(JAVA)机试模拟试卷第1套一、基本操作题(本题共1题,每题1.0分,共1分。)1、当按下鼠标时,一个圆不断地增大半径。注意:请勿改动已有语句内容,仅在下划线处填入适当的语句。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassex1extendsappletimplementsMouseListener{TextFieldtext;intx;publicvoidinit(){x=6;text=newTextField(30);add(text);addMouseListener(this);}publicvoidpaint(Graphicsg){x=x+2;g.drawOval(10,10,x,x);}publicvoidmousePressed(MouseEvente){Text.setText("鼠标按下的位置是:"+e.getX()+","e.getY());repaint();}publicvoidmouseReleased(MouseEvente){Text.setText("鼠标松开的位置是:"+e.getX()+","e.getY());repaint();}publicvoidmouseEntered(MouseEvente){Text.setText("鼠标进来的位置是:"+e.getX()+","e.getY());repaint();}publicvoidmouseExited(MouseEvente){Text.setText("鼠标退出的位置是:"+e.getX()+","e.getY());______;}}标准答案:repaint()知识点解析:本题考查对鼠标事件的掌握,鼠标事件有很多种,最常用的有mousePressed(MouseEvent)、mouseReleased(MouseEvent)、mouseEntered(MouseEvent)、mouseExited(MouseEvent)、mouseClicked(MouseEvente)等。MouseEvent有几个重要的方法,getX()、getY()、getModifiers()、getClickCount()、getSource()等。本题目中的空白处应该填写repaint()。二、简单应用题(本题共1题,每题1.0分,共1分。)2、在程序中,DataPool是一个数据池,能存放一个血型数据,线程a和线程b负责向其中存放数据,一次只能有一个线程向其中存放数据,数据放入DataPool以后,该线程随机休眠一段时间,让另外一个线程运行,请将程序补充完整。注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。classPutDataextendsThread{DataPools;intc;Stringname;publicPutData(DataPools,Stringname){this.s=s;=name;}publicvoidrun(){for(inti=0;i<10000000;i++){c=(int)(Math.random()*10);s.setData(c);System.out.println(name+":push"+c);try{______((int)(Math.random()*1000));//休眠}catch(InterruptedExceptione){}}}}classDataPool{privateintdata=0;public______voidsetData(intd){data=d;}}publicclasssimple{publicstaticvoidmain(String[]args){DataPools=newDataPool();PutDataa=newPutData(s,"Threada");PutDatab=newPutData(s,"Threadb");a.start();b.start();}}标准答案:sleepsynchronized知识点解析:本题考查知识点:线程的要领和使用、线程的同步和共享。解题思路:线程类Thread提供了一系列控制线程的方法,让线程休眠,就是其中的一种。本题中定义了PutData的两个实例a和b。PutData的run方法中,利用一个循环向DataPool中存放10000000个随机数据,每存放一个数据以后休眠一段时间,让其他线程运行。第1个空,让线程休眠使用的方法是sleep()。该方法使线程暂停运行一段时间,在这段时间内线程不会抢占CPU资源,为其他线程的运行提供了机会。本题的第2个空是考查线程的同步和互斥的问题,当线程A和线程B都调用setData方法改变data数值时,在同一段时间内,只能允许一个线程进行操作,这就需要两个线程之间互斥访问setData()方法。synchronized允许线程独占地存取对象,当synchronized声明的程序块已经被一个线程占用,其他线程就必须等待该线程放弃这个程序块的控制权以后才能对其进行访问。因此,第2个空需要填写synchronized。三、综合应用题(本题共1题,每题1.0分,共1分。)3、以下程序从键盘读取一个字符串以‘#’作为结束,再将字符串中的小写英文字母改写成大写英文字母,最后将改写好的字符串写入磁盘文件file.txt,请将程序补充完整。注意:不改动程序结构,不得增行或删行。packagech3;importjava.io.*;classFile1{privatecharch;privateinti=’a’-’A’;voidsavetoFile(){System.out.println("请输入一个字符串:");try{______out=new______("ch3/file.txt");while((ch=(char)System.in.______())!=’#’){if(ch>=’a’&&ch<=’z’)ch=(char)((int)ch-i);out.______;}out.close();}catch(IOExceptione){e.printStackTrace();}}}publicclassex3{publicstaticvoidmain(String[]args){File1obj=newFile1();Obj.savetoFile();}}标准答案:FileOutputStreamFileOutputStreamreadwrite(ch)知识点解析:本题是考查对文件输出流及其常用方法的理解。这里用文件输出流FileOutputStream创建向文件file.txt中写入字节数据的输出流,每次使用System.in的方法read()读取一个字符,然后进行转换,再调用FileOutputStream类的write()方法将转换后的字符写到文件对象中,这里的参数是字符类型的变量ch。因此,4个空的答案分别是FileOutputStream、FileOutputStream、read和write(ch)。国家二级(JAVA)机试模拟试卷第2套一、基本操作题(本题共1题,每题1.0分,共1分。)1、“角谷猜想”指出将一个自然数按以下的规则进行运算:若数为偶数,则除以2;若为奇数乘3加1。将得到的数按该规则重复运算,最终可得1。请在下面程序得每条横线处填写一和语句,使程序的功能完整。(如:输入34,则输出结果为34175226134020105168421)注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。importjava.io.*;classJiaoGu{publicstaticvoidmain(Stringargs[]){System.out.print("\n请输入一个数");try{BufferedReaderbr=newBufferedReader(newlnputStreamReader(System.in));Strings="";try{s=br.readline();}catch(IOExceptine){}__________while(a!=1){System.out.print(""+a);if(a%2==1)__________elsea=a/2;}System.out.println(""+a);}__________{}}}标准答案:inta=Integef.parseInt(s);a=a*3+1;catch(Exceptione)知识点解析:暂无解析二、简单应用题(本题共1题,每题1.0分,共1分。)2、请完成下列Java程序:创建一个进度条,可以控制其开始和暂停。要求进度条与线程关联,由线程控制,点击开始按钮开始进度条的滚动,点击停止按钮,暂停,继续点击开始按钮则继续进行。注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;importjava.awt.event.*;publicclassex15_2extendsJPanel{ThreadProgthProgress;JProgressBarjPb;//声明一个进程条对象staticJFramejf;publicex15_2(){setLayout(newBorderLayout());jPb=newJProgressBar();add(jpb,"Center");JPanelbtnPanel=newJPanel();JButtonbtnStart=newJButton("开始");btnPanel.add(btnStart);btnStart.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventae){__________;}});JButtonbtnStop=newJButton("停止");btnPanel.add(btnStop);btnStop.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventae){__________;}});add(btnPanel,BorderLayout.SOUTH);}publicvoidstartProgress(){if(thProgress==null||!thProgress.isAlive()){thProgress=newThreadProg(jpb);thProgress.start();}}publicvoidstopProgress(){thProgress.setStop(true);}pubUcstaticVOidmain(Stringargs[]){jf=newJPrame("ex15_2");ex15_2obj15_2=newex15_2();jf.getContentPane().add("Center",obj15_2);jf.setSize(250,80);jf.addWindowListener(newWindowAdapter(){pubhcvoidwindowClosing(WindowEventwe){System.exit(0);}});jf.setVisible(true);}}classThreadProgextendsThread{privateJProgressBarjpb;privatebooleanbStop=false;privatebooleanbAlive=false;pubhcThreadProg(JProgressBarjpb){this.jpb=jpb;}publicVOidsetStop(booleanb){bStop=b;}publicvoidrun(){intmin=0;intmax=60;jpb.setMinimum(min);jpb.setMaximum(max);jpb.setValue(min);for(intx=min;x<=max;x++){if(bStop){break;}else{jpb.setValue(x);try{Thread.sleep(150);}catch(InterruptedExceptione){}}}bAlive=false;}}标准答案:startProgress()stopProgress()知识点解析:暂无解析三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以声文本区已有的文本基础上追加显示10条"WelcometoChina!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;/*〈appletcode="exl3_4.class"width=800height=400〉〈/applet〉*/publicclassexl4_3extendsJApplet{JButtonjb=newJButton("AddText");JTextPanejtp=newJTextPane();publicvoidinit(){jb.addActionListener(newAc60nListener(){pubhcvoidactionPerformed(ActionEvente){for(inti=1;i<10;i++)jtp.geText(jtp.setText()+"WelcometoChina!\n");}});Containercp=getContentPane();cp.add(newJScrollPane(jtp));cp.add(BorderLayout.SOUTH,jtp);}publicstaticvoidmain(Stdng[]args){ex14_3obj14_3=newex14_3();Stringstr=obj14_3.getClass().toString();if(str.indexOf("class")!=-1)str=str.substring(6);JFramefrm=newJFrame(str);frm.addWindowListener(newWindowAdapter(){pubhcvoidwindowClosing(WindowEventwe){System.exit(0);}{);frm.getContentPane().add(ex3_10);frm.setSize(300,400);frm.setVisible(true);}}ex14_3.html〈HTMI〉〈HEAD〉〈TITLE〉ex14_3〈/HEAD〉〈BODY〉〈appletcode="ex14_3.class"width=800height=400〉〈/applet〉〈/BODY〉〈/HTML〉标准答案:setText(jtp.getText()+"WelcometoChina!\n")cp.add(BorderLayout.SOUTH,jb)frm.getContentPane().add(obj14_3)知识点解析:暂无解析国家二级(JAVA)机试模拟试卷第3套一、基本操作题(本题共1题,每题1.0分,共1分。)1、有两个文件Java_1.java和Java_1.html,其中Java_1.java是不完整的。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。[题目要求]完善Java_1.java文件并进行调试(在命令行中使用appletviewerJava_1.html,或者使用集成开发环境),使程序输出结果如下图所示。Java_1.java文件源程序:importjava.applet.*;//引入Applet类importjava.awt.Graphics://引入Graphics类publicclassJava_1extends(1){publicvoidpaint((2)g){g.drawString("欢迎你参加Java考试!",25,25);}}Java_1.html文件源程序:<html><appletcode=Java_1.classwidth=300height=30></applet></html>标准答案:AppletGraphics知识点解析:每个Applet必须定义为Applet或JApplet的子类。因为程序中没有用到swing空间,所以此处应填Applet。这个考点在Applet中经常出现。paint()方法具体执行Applet的绘制。定义为:publicvoidpaint(Graphicsg)。该方法有一个参数g是Graphics的实例,该实例对象由浏览器生成。[程序解析]本程序考查的是Applet小程序。Applet自身不能运行,必须嵌入到Web浏览器或Javaappletviewer中运行。二、简单应用题(本题共1题,每题1.0分,共1分。)2、请完善程序(程序文件名:Java_2.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。[题目要求]在主线程中创建了一个线程,该线程休眠50ms,然后给变量i赋值。主线程要等该子线程结束后获得并输出i的值,使程序的输出结果如下:j=10,a.i=10源程序:publicclassJava_2{publicstaticvoidmain(Stringargs[]){try{Sleepa=newSleep();Threadt=newThread(a);t.(1)();t.join();intJ=a.i;System.out.println("j="+j+",a.i="+a.i);}catch(Exceptione){}}}classSleepimplementsRunnable{inti;publicvoidrun(){try{Thread.(2)(50);i=10;}catch(InterruptedExceptione){}}}标准答案:(1)start(2)sleep知识点解析:题目要求中提到该线程休眠50ms,然后给变量赋值,所以此处应填让线程休眠的方法sleep。[程序解析]本程序通过实现Runnable接口重写run()方法创建线程t。在此程序中用到了3个方法:(1)start()——刚创建的线程t不会自动运行,需要start方法把嵌入线程中的虚拟CPU置为可运行状态,意味着线程可被调度执行。(2)t.join()——使当前的线程等待,直到t结束为止,线程恢复到可运行状态。(3)sleep()——该方法使一个线程暂停一段固定时间。三、综合应用题(本题共1题,每题1.0分,共1分。)3、请完善程序(程序文件名:Java_3.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。[题目要求]在点击“Exit”按钮和窗口右上角的关闭按钮时,可以关闭窗口。程序运行后的界面如下图所示。源程序:importjava.awt.*;importjava.awt.(1).*;publicclassJava_3implementsActionListener,(2){Framef;Buttonbe,bw,bs,bn,bc;publicvoidcreate(){f=(3);be=newButton("East");bw=newButton((4));bs=newButton("South");bn=newButton("North");bc=newButton("Exit");f.add(be,(5));f.add(bw,"West");f.add(bs,"South");f.add(bn,"North");f.add(be,"Center");bc.addActionListener(this);//为按钮注册监听器f.addWindowListener(this);//为按钮注册监听器f.setSize(200,200);f.setVisible((6));}publicstaticvoidmain(Stringargs[]){Java_3fa=newJava_3();fa.create();}publicvoidactionPerformed(ActionEvente){System.exit(0);//实现窗口关闭功能};publicvoidwindowOpened(WindowEvente){}publicvoidwindowClosing(WindowEvente){System.exit(0);//实现窗口关闭功能};publicvoidwindowClosed(WindowEvente){}publicvoidwindowIconified(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}publicvoidwindowActivated(WindowEvente){}publicvoidwindowDeactivated(WindowEvente){}}标准答案:eventWindowListenerFlewFrame()"West""East"true知识点解析:因为Frame实例化后初始是不可见的,所以需要在程序中设为可见,即通过方法setvisible(true)使其显示。[程序解析]本程序考查图形用户界面下的BorderLayout布局管理器。BorderLayout布局管理器是Window、Frame和Dialog的默认布局管理器。BorderLayout布局管理器把容器分成5个区域:North、South、East、West和Center,每个区域只能放置一个构件。另外本程序还涉及事件和窗口两种监听器接口。国家二级(JAVA)机试模拟试卷第4套一、基本操作题(本题共1题,每题1.0分,共1分。)1、在程序中,给出两个整数4和5,计算他们的和,并在屏幕上显示出来。请将程序补充完整。注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。______Add{privateinta;privateintb;publicAdd(intn1,intn2){a=nl;b=n2;}publicintgetAdd(){returna+b;}}publicclassbasic{public______voidmain(String[]args){intn1=4,n2=5;AddaAddB=______Add(nl,n2);System.out.println("4+5="+aAddB.getAdd());}}标准答案:classnewstatic知识点解析:本题考查知识点:面向对象编程的基本概念和特征,类的基本组成和使用,对象的生成和使用。解题思路:本题主要考查Java编程中类的使用。主方法生成Add类对象的实例aAddB,然后调用getAdd()方法计算出4加5的和。首先,定义类必须使用关键字class,因此第1个空应该填写class。在生成类的对象时,必须使用关键字new,由此得到第2个空。Main方法作为Java的一个特殊方法,其最大的特点就是这个方法始终都是静态的,因为一个程序必须要有一个静态的入口,系统才能对其进行调用,所以第3个空应该填写static。二、简单应用题(本题共1题,每题1.0分,共1分。)2、本程序中,主窗口有一个按钮“显示对话框”,点击该按钮后显示一个对话框,对话框的标题是“对话框”,其上有一个文字标签“这是一个练习,希望大家都能考个好成绩”,此时仍允许对原来窗口进行操作,当关闭新生成的对话框时退出程序。运行结果如图所示。注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。Import__________;importjava.awt.event.*;importjavax.swing.*;publicclassExample2_2extendsFrameimplementsActionListener{privateDialogdlg;privateButtonbut;publicstaticvoidmain(Stringargv[]){Example2_2f=newExample2_2("Example2_2");Panelpan=newPanel();}publicExample2_2(Stringstr){super(str);setSize(200,200);setLayout(newFlowLayout());but=newButton("显示Dialog");add(but);but.addActionListener(this);dlg=newDialog(______,"Dialog",false);dlg.add("Center",newLabel("这是一个练习,希望大家都能考个好成绩"));dlg.setSize(300,100);setVisible(true);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});dlg.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){dlg.setVisible(true);//显示介面}}标准答案:java.awt.*this知识点解析:本题考查知识点:AWT库的使用、AWT与Swing比较。解题思路:类Example2_2继承了Frame框架,同时也是一个事件监听器。这个监听器的事件响应结果为,显示“dlg”构件。构造方法中声明了一个名为“but”的按钮构件,还声明了一个名为dlg的对话框构件。addWindowListener语句为Frame框架的关闭按钮添加事件响应,dlg.addwindowListener语句为“dlg”的关闭按钮添加事件响应,这两个事件响应的结果都是退出程序。在使用AWT库时,首先需要将AWT库引进到程序中,包含AWT库的包为java.awt.*,即第一个空的内容。本题中所使用到的构件都是AWT的构件,AWT中的Dialog类是一个对话框类,用于生成对话框对象,它是容器的一种,可以独立显示,但必须依赖于某一父窗口,其依赖性由其构造函数的参数列表来体现。本题的第二空就是为Dialog设定其父窗口,即当前的“Example2_2”对象“f”。Swing和AWT的主要区别在于,Swing是AWT为基础的新技术。AWT受设计初衷的局限,不能满足图形化用户界面的开发,比如缺少剪贴板等特性,而且都是重量级的,需要本地支持。Swing则不然,几乎都是轻量级的,不需要操作系统的支持,这是Swing和AWT的最大区别。三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面是一个Applet程序,其功能是计算山顶的高度,计算方法是:该山顶由a点量得仰角度数为a度,由b点量得仰角度数为b度,且测得a,b点之间的距离为c米,求山的高度。要求窗口中有3个输入框,分别作为a,b,c的输入,一个按钮点击后进行计算,结果显示在另一个文本框中(这个文本框不可编辑)。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下:importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;/*<appletcode="ex6_3.class"width=800height=400></applet>*/publicclassex6_3extendsAppletimplementsActionListener{Panelpane=newPanel();Label11=newLabel("a点仰角:");TextFieldtfl=newTextField(5);Label12=newLabel("b点仰角:");TextFieldtf2=newTextField(5);Label13=newLabel("a,b之间距离:");TextFieldtf3=newTextField(5);Buttonbtn=newButton("OK");Label14=newLabel("山高");TextFieldtf4=newTextField(20);ex6_3obj23_3;publicvoidinit(){pane.setLayout(newFiowLayout(FlowLayout.LEFT,10,5));pane.add(11);pane.add(tf1);pane.add(12);pane.add(tf2);add("North",pane);Panelp2=newPanel();p2.setLayout(newFlowLayout(FlowLayout.LEFT,10,5));p2.add(13);p2.add(tf3);p2.add(btn);btn.addActionListener(this);add("Center",p2);Panelp3=newPanel();p3.setLayout(newFlowLayout(FlowLayout.LEFT,10,5));p3.add(14);tf4.setEditable(true);p3.add(tf4);add("South",p3);obj23_3=newex6_3();}publicvoiddoMessure(doubleal,doublea2,doublea3,TextFieldtf){doublepi=Math.PI,a,b,h;a=al*pi/180.0;b=a2*pi/180.0;h=a3/(1.0/Math.tan(a)-1.0/Math.tan(b));tf.setText(Integer.toString(h));}publicvoidactionPerformed(ActionEventae){doublea,b,c;try{a=newDouble(tf1.getText()).doubleValueb=newDouble(tf2,getText()).doubleValuec=newDouble(tf3.getText()).doubleValueobj23_3.doMessure(a,b,c,tf4);}catch(NumberFormatExceptionnfe){tf4.setText("wrongnumber!");}}}ex6_3.html<HTML><HEAD><TITLE>ex6_3</TITLE></HEAD><BODY><appletcode="ex6_3.class"width=800height=400></applet></BODY></HTML>标准答案:tf4.setEditable(false)h=a3/Math.abs(1.0/Math.tan(a)-1.0/Math.tan(b))tf.setText(Double.toString(h))知识点解析:本题主要考查Applet窗口编程和AWT基本构件的使用以及事件处理机制。解题关键是设计出计算山高的方法,并且结合事件处理机制,调用该计算方法实现程序的功能。本题中,第1处,由于用显示结果的文本框不可编辑,因此参数为false;第2处,需要对分母进行取绝对值操作,否则最后结果会产生负数;第3处,由于h是double类型的变量,做数据类型转换时需要调用Double类的toString()方法。国家二级(JAVA)机试模拟试卷第5套一、基本操作题(本题共1题,每题1.0分,共1分。)1、请在每条横线处填写一个语句,使程序的功能完整,且输出结果为911。注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。源程序文件代码清单如下:publicclassOuter{publicstaticvoidmain(Stringargs[]{Outeri=newOuter();i,taskInner();}publicclassInner{privateintsize;publicvoiddoSomething(intsize){_____________//访问局部变量this.size++;//访问内部类的成员变量_____________//访问外部类的成员变量System.out.println(size+""+this.size+""+Outer.this.size);}}publicvoidtaskInner(){___________k.doSomething(8);}privatestaticintsize;}标准答案:size++;Outer.this.size++:Innerk=newInner();知识点解析:本题主要考查内部类的概念,super,this关键字的用法。解答本题的关键是熟练掌握super,this关键字的用法。在本题中size++;语句是访问局部变量size,Outer.this.size++;语句的功能是访问外部类的成员变量size,InnerK=newInner();语句的功能是生成内部类Inner的对象K。二、简单应用题(本题共1题,每题1.0分,共1分。)2、本程序的功能是,根据用户输入的文件名,在相应的文件内容中查找匹配给定模式的字符串,并将这些字符串显示出来。模式串为“href="…"”。请填写横线处的内容。注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。importjava.io.*;importjava.util.regex.*;importjavax.swing.*;publicclassExample2_10{publicstaticvoidmain(String[]argv){finalStringpatternString="href\\s*=\\s*(\"[^\"]*\"|[^\\s>])\\s*;StringfileName;try{System.out.print("请输入html文件的文件名:");InputStreamReaderin=newInputStreamReader(System.in);BufferedReaderimput=newBufferedReader(in);fileName=imput.readLine();if(fileName.equals(""))return;StringBufferbuffer=newStringBuffer();Filefile=newFile(fileName);FileInputStreamreadfile=newFileInputStream(file);for(intc=0;(c=readfile.read())!=-1;)buffer.append((char)c);Patternpattern=Ppile(_____________Pattern.CASE_INSENSITIVE);Matchermatcher=________;while(marcher.find()){intstart=matcher.start();intend=matcher.end();Stringmatch=buffer.substring(start,end);System.out.println(match);}}catch(Exceptionexcption){System.out.println(excption.getMessage());}System.exit(O);}}标准答案:patternStringpattern.matcher(buffer)知识点解析:本题考查知识点:输入输出流和正则表达式解题思路:程序首先使用InputStreamReader的实例“in”从标准输入中获取用户输入的文件名,并将结果存放在“fileName”字符串中。if语句用来判断用户输入的文件名是否为空,如果为空则退出程序,不做任何处理。然后根据文件名读取相应的文件内容存放在StringBuffer的实例“buffer”中。然后建立起与正则表达式对应的模式对象“pattem”,并与“buffer”帮定,生成一个匹配器“matcher”。最后使用while循环查找到相应的字符串。Patter的compile方法用来将正则表达式编译成模式对象。compile方法的第一个参数是正则表达式字符串,所以第一个空的答案是“patternString”。第二个空用来建立一个匹配器。模式对象建立匹配器的方法是matcher(string),其中string是需要做模式匹配的兑现,本题中需要做模式匹配的对象是“buffer”。三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件清单如下:importjava.awt.*;importjava.applet.*;/*<appletcode="ex11_3.class"width=800height=400></applet>*/publicclassex11_3extendsApplet{int[]x={15,50,100,160,120,190};int[]y={15,100,30,15,80,50};publicvoidinit(){setBackground(Color.lightGray);}publicvoidpaint(Graphicsg){int[]y2=newint[6];g.setColor(Color.red);Rectanglerect=getBounds();g.drawPolygon(x,y2,6);for(inti=0;i<6;i++)y2[i]=y[i]+(rect.height/2);g.fillPolygon(x,y,6);}}ex11_3.html<HTML><HEAD><TITLE>ex11_3</TITLE></HEAD><BODY><appletcode="ex11_3.class"width=800height=400></applet></BODY></HTML>标准答案:g.drawPolygon(x,y,6)y2[i]+=y[i]+(rect.height/2)g.fillPolygon(x,y2,6)知识点解析:本题主要考查Applet窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用Graphics类的drawPolygon()和fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第1处,第2个参数应该是y,而不是y2。y2还没有初始化;第2处,注意y2数组中的值是需要进行累加的,因此需要使用符号+=;第3处,fillPolygon()方法的第2个参数应该是y2,绘制新的图形,并填充,若是y则不能绘制新的图形。国家二级(JAVA)机试模拟试卷第6套一、基本操作题(本题共1题,每题1.0分,共1分。)1、下列程序中,给出两个整数2和3,分别求2除以3和2乘以3的结果,要求调用类ex1_1的方法method()来输出相应的结果,请将程序补充完整。程序运行结果如下:0.66666666666666666publicclassex1_1{publicstaticvoidmain(String[]args){intn1=2,n2=3;ex1_1obj1_1=newex1_1();obj1_1.______;}publicvoidmethod(intx,inty){System.out.println(______);System.out.println(______);}}标准答案:method(n1,n2)(double)x/yX*y知识点解析:本题主要考查Java语言的数据类型和结构以及不同数据类型之间的转换,和对象调用方法以及基本的运算操作。解题关键是熟悉Java语言的基本数据类型和类型之间的转换,用类的对象来调用方法,以及熟悉Java语言的基本运算。在本题中,第一空通过类ex1_1的对象obj1_1调用类ex1_1的方法method(),将变量n1和n2作为参数传递给方法。第二空由于x,y都是int,则x/y的结果为0.666....,这会转换为int,其值为0。所以要对数据进行类型转换,将x转换为double型则y也转换为double型,因此结果为double,值为0.666...。第三空无需做类型转换,直接输出x*y的值6即可。二、简单应用题(本题共1题,每题1.0分,共1分。)2、请完成下列Java程序:首先建立一个类,包含2个私有成员变量,分别为int和double型,并提供公共方法setInt()和setDouble()分别给这两个变量赋值和用toString()方法显示对象的私有成员变量的值,要求将这个类定义为Serializable,再创建这个类的持久对象,将对象写入名为ex3_2.data的文件中并显示对象的2个成员变量,最后从这个文件中读取这个对象并显示对象的2个成员变量。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:ex3_2:i=123d=123.456ex3_2:i=123d=123.456importjava.io.*;publicclassex3_2implementsSerializable{privateintn3_2;privatedoubled3_2;ex3_2(){n3_2=25;d3_2=12.23;}publicvoidsetDouble(doublex){d3_2=x;}publicvoidsetInt(intx){n3_2=x;}publicStringtoString(){return("ex3_2:i="+n3_2+"d="+d3_2);}publicstaticvoidmain(String[]arg){ex3_2e1=newex3_2);ex3_2e2;e1.setInt(123);e1.setDouble(123.456);System.out.println(e1);try{FileOutputStreamfos3_2=newFileOutputStream("ex3_2.data");ObjectOutputStreamoos3_2=newObjectOutputStream(fos3_2);________________;}catch(IOExceptionioe){System.out.println(ioe);}try{FileInputStreamfis3_2=newFileInputStream("ex3_2.data");ObjectInputStreamois3_2=newObjectInputStream(fis3_2);________________;System.out.println(e2);}catch(10Exceptionioe){System.out.println(ioe);}catch(ClassNotFoundExceptioncnfe){System.out.println(cnfe);}}}标准答案:oos3_2_writeObject(e1)e2=(ex3_2)ois3_2.readObject()知识点解析:本题主要考查对象串行化的方法和可串行化类的构造方法。解题关键是熟练掌握串行化的概念和目的,熟悉串行化的方法,如FileOutputStream类的用法等,在Java中这些方法已经成为一种模式,需要熟记。本题中,通过构造可串行化类ex3_2实现了Serializable接口并且含有2个成员变量n3_2和d3_2,这2个成员变量需要包括在数据流中以便保存某个ex3_2对象的整个状态,程序首先创建了一个ex3_2对象,接着将它存到一个磁盘文件中,然后再将它作为一个新对象读回。第1个空,通过ObjectOutputStream的对象oos3_2调用writeObject()方法将ex3_2的对象e1写入磁盘文件ex3_2.data中;第2个空,通过ObjectInputStream的对象ois3_2调用readObject()方法从磁盘文件ex3_2.data中读取对象,由于读出来的是Object类型的对象,所以需要做类型转换。三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Labe1构件。要求点击First时则能在Labe1中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.awt.event.*;importjava.applet.*;/*<appletcode=ex2_3.classwidth=800height=400></applet>*/publicclassex2_3extendsAppletimplementsActionListener{privateStringstr="ok";privateLabe11;privateButtonbtn;publicvoidinit(){setLayout(null);1=newLabel(str);1.reshape(10,10,150,30);add(1);btn=newButton("First");btn.reshape(10,50,60,20);1.addActionListener(this);add(btn);btn=newButton("Second");btn.reshape(10,100,60,20);btn.setActionCommand("First");btn.addActionListener(this);add(btn);}publicvoidactionPerformed(ActionEventae){str="Command:"+ae.getActionCommand();btn.setText(str);}}ex2_3.htm1<HTML><HEAD><TITLE>ex2_3</TITLE></HEAD><BODY><appletcode="ex2_3.class"width=800height=400></applet></BODY></HTML>标准答案:btn.addActionListener(this)btn.setActionCommand("second")1.setText(str)知识点解析:本题主要考查Java语言中高级事件ActionEvent和AWT基本构件Label的常用方法的使用。解题关键是熟练掌握动作事件ActionEvent和Label构件的常用方法。在本题中,第1处,明确注册的事件监听器是监听按钮的,而不是Label的;第2处,调用ActionEvent的setActionCommand()方法改变了ActionCommand,使按下第二个按钮时显示Command:second而不是Command:First。第3处,调用Label的setText()方法,而不是Button的方法。国家二级(JAVA)机试模拟试卷第7套一、基本操作题(本题共1题,每题1.0分,共1分。)1、下列程序中,指定变量b=20为字节类型,变量f=0.34F为单精度类型,变量1=0xeefL为64位长整型,并将该三个变量打印输出。请将程序补充完整。注意:不改动程序结构,不得增行或删行。importjava.io.*;publicclassAssign{publicstaticvoidmain(Stringargs[]){______b=20;______f=0.34F;______l=0xeefL;System.out.println("b="+b);System.out.println("f="+f);System.out.println("l="+1);}}标准答案:bytefloatlong知识点解析:本题考查处理基本数据类型的声明。定义一个变量需要有一个类型,一个标识,如果需要,还可以加上一个初始值。本题涉及到三种类型:字节整型、单精度浮点型和64位的长整型,分别用关键字byte、float和long标识。二、简单应用题(本题共1题,每题1.0分,共1分。)2、请完善程序(程序文件名:Java_2.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。[题目要求]程序显示一个窗口。该窗口包含一个按钮和一个文本域,当单击按钮时将在文本域中显示当前日期,如下图所示。源程序:importjava.awt.*;importjava.awt.event.*;importjava.util.*;publicclassJava_2implementsActionListener{Framef;Buttonb;TextFieldtf;public(1)(){f=newFrame("ShowDate");f.setLayout(newFlowLayout());f.setSize(400,100);//注册窗口监听器(WindowListener)(2)(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});b=newButton("显示当前日期");b.addActionListener(this);tf=newTextField(30);f.add(b);f.add(tf);f.setVisible(true);}publicstaticvoidmain(String[]args){Java_2t=newJava_2();}publicvoidactionPerformed(ActionEvente){Dated=newDate();//获取当前日期tf.setText(d.toString());}}标准答案:Java_2f.addWindowListener知识点解析:程序的注释中已经给出注册窗口监听器,而且由下面的方法windowClosing可以看出是窗口监听器,所以是给Frame类实例f注册窗口监听器。[程序解析]本程序通过按钮在文本域显示当前系统时间。程序中用到了构造方法,因为在main()方法中只是创建了对象,进行了实例化。另外也涉及事件监听接口。三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面Applet程序的功能是统计在平面坐标系第一象限中,半径大于9,小于10的圆环中坐标值为整数的点有多少?并且给出其坐标值。请改正程序中的错误(有下画线的语句),使程序执行后,能得到预期的结果。importjava.awt.*;importjava.applet.*;/*<appletcode=Di9Tiwidth=200height=100></applet>*/publicclassDi9TiextendsApplet{publicvoidpaint(Graphicsg){intx,y,r1=5,r2=4;intcount=0;for(x=1;x<y;x++){for(y=1;y<r1;y){if(x*x+y*y<=r2*r2||x*x+y*y>=r1*r1)break;g.drawStdng("x="+x+"y="+y,20+count*80,20);count++;}}g.drawString("count="+count,20,40);}}ex11_3.html:<html><head><title>ASimpleProgram</title></head><body><appletcode="Di9Ti.class"width=800height=400></applet></body></html>标准答案:x<r1;y++continue;知识点解析:暂无解析国家二级(JAVA)机试模拟试卷第8套一、基本操作题(本题共1题,每题1.0分,共1分。)1、下面的程序是求9999以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。publicclassQuanShu{publicstaticvoidmain(Stringargs[]){for(intn=l;n<9999;n++)if(______________)System.out.println(n);}publicstaticihtdivsum(intn){//该方法功能是求一个数的所有约数ints=0;for(inti=l;i<n;i++)if(_________________)__________________returns;}}标准答案:n==divsum(n)n%i==0s+=i;知识点解析:本题考查for循环语句、求余运算符(%)和Java语言的方法的使用。解答本题的关键是熟悉使用for循环语句。在本题中,if(n==divsum(n))语句是用来调用divsum(n)方法(其中n为方法的实际参数)和判断某个自然数是否为“完全数”。n%i==0是用来判断数n是否能被数i整除,s+=i;是用来累加某个自然数的所有约数。二、简单应用题(本题共1题,每题1.0分,共1分。)2、请完成下列Java程序:制作一个图形用户界面,上方包含一个TextField和Button构件,实现输入字符串,点击Button获取文本区的字符:中间显示Label的内容:下方是4个按钮,分别实现控制Label在最左边,在中间,在右边和退出程序的功能。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:importjava.awt.*;importjava.awt.event.*;publicclassex15_2extendsFrameimplementsActionListener{privateLabel1;privateTextFieldtf;publicstaticvoidmain(String[]args){ex15_2obj15_2=newex15_2();}publicex15_2(){setBackground(Color.gray);l=newLabel("WelcomtotheNCRExamination!");Fontfont=newFont("TimesRoman",Font.BOLD,20);l.setFont(font);add("Center",l);Panelp=newPanel();Buttonb=newButton("Left");b.addActionListener(this);p.add(b);b=newButton("Center");b.addActionListener(this);p.add(b);b=newButton("Right");b.addActionListener(this);p.add(b);________________;b=newButton("Exit");b.addActionListener(this);p.add(b);p=newPanel();tf=newTextField(40);p.add(tf);b=newButton("Set");b.addActionListener(this);p.add(b);add("North",p);setSize(500,300);show();}publicvoidactionPerformed(ActionEventae){if(ae.getActionCommand().equals("Exit"))System.exit(0);elseif(ae.getActionCommand().equals("Left"))____________________;elseif(ae.getActionCommand().equals("Center")l.setAlignment(Label.CENTER);elseif(ae.getActionCommand().equals("Right"))l.setAlignment(Label.RIGHT);elseif(ae.getActionCommand().equals("Set"))l.setText(tf.getText());}}标准答案:add(”South”,p)1.setAlignment(Label.LEFT)知识点解析:本题主要考查AWT基本构件Button,Pane,Label和TextField结合的简单应用。解题关键是熟悉这几种基本构件一般用法,会设置Label在窗口中的位置。本题中,第1个空,将面板构件放在窗口的最下方;第2个空,根据Button事件调用1对象的setAlignment()方法,设置Label在面板中的位置。三、综合应用题(本题共1题,每题1.0分,共1分。)3、下面是一个Applet程序,其功能是通过两个文本框获得用户输入两个数,按回车键计算这两个数的商。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.awt.Event.*;importjava.applet.*;/*<appletcode="ex14_3.class"width=800height=400></applet>*/publicclass

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论