1、Java语言程序设计(一)真题 2017年 04月及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:10,分数:10.00)1.在下列供选的字符串中,不能作为 Java整型常量的是_(分数:1.00)A.052B.0x3BEHC.6389D.0x3fedL2.在以下供选的关键字中,能用于定义常值变量的是_(分数:1.00)A.finalB.staticC.protectedD.super3.下列 Java语句中,不正确的是_(分数:1.00)A.float e=0.0d;B.char c,d=“a“;C.int $e,a,b=10;D.double e=0.0f
2、;4.以下代码的输出结果是_ System.out.println(1+2+“aa“+3);(分数:1.00)A.12aa3B.3aa3C.12aaD.代码有语法错5.在 Swing中,与 JComponent类有直接父子关系的是_(分数:1.00)A.JMenuB.JButtonC.JLabelD.JTextArea6.在以下选项中,可得到菜单项名称的方法是_(分数:1.00)A.getMenu()B.getLabel()C.getJMenu()D.getItem()7.某程序定义了一个 JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是_(分数
3、:1.00)A.继承 Thread类,在类内定义 run()方法,声明和创建线程对象,并让该对象调用 start()方法B.继承 Thread类,在类内定义 run()方法,声明线程对象,并让该对象调用 start()方法C.声明实现 Runnable接口,在类内实现 run()方法,声明线程对象,创建线程,并调用 run()方法D.声明实现 Runnable接口,在类内实现 run()方法,声明和创建线程对象,并让该对象调用 start()方法8.以下关于线程死锁的叙述中,正确的是_(分数:1.00)A.若程序中存在线程的死锁问题,编译时不能通过B.实现多线程时死锁不可避免C.为了避免死锁,
4、应禁止对资源以互斥的方式进行访问D.线程的死锁是一种逻辑运行错误,编译器无法检测9.用类 JFileChooser对象可打开和保存文件对话框,程序能从该对话框获得_(分数:1.00)A.用户选择的文件的长度B.用户选择的文件名C.文件对象D.用户选择的文件内容10.网络应用有多种模式,其中 WWW采用的模式是_(分数:1.00)A.对等模式B.主机终端模式C.分布式模式D.客户机/服务器模式二、第部分 非选择题(总题数:10,分数:20.00)11.Java编译程序对 Test11.java源程序编译,如果没有发生错误,一定会产生一个文件,该文件的名字是 1。 (分数:2.00)12.表达式“
5、-12”的值是 1。(负数用补码表示) (分数:2.00)13.为了声明类只是一种模板,类中定义的某些方法没有具体实现代码,只有它的子类才可能是有实际意义的类。定义这样的类的修饰符是 1。 (分数:2.00)14.设有字符串定义:String s=“12341234“; 则表达式 s.indexOf(“2“)的值是 1。 (分数:2.00)15.在实现接口 ActionListener的方法 actionPerformed()中,为识别事件对象,调用方法getActionCommand(),该方法返回 1 的文字信息。 (分数:2.00)16.程序将若干单选按钮对象加入到一个 ButtonGr
6、oup对象中,其目的是 1。 (分数:2.00)17.AWT的 Font对象的作用是 1。 (分数:2.00)18.处于运行状态的线程执行 stop()方法,该线程将进入的状态是 1。 (分数:2.00)19.FileWriter类的作用是为 1 提供支持。 (分数:2.00)20.在访问数据库的程序中,建立了 Statement对象后,利用该对象可以执行数据库更新,实现 SQL数据库更新的方法是 1。 (分数:2.00)三、简答题(总题数:6,分数:18.00)21.请写出表达式实现以下功能:变量 y的值为 5与变量 z的值为 3,有且只有一个成立。 (分数:3.00)_22.请写出通过继承
7、,子类可以获得的好处。 (分数:3.00)_23.请写出将按钮对象 b和文本区对象 text放置于面板对象 tp,并将 tp放置于滚动面板,最后将滚动面板添加到 JFrame子窗口对象 frame的 Java语句。 (分数:3.00)_24.请写出 Graphics2D类中 stroke、paint 两种属性的作用。 (分数:3.00)_25.请写出 Java系统提供的支持文件随机访问的类和该类提供的读取一个字符的方法。 (分数:3.00)_26.请写出 URLConnection类实现网络访问的基本过程。 (分数:3.00)_四、程序填空题(总题数:5,分数:20.00)27.方法 coun
8、tPrimes(int m,int n)统计自 m至 n范围内质数的个数,并输出这些质数。 public static int countPrimes(int m,int n) int i,j,count=0; for(j=m;j=n;j+) for(i=2;i=j/2;1+) if( 1) break; if( 2) count+; System.out.println(j); return count; (分数:4.00)28.以下是某应用程序定义的两个方法。方法 setCheckBoxs(ItemListener listener)已知监视器,产生一组选择按钮,并给它们注册监视器和将它们
9、加入到面板中;方法使用的全局对象有面板 panel,存放按钮名称的数组 boxName,选择按钮数组 box,文本区 text。方法 itemStateChanged(ItemEvent e)是选择按钮的事件监视方法,当某个选择按钮的选择状态有改变时,监视方法在文本区中显示各选择按钮的选择状态(被选中或没有被选中)。 JPanel panel=new JPanel(); String boxName=“选择按钮 A“,“选择按钮 B“,“选择按钮 C“; JCheckBoxbox=new JCheckBoxboxName.length; JTextArea text=new JTextArea
10、(4,10); public void setCheckBoxs(ItemListener listener) for(int i=0;iboxName.length;i+) boxi=new JCheckBox(boxNamei,false); boxi. 1; panel.add(boxi); public void itemStateChanged(ItemEvent e) text.setText(null); for(int i=0;jbox.length;i+) text.append(boxNamei+( 2? “被选中“:“没有被选中“)+“/n“); (分数:4.00)29.
11、以下是一个放幻灯片的应用程序,程序的界面中含一个面板子类 P的对象和一个按钮对象 b。设幻灯片已经装入内存,并存放于 myImage数组中,幻灯片的张数存于变量 num中。程序运行时,用户点击按钮b,按钮的监视方法循环更换幻灯片号 curImage,并让系统调用 P重定义的 paintComponent()方法显示当前幻灯片。 int curImage=0; final int num=30; ImagemyImage=new Imagenum; /以下是类 P内定义的两个方法 public void actionPerformed(ActionEvent e) if(e.getSource(
12、)=b) 1; curImage=(curImage+1)%num; trymythread.sleep(200); catch(InterruptedException e) public void paintComponent(Graphics g) if(myImagecurImage)!=null) g. 2(myImagecurImage,10,10, myImagecurImage.getWidth(), myImagecurImage.getHeight(),this); (分数:4.00)30.以下应用程序的界面中有一个用于输入文件名的文本框对象 fileName、一个用于输入
13、匹配字符串的文本框对象 p,和一个用于输出的文本区对象 text。程序运行时,用户输入匹配字符串和文件名,程序逐行读入文件的内容,检出那些以匹配字符串开头的行并显示在文本区中。 public void actionPerformed(ActionEvent e) String s; if(e.getSource()=fileName) try in=new BufferedReader(new 1); catch(FileNotFoundException e1) System.out.print(“File Not found!/n“); text.setText(null); try wh
14、ile(s= 2)!=null) if(s.startsWith(p.getText() text.append(s+“/n“); catch(IOException exp) System.out.print(“File read error! /n“); (分数:4.00)31.方法 getURLConnection(String s)的功能是已知网络中的资源 s,获得一个 URLConnection对象并返回。 URLConnection getURLConnection(String s) URL myURL=null; try myURL=new 1; catch(Malformed
15、URLException e) System.out.println(“有错的 URL:“+s+e); return myURL. 2; (分数:4.00)五、程序分析题(总题数:5,分数:20.00)32.阅读下列程序段,请写出标有注解(1)、(2)和(3)语句的作用。 Image img; public void int() img= new Image15; for(int i=0;i15;i+) imgi:getImage(getCodeBase(),“img“+i+“.jpg“); /(1) public void paint(Graphics g) int i=0,k=0; whi
16、le(k15000);/语句略 g.drawImage(imgi,0,0,this); /(2) k+; for(int j=0;j5000000;j+) / i=(i+1)% img.length; (分数:4.00)_33.阅读下列程序,请写出调用 fib(10)的输出结果。 public static void fib(int n) int f1=1, f2=1; System.out.print(“/t“+f1+“/t“+f2); for(int i=3;1=n;i+=2) f1+=f2; System.out.print(“/t“+f1); if(i%3=0) System.out.
17、print(“/n“); if(in) f2=f1; System.out.print(“/t“+f2); if(i+1)%3=0)System.out.print(“/n“); (分数:4.00)_阅读下列程序,请回答以下问题: import java.io.*; import java.awt.*; import java.awt.event.*;import javax.swing.*; class MyFrame extends JFrame implements ActionListener JButton btn1 ,btn2; JTextArea ja; public MyFra
18、me() btn1=new JButton(“按钮 1“); btn2=new JButton(“按钮 2“); ja=new JTextArea(5,10); getContentPane().add(btn1, BorderLayout. NORTH); getContentPane().add(btn2, BorderLayout. SOUTH); getContentPane().add(ja, BorderLayout. CENTER); btn1.addActionListener(this); btn2.addActionListener(this); setSize(180,2
19、00); setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=btn1) btn1.setEnabled(false); ja.append(“按钮 1被点击!/n“); btn2.setEnabled(true); else btn1.setEnabled(true); ja.append(“按钮 2被点击!/n“); btn2.setEnabled(false); public class Test34 public static void main(Stringargs) new My
20、Frame(); (分数:4.00)(1).写出程序运行时界面中有哪些组件,以及它们的位置关系。(分数:2.00)_(2).按点击按钮 1、按钮 2、按钮 2、按钮 1的顺序点击按钮,写出文本区的输出内容。(分数:2.00)_34.阅读下列程序,请写出该程序的输出结果。 public class Test35 public static void main(Stringargs) System.out.println(“开始:“); MyThread x=new MyThread(1000,“girl“); MyThread y=new MyThread(300,“boy“); x.start
21、();y.start(); while(x.isAlive()|y.isAlive(); System.out.println(“结束.“); class MyThread extends Thread int dt; String name; public MyThread(int c,String n) dt=c;name=n: public void run() MyResourceClass.outMsg(this); class MyResourceClass synchronized static void outMsg(MyThread th) System.out.printl
22、n(th. name+“ “+“启动.“); for(int i=0;12;1+) System.out.println(th. name+“第“+i+“次活动.“); try Thread.sleep(th.dt); catch(InterruptedException e) System.out.println(th.name+“ “+“活动完成,“); (分数:4.00)_35.阅读下列程序,请写出该程序的功能。 import java.util.*;import java.io.*; import java.awt.*; import javax.swing.*;import java
23、.awt.event.*; class MyFrame extends JFrame implements ActionListener JTextArea text; JTextField tf; BufferedWriter out; MyFrame() super(“一个测试程序“); Container con=getContentPane(); text=new JTextArea(10,20); text.setBackground (Color.cyan); tf=new JTextField (); tf.addActionListener(this); con.setLayo
24、ut(new BorderLayout(); con.add (text, “Center“); con.add(tf, “South“); setVisible(true); pack(); public void actionPerformed(ActionEvent e) if(e.getSource()=tf) try out=new BufferedWriter(new FileWriter(tf. getText(); StringTokenizer tokens=new StringTokenizer(text.getText(); int n=tokens.countToken
25、s(),i; out.write(tokens.nextToken ()+“/r/n“); out.flush (); text.setText (null); System.exit(0); catch(IOException exp) text.setText(“文件写出错! /n“); public class Test36 public static void main(String args ) new MyFrame(); (分数:4.00)_六、程序设计题(总题数:2,分数:12.00)36.请编写方法 double sumSequence(int n),该方法的功能是求以下数列
26、前 n项的和 s并返回: s=1/2+2/3+3/5+5/8+8/13+ 提示:下一项的分子=上一项的分母,下一项的分母=上一项的分子与分母的和。 double sumSequence(int n) (分数:6.00)_37.某应用程序的界面如下图所示,有 3个文本框,第一个文本框对象为 t1,第二个文本框对象为 t2,第三个文本框对象为 r。程序对前两个文本框作事件监视。程序运行时,当前两个文本框有整数输入时,在第三个文本框输出它们的和。要求编写实现上述功能的方法 actionPerformed(ActionEvent e)。 (分数:6.00)_Java语言程序设计(一)真题 2017年
27、04月答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:10,分数:10.00)1.在下列供选的字符串中,不能作为 Java整型常量的是_(分数:1.00)A.052B.0x3BEH C.6389D.0x3fedL解析:解析 整型常量有十进制、八进制和十六进制三种写法,如下面的示例所示:1236(十进制),0777(八进制,以数字符 0开头),0x3ABC(十六进制,以 0x开头,后随数字符和英文字母 A到 F),5432112345L或 54321123451(以字母 L或 1结尾是长整数)。2.在以下供选的关键字中,能用于定义常值变量的是_(分数:1.00)A
28、.final B.staticC.protectedD.super解析:解析 用 final修饰变量,声明该变量的值不能被改变。不能被改变的变量相当于一个常量。3.下列 Java语句中,不正确的是_(分数:1.00)A.float e=0.0d; B.char c,d=“a“;C.int $e,a,b=10;D.double e=0.0f;解析:4.以下代码的输出结果是_ System.out.println(1+2+“aa“+3);(分数:1.00)A.12aa3B.3aa3 C.12aaD.代码有语法错解析:5.在 Swing中,与 JComponent类有直接父子关系的是_(分数:1.0
29、0)A.JMenuB.JButtonC.JLabel D.JTextArea解析:6.在以下选项中,可得到菜单项名称的方法是_(分数:1.00)A.getMenu()B.getLabel() C.getJMenu()D.getItem()解析:解析 getLabel(),得到菜单选项的名称。getJMenu(),取得菜单条中的菜单。getItem(),得到指定索引处的菜单项。7.某程序定义了一个 JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是_(分数:1.00)A.继承 Thread类,在类内定义 run()方法,声明和创建线程对象,并让该对象
30、调用 start()方法B.继承 Thread类,在类内定义 run()方法,声明线程对象,并让该对象调用 start()方法C.声明实现 Runnable接口,在类内实现 run()方法,声明线程对象,创建线程,并调用 run()方法D.声明实现 Runnable接口,在类内实现 run()方法,声明和创建线程对象,并让该对象调用 start()方法 解析:8.以下关于线程死锁的叙述中,正确的是_(分数:1.00)A.若程序中存在线程的死锁问题,编译时不能通过B.实现多线程时死锁不可避免C.为了避免死锁,应禁止对资源以互斥的方式进行访问D.线程的死锁是一种逻辑运行错误,编译器无法检测 解析:
31、9.用类 JFileChooser对象可打开和保存文件对话框,程序能从该对话框获得_(分数:1.00)A.用户选择的文件的长度B.用户选择的文件名C.文件对象 D.用户选择的文件内容解析:解析 用类 JFileChooser对象可打开和保存文件对话框,程序可利用 getSelectedFile()方法取得文件对象,并利用这个文件对象用方法 getName()取得文件的名称,用方法 getPath()取得文件的路径。10.网络应用有多种模式,其中 WWW采用的模式是_(分数:1.00)A.对等模式B.主机终端模式C.分布式模式D.客户机/服务器模式 解析:解析 WWW 是建立在客户机/服务器模式
32、上,以 HTML语言和 HTTP协议为基础,能够提供各种Internet服务的信息浏览系统。二、第部分 非选择题(总题数:10,分数:20.00)11.Java编译程序对 Test11.java源程序编译,如果没有发生错误,一定会产生一个文件,该文件的名字是 1。 (分数:2.00)解析:Test11.class12.表达式“-12”的值是 1。(负数用补码表示) (分数:2.00)解析:-113.为了声明类只是一种模板,类中定义的某些方法没有具体实现代码,只有它的子类才可能是有实际意义的类。定义这样的类的修饰符是 1。 (分数:2.00)解析:abstract14.设有字符串定义:Strin
33、g s=“12341234“; 则表达式 s.indexOf(“2“)的值是 1。 (分数:2.00)解析:115.在实现接口 ActionListener的方法 actionPerformed()中,为识别事件对象,调用方法getActionCommand(),该方法返回 1 的文字信息。 (分数:2.00)解析:获得事件源按钮16.程序将若干单选按钮对象加入到一个 ButtonGroup对象中,其目的是 1。 (分数:2.00)解析:构成单选按钮组17.AWT的 Font对象的作用是 1。 (分数:2.00)解析:用类 Font对象设置字型18.处于运行状态的线程执行 stop()方法,该
34、线程将进入的状态是 1。 (分数:2.00)解析:死亡状态19.FileWriter类的作用是为 1 提供支持。 (分数:2.00)解析:字符流文件写操作20.在访问数据库的程序中,建立了 Statement对象后,利用该对象可以执行数据库更新,实现 SQL数据库更新的方法是 1。 (分数:2.00)解析:executeUpdate()三、简答题(总题数:6,分数:18.00)21.请写出表达式实现以下功能:变量 y的值为 5与变量 z的值为 3,有且只有一个成立。 (分数:3.00)_正确答案:()解析:y=5!=z=3 或 y=5tp.add(text);frame.getContentP
35、ane().add(new JScrollPane(tp);24.请写出 Graphics2D类中 stroke、paint 两种属性的作用。 (分数:3.00)_正确答案:()解析:stroke 属性控制线条的宽度、笔形样式、线段连接方式或短划线图案。 paint属性控制填充效果。25.请写出 Java系统提供的支持文件随机访问的类和该类提供的读取一个字符的方法。 (分数:3.00)_正确答案:()解析:RandomAccessFile char readChar()26.请写出 URLConnection类实现网络访问的基本过程。 (分数:3.00)_正确答案:()解析:先要创建一个 UR
36、L对象,然后利用 URL对象的 openConnection()方法,从系统获得一个URLConnection对象。程序有了 URLConnection对象后,就可使用 URLConnection类提供的方法获得流对象和实现网络连接。四、程序填空题(总题数:5,分数:20.00)27.方法 countPrimes(int m,int n)统计自 m至 n范围内质数的个数,并输出这些质数。 public static int countPrimes(int m,int n) int i,j,count=0; for(j=m;j=n;j+) for(i=2;i=j/2;1+) if( 1) bre
37、ak; if( 2) count+; System.out.println(j); return count; (分数:4.00)解析:j%i=0 ij/228.以下是某应用程序定义的两个方法。方法 setCheckBoxs(ItemListener listener)已知监视器,产生一组选择按钮,并给它们注册监视器和将它们加入到面板中;方法使用的全局对象有面板 panel,存放按钮名称的数组 boxName,选择按钮数组 box,文本区 text。方法 itemStateChanged(ItemEvent e)是选择按钮的事件监视方法,当某个选择按钮的选择状态有改变时,监视方法在文本区中显示
38、各选择按钮的选择状态(被选中或没有被选中)。 JPanel panel=new JPanel(); String boxName=“选择按钮 A“,“选择按钮 B“,“选择按钮 C“; JCheckBoxbox=new JCheckBoxboxName.length; JTextArea text=new JTextArea(4,10); public void setCheckBoxs(ItemListener listener) for(int i=0;iboxName.length;i+) boxi=new JCheckBox(boxNamei,false); boxi. 1; pane
39、l.add(boxi); public void itemStateChanged(ItemEvent e) text.setText(null); for(int i=0;jbox.length;i+) text.append(boxNamei+( 2? “被选中“:“没有被选中“)+“/n“); (分数:4.00)解析:addItemListener(this) boxi.isSelected()29.以下是一个放幻灯片的应用程序,程序的界面中含一个面板子类 P的对象和一个按钮对象 b。设幻灯片已经装入内存,并存放于 myImage数组中,幻灯片的张数存于变量 num中。程序运行时,用户点
40、击按钮b,按钮的监视方法循环更换幻灯片号 curImage,并让系统调用 P重定义的 paintComponent()方法显示当前幻灯片。 int curImage=0; final int num=30; ImagemyImage=new Imagenum; /以下是类 P内定义的两个方法 public void actionPerformed(ActionEvent e) if(e.getSource()=b) 1; curImage=(curImage+1)%num; trymythread.sleep(200); catch(InterruptedException e) public
41、 void paintComponent(Graphics g) if(myImagecurImage)!=null) g. 2(myImagecurImage,10,10, myImagecurImage.getWidth(), myImagecurImage.getHeight(),this); (分数:4.00)解析:repaint() drawImage30.以下应用程序的界面中有一个用于输入文件名的文本框对象 fileName、一个用于输入匹配字符串的文本框对象 p,和一个用于输出的文本区对象 text。程序运行时,用户输入匹配字符串和文件名,程序逐行读入文件的内容,检出那些以匹配字
42、符串开头的行并显示在文本区中。 public void actionPerformed(ActionEvent e) String s; if(e.getSource()=fileName) try in=new BufferedReader(new 1); catch(FileNotFoundException e1) System.out.print(“File Not found!/n“); text.setText(null); try while(s= 2)!=null) if(s.startsWith(p.getText() text.append(s+“/n“); catch(IOException exp) System.out.print(“File read error! /n“); (分数:4.00)解析:FileReader(fileName.getText() in.readLine()31.方法 getURLConnection(String s)的功能是已知网络中的资源 s,获得一个 URLConnection对象并返回。 URLConnection getURLConnection(String s) URL myURL=null; try myURL=new 1; catch(MalformedURLException e) System.ou