1、Java 语言程序设计(一)真题 2015 年 10 月及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:10,分数:10.00)1.以下字符组合中,不能作为 Java 整型常量的是_(分数:1.00)A.037B.0x3ADGC.7000D.0x3abcL2.以下程序代码的输出结果是_ int x=11; do System.out.print(“Z“);x-; while(x7);(分数:1.00)A.zzzB.zzzzzC.zzD.zzzz3.设有数组定义 int x=1, 2, 3, 3, 4, 5, 6, 2, ;,则 x.length 的值为_(分数
2、:1.00)A.2B.3C.4D.54.设有字符串 String s=“ABCDEFGABC“;,则表达式 s.indexOf(“A“,7)的值是_(分数:1.00)A.7B.6C.3D.05.以下关于 Swing 与 AWT 之间关系的叙述中,正确的是_(分数:1.00)A.Swing 是 AWT 的提高和扩展B.在写 GUI 程序时,AWT 和 Swing 不能同时使用C.AWT 和 Swing 在不同的平台上都有相同的表示D.AWT 中有一些类是从 Swing 中的一些继承的6.以下供选择的类中,其子类能用来创建框架窗口的是_(分数:1.00)A.JWindowB.JFrameC.JDi
3、alogD.JAudio7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是_(分数:1.00)A.继承 Thread 类,在类内定义 run()方法,声明和创建线程对象,并让该对象调用 start()方法B.继承 Thread 类,在类内定义 run()方法,声明线程对象,并让该对象调用 start()方法C.声明实现 Runnable 接口,在类内实现 run()方法,声明线程对象,创建线程,并调用 run()方法D.声明实现 Runnable 接口,在类内实现 run()方法,声明和创建线程对象,并让该对象调用 start()方法8.大多数采用缓冲式输入数据文件的程序的主要目的
4、是_(分数:1.00)A.用 readLine()方法按行输入字符B.提高输入速度C.更快地读入字符数据D.用 read()方法输入任意个字符9.在打开文件对话框时,可用 FileFilter 类设置筛选条件,在以下供选择的方法中,是 FileFilter 类预设的方法之一的是_(分数:1.00)A.setFileFilter()B.addFileFilter()C.accept()D.setDescription()10.对访问数据库的 Java 程序来说,DriverManager 类的作用是_(分数:1.00)A.存储查询结果B.处理与数据库的连接C.处理驱动程序加载D.处理驱动程序加载
5、和建立数据库连接二、第部分 非选择题(总题数:10,分数:20.00)11.Java 的编译程序将 Java 源程序编译成 1 文件。 (分数:2.00)12.实现条件“a/b7 并且 b!=0”的表达式是 1。 (分数:2.00)13.为了声明类中定义的某方法不能被子类的方法覆盖,应在该方法前加入的修饰符是 1。 (分数:2.00)14.类的声明定义了类的所有对象的共有的 1。 (分数:2.00)15.在实现接口 ActionListener 的方法 actionPerformed()中,对事件对象调用方法 getSource(),该方法的返回值是 1。 (分数:2.00)16.程序将若干单
6、选按钮对象加入到一个 1 对象中,使它们实现单选功能。 (分数:2.00)17.如果要设置的字型是:20 磅字号、正常风格(Font.PLAIN)、细明体,构造这样要求的 Font 对象的代码是 new Font( 1)。 (分数:2.00)18.线程在临界段中执行 wait()方法的作用是 1。 (分数:2.00)19.为字符流文件写操作提供支持的类是 1。 (分数:2.00)20.在访问数据库的程序中,建立了 Statement 对象后,利用该对象可以执行 SQL 查询,实现 SQL 查询的方法是 1。 (分数:2.00)三、简答题(总题数:6,分数:18.00)21.请写出表示以下条件的
7、表达式:变量 x 的值为 1 与变量 y 的值为 2,有且只有一个成立。 (分数:3.00)_22.请写出通过继承创建子类的作用。 (分数:3.00)_23.请写出将文本区 text1 和 text2 放置于面板 p,并创建放置 p 的滚动面板 jsp,最后将 jsp 添加到JFrame 子窗口 myFrame 的 Java 语句。 (分数:3.00)_24.请写出 Java 小应用程序播放音频文件需要用到的类的类名,以及创建相应对象的方法。 (分数:3.00)_25.请写出 Java 系统提供的支持文件随机访问的类的类名,以及该类提供的读取一个整数的方法。 (分数:3.00)_26.请写出
8、URL 对象能实现的功能。 (分数:3.00)_四、程序填空题(总题数:5,分数:20.00)27.以下程序功能是输出 101 至 300 之间的质数,并统计这些质数的个数输出。 public class Test27 public static void main(String args) int i,j,count=0; for(j=101;j=300;j+) for(i=2;i=j/2;i+) if( 1) break; if( 2) count+; System.out.prindn(j); System.out.println(“101-300 之间有“+count+“个质数。“);
9、 (分数:4.00)28.以下程序界面中有若干可以多选的选择框,当某个选择框的选择状态有改变时,程序在文本区中显示各选择框的选择状态(被选中或没有被选中)。 import javax.swing.* ;import java.awt.* ;import java.awt.event.* ; class MyWindow extends JFrame implements ItemListener JTextArea text;JCheckBoxbox; String boxName=“选择框 1“,“选择框 2“,“选择框 3“); MyWindow(String s) super(s); C
10、ontainer con=this.getContentPane(); con.setLayout(new GridLayout(1,2); setLocation(100,100); JPanel panel=new JPanel(); int len=boxName.length; panel.setLayout(new GridLayout(len,1); box=new JCheckBoxlen; for(int i=O; ilen;i+) boxi=new JCheckBox(boxNamei,false); boxi. 1(this); panel.add(boxi); text=
11、 new JTextArea(4,10); con.add(panel); con.add(text); setVisible(true);pack(); public void itemStateChanged(ItemEvent e) text.setText(null); for(int i=0;ibox.length;i+) if(boxi. 2) text.append(boxNamei+“被选中/n“); else text.append(boxNamei+“没有被选中/n“); public class Test28 public static void main(String
12、args) new MyWindow(“选择项目处理示例程序“); (分数:4.00)29.以下是一个播放动画的小应用程序中的 run()方法和 paint()方法。设动画图片已由小应用程序的init()方法装入内存,并存放于 myImage 数组中,动画图张数放于变量 num 中。控制显示和动画图片序号更新的线程也已经在 start()方法中创建并启动。paint()方法要播放的动画图片号是 curImage。 int curImage=0;final int num=30; ImagemyImage=new Imagenum; public void run()/控制动画图片号的更新,并重
13、新显示 while(true) 1; curImage=(curImage+1)%num; try mythread.sleep(200); catch(InterruptedException e) public void paint(Graphics g) if(myImagecurImage)!=null) g. 2(myImagecurImage,10 ,10, myImagecurImage.getWidth(this), myImagecurImage.getHeight(this),this); (分数:4.00)30.以下是一个缓冲式输入的示意程序,程序的界面有一个文本框和一个
14、文本区,在文本框中输入要读入显示的文件名,在文本区中显示该文件的内容。 import java.io.* ;import java.awt.* ;import javax.swing.* ;import java.awt.event.*; public class Test30 extends JFrame implements ActionListener JTextArea text; JTextField fileName; BufferedReader in; Test30() super(“缓冲式输入示意程序“); Container con=this.getContentPane(
15、);/获得内容面板 con.setLayout(new BorderLayout(); fileName=new JTextField(“输入文件名“); fileName.addActionListener(this); text=new JTextArea(10,20); text, setBackground(Color.cyan); JScrollPane jsp=new JScrollPane(text); con.add(jsp,BorderLayout. CENTER); con.add(fileName,“North“); setVisible(true);pack(); pu
16、blic void actionPerformed(ActionEvent e) String s; if(e.getSource()=fileName) try in=new BufferedReader(new 1); catch(FileNotFoundException el) text.setText(null); try while(s= 2)!=null) text.append(s+“/n“); catch(IOException exp) public static void main(String args)new Test30(); (分数:4.00)31.以下方法的功能
17、是已知域名,返回 IP 地址。 String getHostAddr(String domainName) try/以下代码通过域名建立 InetAddress 对象: InetAddress addr= 1.getByName(domainName); return addr. 2; catch(UnknownHostException e) e.printStackTrace(); return null; (分数:4.00)五、程序分析题(总题数:5,分数:20.00)32.阅读下列程序,请写出该程序的输出结果。 class FatherClass public FatherClass(
18、) System.out.println(“FatherClass Create“); public class ChildClass extends FatherClass public ChildClass() System.out.println(“ChildClass Create“); public static void main(String args) FatherClass fc=new FatherClass(); ChildClass cc=new ChildClass(); (分数:4.00)_33.阅读下列程序,请写出调用 Test33 (4)的输出结果。 publi
19、c static void Test33(int n) int k,i,j,a=new intnn; k=1; for(i=0;in;i+) if(i%2=0) for(j=0;j=i;j+)aij=k+; for(j=i-1;j=0;j-)aji=k+; else for(j=0;j=i;j+)aji=k+; for(j=i-1;j=0;j-)aij=k+; for(i=0;in;i+) for(j=0;jn;j+) System.out.print(“/t“+aij); System.out.println(); (分数:4.00)_阅读下列程序,请回答下面的问题: import java
20、x.swing.* ;import java.awt. * ;import java.awt.event. *; class MyScrollBar extends JScrollBar public MyScrollBar(int init,int len,int low,int high) super (JScrollBar.HORIZONTAL,init,len,low,high); public Dimension getPreferredSize() return new Dimension(125,20); class MyWindow extends JFrame impleme
21、nts AdjustmentListener private JTextField t; MyScrollBar bar; MyWindow(String s) super(s); bar=new MyScrollBar(10,10,0,255); Container con=this.getContentPane (); con.setLayout (new GridLayout (2,1); this.setSize (250, 100) ;this.setLocation (100, 100); bar. addAdjustmentListener(this); t=new JTextF
22、ield(“ “,20); con.add(bar) ;con.add(t); this. setVisible (true) ;this.pack (); public void adjustmentValueChanged (AdjustmentEvent e) MyScrollBar myBar=(MyScrolIBar) e.getAdjustable(); t.setText (myBar.getValue (); public class Test34 public static void main(String args) new MyWindow(“Test34 窗口“); (
23、分数:4.00)(1).该程序的功能是什么?(分数:2.00)_(2).文本框中能显示的最小值和最大值分别是多少?(分数:2.00)_34.阅读下列程序,请写出程序的功能。 import java.util.* ;import java.io. * ;import java.awt. * ;import javax.swing. * ; import java. awt. event. * ; public class Test35 extends JFrame implements ActionListener JTextArea text; JButton button; Buffered
24、Writer out; TesB5 () super(“一个测试程序“); Container con=getContentPane(); text=new JTextArea(10,20); text.setBackground (Color.cyan); button=new JButton (“写“); button.addActionListener(this); con.setLayout(new BorderLayout(); con.add (text, “Center“); con.add(button, “South“); setVisible(true);pack(); p
25、ublic void actionPerformed(ActionEvent e) String s; if (e. getSource()= button) try out=new BufferedWriter(new FileWriter(“line.txt“); s=text.getText(); StringTokenizer tokens=new StringTokenizer(s); int n=tokens.countTokens(),i; String temp=tokens.nextToken(); out.write(temp+“/r/n“); out.flush ();
26、text.setText (null) ;System.exit(0); catch(IOException exp) text.setText(“文件写出错! /n“); public static void main(String args ) new Test35 (); (分数:4.00)_35.阅读下列程序,请写出该程序的功能。 import java.awt. * ;import javax.swing. *; public class Test36 extends JFrame MyPanel p; double seta=0.0; Test36() Container con=
27、getContentPane(); con.setLayout (new BorderLayout (); p=new MyPanel(); con.add(p, “Center“); setSize (500,400); setVisible (true); public static void main(String args) new Test36(); class MyPanel extends JPanel implements Runnable double pi=3.14159, r1=150.0, r2=100.0; Thread myThread=null;int seta;
28、 MyPanel() seta=0; if(myThread=null) myThread=new Thread (this); myThread.start(); public void run() while (myThread!=null) seta=(seta+2)%360; repaint(); tryThread.sleep(20); catch(InterruptedException e) public void paintComponent(Graphics g) super.paintComponent (g); int x0=220+(int)(r1*Math.cos(p
29、i/180.0*seta); int y0=200+(int)(r2*Math.sin(pi/180.0*seta); g.setColor(Color.red); g.fillOval(x0,y0,10,10); (分数:4.00)_六、程序设计题(总题数:2,分数:12.00)36.编写方法 double sumS(int n),已知参数 n,求以下表达式前 n 项的和 S 返回。 (分数:6.00)_37.类 CalculateFrame 是一个实现计算器的窗口,窗口的界面如下图所示,不要求对各组件的事件处理进行编程。其中 16 个按钮上的符号和命令符可利用程序中的字符串数组。 (分数:
30、6.00)_Java 语言程序设计(一)真题 2015 年 10 月答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:10,分数:10.00)1.以下字符组合中,不能作为 Java 整型常量的是_(分数:1.00)A.037B.0x3ADG C.7000D.0x3abcL解析:2.以下程序代码的输出结果是_ int x=11; do System.out.print(“Z“);x-; while(x7);(分数:1.00)A.zzzB.zzzzzC.zzD.zzzz 解析:解析 do.while 语句的执行过程是:(1)执行循环体。(2)求循环条件表达式的值。(3
31、)当值为true 时,转步骤(1);当值为 false 时,结束循环。本题中,循环体执行到第 4 次后,x 的值为 7,此时循环条件表达式的值为 false,结束循环。故本题的答案为 D。3.设有数组定义 int x=1, 2, 3, 3, 4, 5, 6, 2, ;,则 x.length 的值为_(分数:1.00)A.2B.3C.4 D.5解析:解析 二维数组名.length 是二维数组的子数组个数,故本题中,x.length 的值为 4。4.设有字符串 String s=“ABCDEFGABC“;,则表达式 s.indexOf(“A“,7)的值是_(分数:1.00)A.7 B.6C.3D.
32、0解析:5.以下关于 Swing 与 AWT 之间关系的叙述中,正确的是_(分数:1.00)A.Swing 是 AWT 的提高和扩展 B.在写 GUI 程序时,AWT 和 Swing 不能同时使用C.AWT 和 Swing 在不同的平台上都有相同的表示D.AWT 中有一些类是从 Swing 中的一些继承的解析:解析 Swing 可以看作是 AWT 的改良版,而不是代替 AWT,是对 AWT 的提高和扩展。所以,在写GUI 程序时,Swing 和 AWT 都要使用。Swing 与 AWT 之间的最明显的区别是界面组件的外观,AWT 在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。S
33、wing 中的类是从 AWT 继承的。6.以下供选择的类中,其子类能用来创建框架窗口的是_(分数:1.00)A.JWindowB.JFrame C.JDialogD.JAudio解析:7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是_(分数:1.00)A.继承 Thread 类,在类内定义 run()方法,声明和创建线程对象,并让该对象调用 start()方法B.继承 Thread 类,在类内定义 run()方法,声明线程对象,并让该对象调用 start()方法C.声明实现 Runnable 接口,在类内实现 run()方法,声明线程对象,创建线程,并调用 run()方法D.声明
34、实现 Runnable 接口,在类内实现 run()方法,声明和创建线程对象,并让该对象调用 start()方法 解析:解析 用 Thread 子类实现多线程,得先声明一个 Thread 类的子类,并在子类中重新定义 run()方法。当程序需要建立线程时,就可创建 Thread 子类的实例,并让创建的线程调用 start()方法,这时,run()方法将自动执行。用 Runnable 接口实现多线程的主要工作是:声明实现 Runnable 接口的类,在类内实现 run()方法;并在类内声明线程对象,在 init()方法或 start()方法中创建新线程,并在 start()方法中启动新线程。8.
35、大多数采用缓冲式输入数据文件的程序的主要目的是_(分数:1.00)A.用 readLine()方法按行输入字符 B.提高输入速度C.更快地读入字符数据D.用 read()方法输入任意个字符解析:9.在打开文件对话框时,可用 FileFilter 类设置筛选条件,在以下供选择的方法中,是 FileFilter 类预设的方法之一的是_(分数:1.00)A.setFileFilter()B.addFileFilter()C.accept() D.setDescription()解析:解析 在打开文件对话框时,可用 FileFilter 类设置筛选条件,FileFilter 类预设两个方法,分别是 a
36、ccept()与 getDescription()。10.对访问数据库的 Java 程序来说,DriverManager 类的作用是_(分数:1.00)A.存储查询结果B.处理与数据库的连接C.处理驱动程序加载D.处理驱动程序加载和建立数据库连接 解析:二、第部分 非选择题(总题数:10,分数:20.00)11.Java 的编译程序将 Java 源程序编译成 1 文件。 (分数:2.00)解析:字节码12.实现条件“a/b7 并且 b!=0”的表达式是 1。 (分数:2.00)解析:b!=0p.add(text2); jsp=new JScrollPane(p); myFrame.getCon
37、tentPane().add(jsp);24.请写出 Java 小应用程序播放音频文件需要用到的类的类名,以及创建相应对象的方法。 (分数:3.00)_正确答案:()解析:类名是 AudioClip,创建对象的方法是 getAudioClip()。25.请写出 Java 系统提供的支持文件随机访问的类的类名,以及该类提供的读取一个整数的方法。 (分数:3.00)_正确答案:()解析:类名是 RandomAccessFile,读取一个整数的方法是 readlnt()。26.请写出 URL 对象能实现的功能。 (分数:3.00)_正确答案:()解析:实现 Internet 寻址、网络资源的定位连接
38、、在客户机与服务器之间直接访问。四、程序填空题(总题数:5,分数:20.00)27.以下程序功能是输出 101 至 300 之间的质数,并统计这些质数的个数输出。 public class Test27 public static void main(String args) int i,j,count=0; for(j=101;j=300;j+) for(i=2;i=j/2;i+) if( 1) break; if( 2) count+; System.out.prindn(j); System.out.println(“101-300 之间有“+count+“个质数。“); (分数:4.0
39、0)解析:j%i=0 ij/228.以下程序界面中有若干可以多选的选择框,当某个选择框的选择状态有改变时,程序在文本区中显示各选择框的选择状态(被选中或没有被选中)。 import javax.swing.* ;import java.awt.* ;import java.awt.event.* ; class MyWindow extends JFrame implements ItemListener JTextArea text;JCheckBoxbox; String boxName=“选择框 1“,“选择框 2“,“选择框 3“); MyWindow(String s) super(
40、s); Container con=this.getContentPane(); con.setLayout(new GridLayout(1,2); setLocation(100,100); JPanel panel=new JPanel(); int len=boxName.length; panel.setLayout(new GridLayout(len,1); box=new JCheckBoxlen; for(int i=O; ilen;i+) boxi=new JCheckBox(boxNamei,false); boxi. 1(this); panel.add(boxi);
41、text= new JTextArea(4,10); con.add(panel); con.add(text); setVisible(true);pack(); public void itemStateChanged(ItemEvent e) text.setText(null); for(int i=0;ibox.length;i+) if(boxi. 2) text.append(boxNamei+“被选中/n“); else text.append(boxNamei+“没有被选中/n“); public class Test28 public static void main(St
42、ring args) new MyWindow(“选择项目处理示例程序“); (分数:4.00)解析:addItemListener isSelected()29.以下是一个播放动画的小应用程序中的 run()方法和 paint()方法。设动画图片已由小应用程序的init()方法装入内存,并存放于 myImage 数组中,动画图张数放于变量 num 中。控制显示和动画图片序号更新的线程也已经在 start()方法中创建并启动。paint()方法要播放的动画图片号是 curImage。 int curImage=0;final int num=30; ImagemyImage=new Imagenum; public void run()/控制动画图片号的更新,并重新显示 while(true) 1; curImage=(curImage+1)%num; try mythread.sleep(200); catch(InterruptedException e) public void paint(Graphics g) if(myImagecurImage)!=null) g. 2(myImagecurImage,10 ,10, myImagecurImage.getWidth(this), myImagecurImage.getHeight(this),this);