......
[解析]本题考核知识点是绘图模式。
当绘图模式设置为异或模式时,用背景色绘图出现的是异或的颜色,重画一个图形将清除图形。
试题内容:某个绘图方法设置成\异或模式\绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为
红色,并用红色绘制线段,则线段的实际颜色是_____。 8:参考答案:(P161)run()
[解析]本题考核知识点是多线程。
Java程序实现多线程应用有两种途径:一是继承Thread类声明Thread子类,用Thread子类创建线程对象。二
是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。无论用哪种方法,都需要Java基础类库中的Thread类及其方法的支持。程序员能控制的关键性工作只有两个方面,一是编写线程的run()方法;二是建立线程实例。
试题内容:程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程
的_____方法;二是建立线程实例。 9:参考答案:(P179)FileWriter
[解析]本题考核知识点是缓冲式输出。
实现缓冲式输出,需要将FileWriter对象接到BufferedWriter对象上,对BufferedWriter对象使用write()方法就
能实现缓冲式输出。
试题内容:BufferedWriter类是提供缓冲式输出的类。程序需要先创建_____对象,再利用这个对象创建BufferedWriter对象。 10:参考答案:(P193)Socket
[解析]本题考核知识点是Java网络编程。
Java语言在实现C/S模式中,套接字分为两类,在Server端使用ServerSocker类,在Client端使用Socket类。
试题内容:在Java语言中,客户端使用的套接字类是_____。 三、简答题 (本大题共6小题,每小题3分,共18分)
1:参考答案:(P15)(x=2)!=(y=3)或(x=2&&y!=3)||(x!=2&&y!=3)我的答案: 2:参考答案:(P57)Student s1=new Person(); Undergraduate ug1=new Person(); Undergraduate ug2=new Student();
[解析]本题考核知识点是类之间的is-a关系。在两个相关的类之间,可能会有is-a和has-a关系。若类A是
继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。也就是子类对象可以是超类类型。语句B b=new A()是正确的,A a=new B()是错误的。
......
3:参考答案:(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是public void actionPerformed(ActionEvent e)。
[解析]本题考核知识点是文本框输入结束动作事件(回车)。
文本框输入结束动作事件相应的监视器接口为ActionListener,要实现的接口方法是actionPerformed(),添加监
视器的方法是addActoinListener()。
4:参考答案:(P140)g.drawLine(20,30,120,30);或g.drawLine(120,30,20,30); [解析]本题考核知识点是画线段。
方法中有四个参数分别表示线段的两个端点坐标,当两个端点坐标相同时,将画出一个点,而不再是线段。 5:参考答案:(P175)import java.io.*;
[解析]本题考核知识点是文件输入输出流。
实现输入输出操作的类库在java.io包中。包中有一组支持打开流、向流写数据、从流读取数据和关闭流等操作
的类,要使用这些类,程序必须导入java.io包。
6:参考答案:(P199)与某个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。 [解析]本题考核知识点是java数据库编程基础。
Java数据库连接JDBC由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接的API。它可以做三件事情。 四、程序填空题
(本大题共5小题,每空2分,共20分) 1:参考答案:n return c
[解析]本题考核知识点是%运算符和return语句。
方法中d为循环分离出整数n的每一位数字(每次取n的个位数字,n也在变化:n/=10),在找出最大的数字
后存入了变量c中,因方法有返回值类型为int,所以必须有return语句,要返回最大数字。, 2:参考答案:getText()
sum+=a[i]或sum=sum+a[i]
[解析]本题考核知识点是图形界面设计中按钮事件方法的编写。
获取文本框中的内容使用的方法是getText(),方法名首字母均小写,后面单词首字母大写。获取整数序列后,
使用单词分析器分解出每个整数(有类型转换过程)存入数组a中,然后对所有整数进行求和。, 3:参考答案:JMenuItem getActionCommand
[解析]本题考核知识点是菜单。
......
生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生
成菜单用类JMenu的构造方法JMenu()或JMenu(String
s);生成菜单项用类JMenuItem的构造方法JMenuItem()或JMenuItem(String s)。在菜单事件中获得事件源的
方法是getSource(),获得事件源文字信息的方法是getActionCommand()。 4:参考答案:Graphics
repaint()或update()
[解析]本题考核知识点是小应用程序中paint()和repaint()方法的使用。
paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,
使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。
5:参考答案:synchronized notify()
[解析]本题考核知识点是线程的互斥和同步。
在Java语言中,使用关键字synchronized定义临界段,能对共享对象的操作上锁,使得某一时刻只允许一个线
程使用这个共享对象。但是为了同步,可在临界段中使用wait()、notify()和notifyAll()方法。wait()让线程一直等待,notify()方法通知第一个处于等待的线程结束等待。notifyAll()方法使所有处于等待的线程都结束等待,重新竞争CPU。
五、程序分析题 (本大题共5小题,每小题4分,共20分) 1:参考答案:yuan Circle 62.8(2分) yuan Area 314.0(2分)我的答案:
2:参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母
‘C’之前的部分字符串,并输出。(2分) 3:参考答案:
在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。(2分) 4:参考答案:
滑动滚动条的滑块,在文本框显示块位置对应的数值。
5:参考答案:随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。 [解析]本题考核知识点是图形绘制和线程综合应用。
在run()方法中随机产生一个坐标点,以此为左上角坐标,红色填充一个小圆形区域,500毫秒后,用背景色填
充同一个小圆形区域,使红色小圆形区域消失,马上又随机产生一个坐标点,再红色填充,再消失,循环不止。我的答案:
......
六、程序设计题 (本大题共2小题,每小题6分,共12分) 1:参考答案:int [] halfArray(int [] a){(1分) int [] b=new int[a.length];(2分) for(int k=0;k<a.length;k++){(2分) b[k]=a[k]/2; }
return b;(1分) }
[解析]本题考核知识点是面向对象程序设计中的方法设计。
编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int
[]);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组
元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为float[]halfArray(int [])而不应该是int [] halfAray(int
[]),方法体中的一半也应该是除以2.0。并转换成float类型,方法体定义的数组b也应该是float类型。或
者返回值类型和数组b的类型都定义成double类型。
2:参考答案:long n1,n2;(1分)
if(e.getSource()=(panel.addButton)){(3分) n1=Long.parseLong(panel.text1.getText()); n2=Long.parseLong(Panel.text2.getText()); panel.text3.setText(String.valueOf(n1+n2)); }
else if(e.getSource()=(panel.subButton)){(2分) n1=Long.parseLong(panel.text1.getText()); n2=Long.parseLong(panel.text2.getText()); panel.text3.setText(String.valueOf(n1-n2)); }
注:将panel.text1写成text1,panel.text2写成text2整体扣1分。
[解析]本题考核知识点是图形界面设计、JPanel、JTextField、JButton及其事件的处理。
在方法体中的代码类似于34小题。容器的嵌套不要忽略了。
......
全国2009年1月Java语言程序设计(一)试题
课程代码:04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列字符组合不能作为Java整型常量的是( ) A.078
B.0x3ACB
C.5000 D.0x3ABC
2.以下程序代码的输出结果是( ) int x = 10; while (x > 7){
System.out.print(\ x--; } A.**
B.***
C.* D.****
3.设类U声明,及对象u和v的定义如下: class U{ int x, int y;
U(int a, int b){x= a; y = b;} void copy(U a){ x = a.x; y = a.y;} }
U u = new U(1, 2), v = new U(2, 3);
在以下供选择的代码中,可能引起系统回收内存的是( A.u.x=v.y;u.y=v.x; B.u=v; C.u.copy(v); D.v.copy(u); 4.设有以下代码: String s l=\; String s2=\;
String s3=new String(\;
)