1、Java 语言程序设计(一)(课程代码 04747)第一大题:单项选择题1、下列字符组合不能作为 Java 整型常量的是( ) A.078 B.0x3ACB C.5000 D.0x3ABC参考答案:A2、以下程序代码的输出结果是( )int x = 10;while (x 7) System.out.print(“*“); x-; A.* B.* C.* D.*参考答案:B3、设类 U 声明,及对象 u 和 v 的定义如下:class Uint x, int y;U(int a, int b)x= a; y = b;void copy(U a) x = a.x; y = a.y;U u = n
2、ew U(1, 2), v = new U(2, 3);在以下供选择的代码中,可能引起系统回收内存的是( ) A.u.x=v.y;u.y=v.x B.u=v C.u.copy D.v.copy(u)参考答案:B4、设有以下代码:String s l=“123“;String s2=“123“;String s3=new String(“123“);则表达式 s1=s2 和 s1=s3 的值分别是( ) A.true,true B.false,false C.true,false D.false,true参考答案:C5、以下关于 AWT 与 Swing 之间关系的叙述,正确的是( ) A.Swi
3、ng 是 AWT 的提高和扩展 B.在写 GUI 程序时,AWT 和 Swing 不能同时使用 C.AWT 和 Swing 在不同的平台上都有相同的表示 D.AWT 中的类是从 Swing 继承的参考答案:A6、在以下 Swing 组件中,能为它指定布局管理器的是( ) A.JScrollBar 对象 B.JMenuBar 对象 C.JComboBox 对象 D.JDialog 对象参考答案:D7、一般的绘图程序要定义一个 JPanel 子类。在 JPanel 子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要重定义的方法是( ) A.paint() B.paintCompo
4、nent() C.repaint() D.update()参考答案:B8、用 Runnable 接口实现多线程的主要工作是( ) A.声明实现 Runnable 接口的类,在类内实现 run()方法,让线程调用 start()方法。 B.声明实现 Runnable 接口的类,在类内实现 run()方法,在类内声明线程对象,在 init()方法中创建新线程,启动新线程。 C.声明实现 Runnable 接口的类,在类内实现 run()方法,在类内声明线程对象,在 Init()方法或 start()方法中创建新线程,在 start()方法中启动新线程。 D.声明实现 Runnable 接口的类,在
5、类内实现 run()方法,在 init()方法中创建新线程,在 start()方法中启动新线程参考答案:C9、程序如果要按行输入输出文件的字符流,最合理的方法是采用( ) A.BufferedReader 类和 BufferedWriter 类 B.InputStream 类和 OutputStream 类 C.FileReader 类和 FileWriter 类 D.File_Reader 类和 File_Writer 类参考答案:A10、在编写访问数据库的 Java 程序时,ResultSet 对象的作用是( ) A.建立新数据库连接 B.用来表示与数据库的连接 C.在指定的连接中处理 S
6、QL 语句 D.存储查询结果参考答案:D11、以下是关于 Java 语言关键字的叙述,其中正确的是( ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量 B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 D.break 和 main 都是 Java 语言的关键字参考答案:C12、以下程序代码的输出结果是( )int x=5,y=7,u=9,v=6;System.out.println(xy ? x+2:uv ? u-3:v+2); A.8 B.6 C.7 D.true参考答案:B13、Java 语言中,在类定
7、义时用 final 关键字修饰,是指这个类( ) A.不能被继承 B.在子类的方法中不能被调用 C.能被别的程序自由调用 D.不能被子类的方法覆盖参考答案:A14、以下是关于字符串运算的代码,执行该代码段的输出结果是( )String s=0123456789,sl,s2;sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2); A.0122345 B.234567892345 C.012234 D.23456789234参考答案:D15、以下是关于 FlowLayout 布局组件排列顺序的叙述,正确的是( ) A.从上到
8、下排列 B.从左到右排列 C.从下到上排列 D.从右到左排列参考答案:B16、程序执行方法 showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是JFileChooser.APPROVE_OPTION,则用户执行的动作是( ) A.对话框非正常关闭 B.按下“打开保存”按钮 C.按下“撤销”按钮 D.重新输入了一个文件名参考答案:B17、设已经有 Graphics2D 对象 g2d,Rectangle2D 对象 r,绘制对象 r 的代码是( ) A.g2d.draw(r) B.g2d.drawRect(r) C.r.draw() D.r.drawRect()参考答案:
9、A18、在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是( ) A.start() B.init() C.resume() D.run()参考答案:C19、在以下供选择的方法中,不能用于文件随机访问的方法是( ) A.readChar() B.readLong() C.readInteger() D.writeChars()参考答案:C20、某程序利用网址参数创建 URL 对象 url,接着希望利用对象 url 获得 URLConnection 对象,则这个 url 对象要调用的方法是( ) A.connection() B.URLConnection() C.getConnec
10、tion() D.openConnection()参考答案:D21、在下述字符串中,不属于 Java 语言关键字的是 ( ) A.float B.new C.java D.return参考答案:C22、Java 语言中数值数据的类型能自动转换,按照从左到右的转换次序为 ( ) A.byteintshortlongfloatdouble B.byteshortintlongfloatdouble C.byteshortintfloatlongdouble D.shortbyteintlongfloatdouble参考答案:B23、在以下供选择的概念中,不属于面向对象语言概念的是 ( ) A.消息
11、 B.模块 C.继承 D.多态性参考答案:B24、在下述 Java 语言语句中,错误的创建数组的方法是 ( ) A.int intArray ; intArray=new int5; B.int intArray =new int5; C.int intArray =1,2,3,4,5; D.int intArray 5=1,2,3,45;参考答案:D25、在 Swing 中,它的子类能用来创建框架窗口的类是 ( ) A.JWindow B.JFrame C.JDialog D.JApplet参考答案:B26、MouseListener 接口不能处理的鼠标事件是 ( ) A.按下鼠标左键 B.
12、点击鼠标右键 C.鼠标进入 D.鼠标移动参考答案:D27、以下不属于文字字型要素的是 ( ) A.颜色 B.字体 C.风格 D.字号参考答案:A28、在以下四个供选的整数中,能作为线程最高优先级的整数是 ( ) A.0 B.1 C.10 D.11参考答案:C29、Java 语言可以用 javax.swing 包中的类 JFileChooser 来实现打开和保存文件对话框。用户通过文件对话框不可能获得的信息是 ( ) A.文件名称 B.文件路径 C.文件内容 D.文件对象参考答案:C30、在编写访问数据库的 Java 程序时,Connection 对象的作用是 ( ) A.用来表示与数据库的连接
13、 B.存储查询结果 C.在指定的连接中处理 SQL 语句 D.建立新数据库连接参考答案:A第二大题:填空题1、Java 语言采用多种机制来保证可移植性,其中最主要的是_。参考答案:虚拟机(或者字节码)2、构造一个 Java 表达式:yx5,并且 x!=0。这个表达式是_。参考答案:y/x5 JScrollPane jsp=new JScrollPane(text);myFrame.getContentPane().add(jsp);4、要用 Graphics2D 类的方法画一个图形,首先要把参数对象 g 强制转换成 Graphics2D 对象;然后,用图形类提供的静态方法 Double()创建
14、一个图形对象;最后,以图形对象为参数调用Graphics2D 对象的 draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。参考答案:Graphics2D g2d=( Graphics2D) g;Line2D line=new Line2D.Double(10,20,30,40);G2d.draw(line)5、请写出字符流数据与字节流数据的区别。参考答案: 字节流用于读写二进制数据,字节流数据是位的,由 InputStream 类和OutputStream 类为字节流提供 API 和部分实现,由 FileIn
15、putStream 类和 FileOutputStream类提供支持。 字符流数据是 16 位的 Unicode 字符,由 Reader 类和 Writer 类为字符流程提供 API 和部分实现,由 FileReader 类和 FileWriter 类提供支持。 (P.175)6、请写出 URLConnection 类在编写 Java 网络应用程序中的作用。参考答案:URLConnection 类完成流对象和实现网络连接7、请写出实现计算 y=|x|的 if 语句。参考答案: if(x=0)y=x;else y=-x;8、以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。cl
16、ass Test22 /1float u;static float v; /2static void setUV(boolean f) /3u=fac1(f); /4v=fac2(!f); /5static float facl(boolean f)return f?u:v; /6float fac2(boolean f)return f?v:u; /7 /8参考答案:4,5,6 行错误9、在 java.awt.event 中,用来检测并对事件做出反应的模型涉及三种对象。请写出这三种对象。参考答案:源对象、监视器对象、事件对象10、写出设置 Font 对象 fn 的 Java 语句,要求 Co
17、urier 字体,BOLD 风格,18 磅字号,设调用对象的类型为 Graphics 的 g。参考答案:Font fn=new Font(“Courier“,Font.BOLD,18);g.setFont(fn);11、通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。参考答案:FileInputStream(String name)FileInputStream(File filename)FileOutputStream(String name)FileOutputStream(File filename)12、当 Client 程序和 Server 程序需要
18、通信时,可以用 Socket 类建立套接字连接,请写出双方实现通信的两种方式。参考答案:流式 socket 和数据报式 socket。13、请写出一段 if 语句,判断一个整数 n 是否为偶数。如果是偶数,输出“Yes.”;否则,输出“No”。参考答案:If(n%2=0)System.out.println(“Yes”);elsSystem.out.println(“No”);14、请写出接口定义的一般形式。参考答案:答:接口定义包括接口声明和接口体两部分。一般形式如下:public interface 接口名 extends 超接口表接口体 15、请写出 Java 语言编写事件处理程序的两种
19、主要方案。参考答案:Java 语言编写事件处理程序主要有两种方案:一个是程序重设方法handleEvent(Eventevt),采用这个方案的程序工作量稍大一些。另一个方案是程序实现一些系统设定的接口。 16、设已经有 Graphics2D 对象 g2d, 请用 Java 语句绘制一个矩形 rect,其左上角坐标是(20,30),宽是 120,高是 30。参考答案:Rectangle2D rect=new Rectangle2D.Double(20,30,120,30) G2d.draw(rect);17、打开文件对话框时,还可以设置筛选条件,即指定文件的类型。请写出 FileFilter 类
20、预设的两个方法。参考答案:accept() getDescription()18、请写出 URLConnection 类提供的三个常用方法。参考答案:getOutputStream()getInputStream()connect()第四大题:程序设计题1、阅读下列程序,请写出调用 pascal(4)的输出结果。static void pascal(int n) int pas;pas = new intn;pas0 = 1;System.out.println(pas0);for (int i = 2; i 0; j-)pasj = pasj + pasj - 1 ;for (int j =
21、 0; j 0; n-) System.out.println(n); Thread.sleep(1000); catch (InterruptedException e) System.out.println(“Main thread interrupted“);参考答案:urrent thread(1 分)After name change(1 分)321(2 分)7、阅读下列程序,请写出该程序的输出结果。class Parentprivate void method 1 () System.out.println(Parents method 1();public void method
22、 2 () System.out.println(Parents method 2();method 1();class Child extends Parent public void method l () System.out.println(Childs method 1 ();public static void main(String args) Parent p = new Child();p.method2();参考答案:Parents method 2()Parents method 1()8、阅读下列程序,请写出该程序的功能。import java.util.*;impor
23、t javax.swing.*;public class Test33public static void main(String args)String str=(String)JOptionPaneshowInputDialog(null,请输入信息,输入对话框,JOptionPanePLAIN_MESSAGE,null,null,null);StringTokenizer pas=new StringTokenizer(str, ,);int n=pas.countTokens();System.out.println(输入的信息有单词:+n+个,全部单词如下:);while(pasha
24、sMoreTokens()String s=pas.nextToken();System.out.println(s);)参考答案:在输入对话框中输入文字,并以多好作为分割符输出单词个数,及各个单词9、阅读下列程序,请写出该程序的功能。import java.applet.*:import java.awt.event.*;import javax.swing.*public class Class 1 extends Applet implements KeyListenerJButton button=new JButton(开始);JTextArea text=new JTextArea
25、(5,20);public void init() button.addKeyListener(this); add(button);add(text);public void keyPressed(KeyEvent e)int t=e.getKeyCode();if(t=KeyEvent.VK_Aint l2=anArray0.length;double temp;if(l1amaxIndex)(1 分)maxIndex=i;(1 分)return maxIndex;(1 分)4、请编写方法 void strReverse(String str),该方法的功能是输出一个新字符串,新字符串字符
26、排列顺序与原字符串 str 的字符排列顺序相反。例如,strReverse(ABCD) 所输出的结果是DCBA。请使用字符串与字节数组的相互转换方法进行设计。参考答案:public static void strReverse(String str)byte s=str.getBytes();String t=“;for(int i=s.length-1;i=0;i-)t+=(char)si;System.out.println(t);5、请设计实现如下用于输入学号和姓名的对话框界面,其中空白格是文本框,用于输入相应的内容。这里给出的是程序的一部分,你要编写的是类 InputNoNameDia
27、log 的构造方法InputNoNameDialog(JFrame f,String s,JTextField t)。其中参数 f 是对话框的依赖窗口,s 是对话框标题,t 是依赖窗口中显示对话框输入内容的文本框。以下是类 InputNoNameDialog 的程序框架。class InputNoNameDialog extends JDialog implements ActionListenerJLabel title;JTextField textl,text2,mainText;JButton done;InputNoNameDialog(JFrame f String s,JText
28、Field t) super(f,s,true); mainText = t;Container con = getContentPane();title=new JLabel(s); textl=new JTextField(10);text2=new JTextField(10); con.setLayout(new GridLayout(3,2);con.setSize(200,100); setModal(false);/请在以下位置续写其余代码public void actionPerformed(ActionEvent e) /输入结束按确定按钮后,将对话框中输入的学号和姓名在它依
29、赖窗口的文本框中显示。mainText.setText(学号:+textl.getText()+ 姓名:+text2.getText();setVisible(false);dispose();参考答案:done=new JButton(“确定“);done.addActionListener(this);con.add(title);con.add(done);con.add(new JLabel(“学号“);con.add(textl);con.add(new JLabel(“姓名“);con.add(text2);setVisible(true); 6、以下程序的界面有一个按钮 butt
30、on、一个文本区 textA 和一个文本框 textF。程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。以下是要求你编写的actionPerformed(ActionEvent e)方法的部分代码。public void actionPerformed(ActionEvent e) if (e.getSource() = button) String s = textA.getText(); double sum =0;StringTokenizer fenxi = new StringTokenizer(s, “ ,n“);/请在以下位置编写代码参考答案:int n=fenxi.countTokens();(1 分)int i=0;(1 分)while(fenxi.hasMoreTokens()(1 分)String s1=fenxi.nextToken();(1 分)sum=sum+Double.valueOf(s1).doubleValue();(1 分)textF.setText(“+sum);(1 分)