问答题注意:下面出现的“考生文件夹”均为%USER%。
在考生文件夹下存有文件名为Java_2.java的文件,本题功能是完成点定义,并输出点坐标。请完善Java_2.java文件,并进行调试,使程序结果如下:
x=5 y=5
点的坐标是(5,5)
x=8 y=9
点的坐标是(8,9)
由于Java_2.java文件不完整,请在注释行“//*********Found********”下一行语句的下画线地方填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
public class Java_2 {
public int x,y;
public Java_2() {
}
public Java_2 (int x,int y){
this.x=x; this.y=y;
}
//*********Found********
public Java_2(______p){
x=p.x;y=p.y;
}
public Java_2 getLocation(){
Java_2 p=new Java_2 (x,y);
return p;
}
public int getX(){
return X;
}
public int getY(){
return y;
}
public void move (int x,int y){
this.x=x;
this.y=y;
}
public void setLocation (Java_2 p){
x=p.x;
y=p.y;
}
public String toString(){
return('('+Integer.toString (x)+','+Integer.toString(y)+')');
}
public void translate (int x,int y){
this.x+=x;
this.y+=y;
}
public static void main (String args[]){
//*********Found********
Java_2 p=new______(5,5)j
System.out .printIn("x="+p.x+" y="+p.y);
//*********Found********
System.out.printIn("点的坐标是"+______());
p.translate (3,4);
System.out.printIn("x= "+p.x+" y="+p.y);
//*********Found********
System.out.printIn("点的坐标是"+______());
}
}
问答题本程序在窗口画了一个半圆形和一个六边形,半圆形的开口向左,如图所示。importjava.awt.*;importjavax.swing.*;publicclassexam_43{publicstaticvoidmain(String[]args){DrawFrameframe=newDrawFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}classDrawFrameextendsJFrame{publicDrawFrame(){setTitle("exam_43");setSize(WIDTH,HEIGHT);DrawPanelpanel=newDrawPanel();ContainercontentPane=getContentPane();contentPane.add(panel);}publicstaticfinalintWIDTH=300;publicstaticfinalintHEIGHT=200;}classDrawPanelextendsJPanel{publicvoidpaintComponent(Graphicsg){super.paintComponent(g);intx1=50;inty1=50;intx2=50;inty2=150;intradius=100;intstartAngle=-90;intarcAngle=180;g.drawLine(x1,y1,x2,y2);______(x1-radius/2,y1,radius,radius,startAngle,arcAngle);x1+=150;y1+=50;radius/=2;inti;for(i=0;i<6;i++)p.addPoint((int)(x1+radius*Math.cos(i*2*Math.PI/6)),(int)(y1+radius*Matb.sin(i*2*Math.PI/6)));g.drawPolygon(p);}}
问答题下列程序中,分别计算1,2,3......,10的阶乘,并输出计算结果,请将程序补充完整。
程序运行结果如下:
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
public class ex10_1 {
public static void main(String[]args) {
long 1 Factorial;
for(int i=1;i<=10;i++) {
_____________;
for(int j=2;___________;j++)
_____________;
System.out.println(i+ " ! =" + 1Factorial);
}
}
}
问答题本程序的功能是打印出程序所在磁盘下所有目录,方法是将当前目录下的所有目录压入栈,然后弹出一个目录,将该目录下所有的目录压入栈,直到栈空。
import java.io.*;
import java.util.*;
public class exam_25
{ public static void main(String[] args)
{ Stack directoryStack=new Stack();
File root=new File(File.separator + ".");
directoryStack.push(root);
while (
directoryStack.length() > 0
)
{ File currentDirectory=(File)directoryStack.pop();
System.out.println(currentDirectory);
String subdirectories=currentDirectory.list()
;
if (subdirectories != null)
{ for (int i=0; i < subdirectories.length; i++)
{ try
{ String fname
=currentDirectory.getCanonicalPath()
+ File.separator + subdirectories[i];
File f=new File(fname);
if (f.isDirectory())
directoryStack.pop(f)
; }
catch(IOException e)
{ System.out.println(e);
}
}
}
}
}
}
问答题本程序中,主窗口中包括一个“打开文件选取器”按钮和一个文本域,单击按钮则可以弹出“打开”对话框,选择一个文件单击“打开”按钮后,则将该文件的字符流输入到文本域中,如图所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;classFileWinextendsJFrameimplementsActionListener{JButtonbutton;JTextAreatext;JTextPanetextpane;FileInputStreamreadfile;JScrollPanescroll;Containercon;JFileChooserchooser=newJFileChooser();FileWin(){super("exam_97");button=newJButton("打开文件选取器");button.addActionListener(this);textpane=newJTextPane();scroll=newJScrollPane(textpane);setSize(200,200);setVisible(true);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});con=getContentPane();con.add(button,BorderLayout.NORTH);con.add(scroll,BorderLayout.CENTER);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==button){Strings;intstate=chooser.showOpenDialog(null);Filefile=______;if(file!=null}catch(IOExceptionee){}try{textpane.read(readfile,this);}catch(IOExceptione1){}}}}}publicclassexam_97{publicstaticvoidmain(Stringargs[]){FileWinWin=newFileWin();}}
问答题下面是一个Applet程序,其功能是有两个按钮,分别为First和Second,以及一个Label构件。要求单击 First时能在Label中显示出"Command:First",而单击Second时能显示出"Command:Second",要求只能重载一次 actionPerformed()方法,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件代码清单如下: import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code=ex04_3.class width=800 height=400> </applet> */ Public class ex04_3 extends Applet implements ActionListener private String str="ok"; private Label l; private Button btn; public void init() setLayout(null); l=new Label(str); l.reshape(10,10,100,30); add(l); btn=new Button("First"); btn.reshape(10,50,60,20); l.addActionListene(this); add(btn); btn=new Button("Second"); btn.reshape(10,100,60,20); btn.setActionCommand("First"); btn.addActionListener(this); add(btn); public void actionPerformed(ActionEvent ae) str="Command:"+ae.getActionCommand(); btn.setText(str); ex04_3.html <HTML> <HEAD> <TITLE>ex04_3</TITLE> </HEAD> <BODY> <applet code="ex2_3.class" width=800 height=400> </applet> </BODY> </HTML>
问答题请完成下列Java程序:输入2个整数,求最大公约数。要求有2个单行文本区作为输入,2个按钮,一个点击完成计算,一个点击退出程序。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:importjava.awt.*;importjava.awt.event.*;publicclassex21_2extendsFrameimplementsActionListener{privateLabel1;privateTextFieldtf,tf2;publicstaticvoidmain(String[]arg){ex21_2obj21_2=newex21_2();}publicex21_2(){setTitle("ex21_2");Panelp1;Buttonb=newButton("OK");p1=newPanel();tf=newTextField(8);p1.add(tf);tf2=newTextField(8);p1.add(tf2);b.addActionListener(this);p1.add(b);b=newButton("Exit");b.addActionListener(this);p1.add(b);add("North",p1);Panelp2=newPanel();l=newLabel("最大公因数:");p2.add(1);add("Center",p2);setSize(500,300);show();}publicvoidactionPerformed(ActionEventae){if(ae.getActionCommand().equals("Exit"))//比较ae对象的标识名,是否为Exit。System.exit(0);elseif(ae.getActionCommand().equals("OK")){try{inta=Integer.parseInt(tf.getText());intb=Integer.parseInt(tf2.getText());intr,i;while(b>0){_________________;_________________;b=r;}1.setText("最大公约数:"+Integer.toString(a));}catch(NumberFormatExceptionnfe){1.setText("请正确输入!");}}}}
问答题请完成下列Java程序:用AWT实现一个图形用户界面,包含一个List构件和一个TextField构件,List中包含5个项目。要求选择不用的项目时,能在TextField构件中显示出相关的信息,包括事件的名称、选择的项目编号和项目的状态。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import java.awt.*; import iava.awt.event.*; public class ex01_2 extends Frame implements ItemListener private TextField tf; private List 1; public static void main(String arg[]) ex01_2 obj01_2=new ex01_2(); public ex01 2() setBackgrcund(Color.GRAY); setTitle("ex01_2"); l=new List(5); l.addItemListener(this); l.addItem("Item1"); l.addItem("Item2"); l.addItem("Item3"); l.addItem("Item4"); l.addItem("Item5"); add("Center",1); tf=new TextField(50); add("South",tf); ______; show(); public void itemStateChanged(ItemEvent event) tf.setText(______);
问答题本程序是一个Applet,功能是求一个数的因子和小于该数的所有素数。页面中有一个文本框、一个文本域和一个按钮,在文本框中输入一个自然数,如果直接回车,则文本域中显示的是这个数字的因子,如果单击“Enter”按钮,则文本域中显示的是小于这个数的所有素数,如果输入的不是数字,则显示提示信息,如图所示。importjava.awt.*;importjava.awt.event.*;importjava.applet.*;classMyLabelextendsLabelimplementsActionListener{Stringlabname;TextFieldinputNumber;TextAreashowResult;Buttonbutton;MyLabel(Strings,Containercon){super(s);labname=s;inputNumber=newTextField(10);showResult=newTextArea(10,20);button=newButton("Enter");button.addActionListener(this);inputNumber.addActionListener(this);con.add(this);con.add(inputNumber);con.add(showResult);con.add(button);}publicvoidactionPerformed(ActionEvente){longn=0;showResult,setText(null);try{n=Long,valueOf(inputNumber.getText()).Value();this.setText(labname);}catch(NumberFormatExceptione1){this.setText("请输入数字字符");}if(e.getSource()==inputNumber){yinzi(n);}if(e.getSource()==button){sushu(n);}}publicvoidyinzi(){for(inti=1;i<=n;i++){if(n%i==0)showResult.append("/n"+i);}}publicvoidsushu(longn){showResuit.append("小于"+n+"的素数有:");for(inti=1;i<=n;i++){intj=0;for(j=2;j<i;j++){if(i%j==0)break;}if(j>=i){showResult.append("/n"+i);}}}}publicclassexam_94extendsApplet{MyLabellab;publicinit(){lab=newMyLabel("回车求该数的因子,单击按钮求出小于这个数的素数",this);}}
问答题请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上最小,在该列上最大,也可能没有鞍点。数组大小为4行5列。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。
public class ex12_2{
public static void main(String[] args){
int i,j,flag,m=4,n=5;
int[] min=new int[4];
int[] max=new int[5];
int r[][]={{2,5,6,7,9},
{32,65,2,78,12},
{1,8,5,96,4},
{5,3,21,73,23}};
flag=0;
for(i=0;i<m;i++){//获取元素在该行上最大
min[i]=r[i][0];
for(j=1;j<n;j++)
if(r[i][j]<min[i])
__________;
}
for(j=0;j<n;j++){//获取同一元素在该列上最大
max[j]=r[0][j];
for(i=1;i<m;i++)
if(r[i][j]>max[j])
__________;
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(min[i]==max[j]){ ,
System.out.print("("+i+","+j+"):"+r[i][j]);
flag=1;
}
if(flag==0)
System.out.println("没有鞍点!");
}
}
问答题下面是一个字符界面的Java Application程序,它接受用户输入的一个浮点数,并将它的整数部分和小数部分分别输出。请勿改动原有代码,在下画线处填人适当语句,将程序补充完整。
import java.io.*;
public class test16_2{
public static void main(String args[]) {
String s;
double d;
int i;
boolean b=false;
do{
try{
System.out.println("请输入一个浮点数:");
BufferedReader br=
new BufferedReader(new lnputStreamReader(System.in));
s=br.readLine();
i=s.indexOf( );
d=__________.parseDouble(s);
System.out.println(d+"整数部分为:"+__________);
if(i==-1)
System.out.println(d+"小数部分为:0.0");
else
System.out.println(d+"小数部分为:"
+Double.parseDouble(
((s.charAt(0)=='-')?"-":"")
+"0."+s.substring(i+1,s.length())));
b=false;
}
catch(NumberFormatException nfe) {
System.out.prinfln("输入浮点数格式有误。/n");
b=true;
}
catch(IOException ioe)
b=false;
}
}while(b);
}
}
问答题本程序的功能是监听对于菜单项和工具条按钮的操作。主窗口中有菜单、工具条和一个文字标签,菜单中有“文件”项,“文件”菜单中包括菜单项“新建”、“保存”、“打印”、“页面设置”和“退出”,工具条上包括按钮“新建”、“保存”、“打印”、“页面设置”和“退出”。单击任何一个菜单项或任何一个工具条按钮,文字标签都会显示哪个构件被选中。请更正题中带下划线的部分。运行结果如下图所示。注意:不改变程序的结构,不得增行或删行。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassadvanceextendsJFrame{privateJLabelactionlnfo;publicadvance(StringtitleText){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);{{U}}super(titleText);{{/U}}actionInfo=newJLabel("事件信息");JToolBartb=newJTooBar();{{U}}Menufile=newMenu("文件");{{/U}}JMenuBarmb=newJMenuBar();mb.add(file);NewActionna=newNewAction(actionInfo);file.add(na);tb.add(na);SaveActionsa=newSaveAction(actionInfo);file.add(sa);tb.add(sa);PrintActionpta=newPrintAction(actionInfo);file.add(pra);tb.add(pra);PageSetActionpsa=newPageSetAction(actionInfo);file.add(psa);tb.add(psa);ExitActionea=newExitAction(actionInfo);file.add(ea);tb.add(ea);setJMenuBar(mb);Containercp=getContentPane();cp.setLayout(newBorderLayout());{{U}}cp.add(tb);{{/U}}cp.add(actionInfo,BorderLayout.CENTER);setSize(350,200);setVisible(true);}publicstaticvoidmain(String[]args){newadvance("advance");} } classNewActionextendsAbstractAction {JLabellabel;publicNewAction(JLabellabel){super("新建");this.label=label;}publicvoidactionPerformed(ActionEvente){label.setText("您选择了新建");} } classSaveActionextendsAbstractAction {JLabellabel;publicSaveAction(JLabellabel){super("保存");this.label=label;}publicvoidactionPerformed(ActionEvente){label.setText("您选择了保存");} } classprintActionextendsAbstractAction {JLabellabel;publicPrintAction(JLabellabel){super("打印");this.label=label;}publicvoidactionPerformed(ActionEvente){label.setText("您选择了打印");} } classPageSetActionextendsAbstractAction {JLabellabel;publicpageSetAction(JLabellabel){super("页面设置");this.label=label;}publicvoidactionPerformed(ActionEvente){label.setText("您选择了页面设置");} } classExitActionextendsAbstractAction {JLabellabel;publicExitAction(JLabellabel){super("退出");this.label=label;}publicvoidactionPerformed(ActionEvente){label.setText("您选择了退出");}}
问答题请完成下列Java程序:用树构件展示计算机等级考试二级的简单目录组织结构,包含三级目录,第一级是根目录(计算机二级);第二级包含2个目录,一个是c++,一个是java;c++目录中,只有一项就是简介,而java目录中包含三项,一个简介,一个大纲,一个第三级目录(参考书);参考书目录中包含两项,一个是指导书,一个是上机习题集。要求,根据上述目录结构给出图形用户界面的表示。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.tree.DefaultMutableTreeNode;publicclassex23_2extendsJPanel{staticJFramejfrm;publicex23_2(){setLayout(newBorderLayout());DefaultMutableTreeNoderoot=addNode();JTreejt=newJTree(root);jt.setRootVisible(true);JScrollPanejsp=newJScrollPane();jsp.setViewportView(jt);add(jsp);}publicDefaultMutableTreeNodeaddNode(){DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("计算机二级");DefaultMutableTreeNodesub1=newDefaultMutableTreeNode("java");DefaultMutableTreeNodesub2=newDefaultMutableTreeNode("c++");root.add(sub2);root.add(sub1);DefaultMutableTreeNodemagazines=newDefaultMutableTreeNode("参考书");sub1.add(newDefaultMutableTreeNode("简介"));sub1.add(newDefaultMutableTreeNode("大纲"));__________________;magazines.add(newDefaultMutableTreeNode("指导书"));magazines.add(newDefaultMutableTreeNode("上机习题集"));__________________.add(newDefaultMutableTreeNode("简介"));returnroot;}publicstaticvoidmain(Stringargs[]){jfrm=newJFrame("ex23_2");ex23_2obj23_2=newex23_2();jfrm.getContentPane().add("Center",obj23_2);jfrm.setSize(400,250);jfrm.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});jfrm.setVisible(true);}}
问答题本题利用递归方法求前n个自然数的和(n=10)。 public class java1 public static void main(String[]args) int sum=add(10); System.out.println("1+2+...+9+10="+sum); public static int add(______) if(n==1) ______; else ______;
问答题_____________________
问答题System.out.prinfln("i="+i+"s="+s);
问答题“角谷猜想”指出,将一个自然数按以下的一个简单规则进行运算:若数为偶数,则除以2:若为奇数,则乘以3加1。将得到的数按该规则重复运算,最终可得1。请在下面程序的每条横线处填写一个语句,使程序的功能完整。(如:输入34,则输出结果为34 17 52 26 13 40 20 10 5 16 8 4 2 1) 注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件清单如下: import java.io.*; class JiaoGu public static void main(String args[]) System.out.print("/n请输入一个数"); try BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); Stirng s=br.readLine(); ______ while(a!=1) System.out.print(" "+a); if(a%2==1) ______ else a=a/2; System.out.println(" "+a); ______
问答题请完成下列Java程序:记录鼠标在窗口中的信息,包括鼠标的移动事件以及鼠标在窗口中的位置坐标,要求在窗口下方显示鼠标的事件和位置信息,以及在窗口上方有按钮控制程序的正常退出。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:importjava.awt.*;importjava.awt.event.*;publicclassex7_2extendsFrameimplementsMouseMotionListener,ActionListenerprivateLabe11;privateStringstr="";publicstaticvoidmain(String[]arg)newex7_2();ex7_2()________________;setSize(200,200);Buttonbtn=newButton("exit");btn.addActionListener(this);add(btn,"North");1=newLabe1(str);add(1,"South");show();publicvoidmouseMoved(MouseEventevent)str="Move:"+_____________;1.setText(str);publicvoidmouseDragged(MouseEventevent)publicvoidactionPerformed(ActionEventevent)if(event.getActionCommand().equals(,,exit,,))System.exit(0);
问答题本程序中使用了GridBayLayout来组织窗口上的按钮。窗口中总共有7个按钮,前三个按钮放置在第一排,第四个按钮独占第二排,第六个按钮位于第三排的右侧,而第五和第七个按钮共同处于第三排的左侧,如图所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassexam_52extendsJFrame{privateJPaneljpanell=newJPanel();privateGridLayoutgl;privateJButtonJButton1=newJButton("第一个");privateJButtonJButton2=newJButton("第二个");privateJButtonJButton3=newJButton("第三个");privateJButtonJButton4=newJButton("第四个");privateJButtonJButtonS=newJButton("第五个");privateJButtonJButton6=newJButton("第六个");privateJButtonJButton7=newJButton("第七个");public______(){super("exam_52");setSize(300,150);GridBagLayoutgb1=______;jpanel1.setLayout(gb1);GridBagConstraintsgbc=newGridBagConstraints();gbc.fill=GridBagConstraints.BOTH;gbc.gridwidth=1;gbc.gridheight=1;gbc.gridx=0;gbc.gridy=0;jpanel1.add(JButton1,gbc);gbc.gridx=1;jpanel1.add(JButton2,gbc);gbc.gridx=2;jpanel1.add(JButton3,gbc);gbc.gridx=0;gbc.gridy=1;gbc.gridwidth=3;jpanel1.add(JButton4,gbc);gbc.gridy=2;gbc.gridwidth=1;jpanel1.add(JButton5,gbc);gbc.gridx=1;gbc.gridwidth=2;gbc.gridheight=2;jpanel1.add(JButton6,gbc);gbc.gridx=0;gbc.gridy=3;gbc.gridwidth=1;gbc.gridheight=1;jpanel1.add(JButton7,gbc);this.setContentPane(jpanel1);}publicstaticvoidmain(Stringargs[]){exam_52fg1=newexam_52();fg1.show();fg1.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}
问答题注意:下面出现的“考生文件夹”均为%USER%。在考生文件夹中存有文件名为Java_1.java文件,请完善Java_1.java文件,并进行调试,使程序运行输出窗口如下:由于Java_1.java文件不完整,请在注释行“//*********Found*********”下一行语句的下画线地方填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:importjavax.swing.JOptionPane;publicclassJava_1//*********Found**********public______voidmain(Stringargs[])PackageDatad=newPackageData();Stringoutput;output="实例化后:/n"+d.toString();d.x=77;//修改包访问的数据//*********Found**********______="祝您成功!";//修改包访问的数据output+="/n修改数据后的访问结果:/n"+d.toString();//*********Found**********JOptionPane.______(null,output,"对包的访问示范",JOptionPane.INFORMATION_MESSAGE);Svstem.exit(0);classPackageDataintx;//访问包的实例变量Strings;//访问包的实例变量//构造方法publicPaekageOata()x=0;s="Hello";publicStringtoString()return"x:"+z+"s"+s;
