全国2011年10月高等教育自学考试
Java语言程序设计(一)试题
课程代码:04747
一、单项选择题(本大题共10小题,每小题1分,共1O分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未 选均无分。
1.下面供选字符序列中,不属于Java语言关键字的是 ( )
A. throw B. synchronized
C. protect D. try
2.以下程序代码的输出的结果是 ( )
double x = 25.6;
System.out.println((int)x << 1);
A. 48 B. 50
C. 51 D. 52
3.在以下供选择的概念中,不属于面向对象语言概念的是 ( )
A.类 B.函数
C.动态联编 D.抽象
4.在Java语言中,能够实现字符串连接的方法是 ( )
A. String substring(int startpoint) B. String concat(String s)
C. String replace(char old,char new) D. String trim()
5.在以下供选择的容器类中,属于顶层容器的是 ( )
A.JDialog B.JPanel
C.JScrollPane D.JToolBar
6.在以下选项中,属于MouseListener接口的方法是 ( )
A.mouseDoubleClicked(MouseEvent) B.mouseDragged(MouseEvent)
C.mouseMoved(MouseEvent) D.mousePressed(MouseEvent)
7.设已经有Graphics2D对象g2d,Line2D对象line,绘制对象line的代码是( )
A.g2d.draw(1ine) B.g2d.drawLine(1ine)
C.1ine.draw() D.1ine.drawLine()
8.设Thread对象thd的优先级为7,thd又创建了另一个Thread对象chd,如果未对chd 的优先级进行修改,则chd的优先级为 ( )
A.1 B. 5
C.7 D. 10
9.在以下供选择的操作中, File对象能够提供的操作是 ( )
A.删除文件 B.读写文件
C.打开文件 D.查询文件属性
10.在编写访问数据库的Java程序时,Statement对象的作用是 ( )
A.建立新数据库连接 B.设置查询命令
C.创建SQL语句对象 D.存储查询结果
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
11.Java语言是一种 _______ 语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误。
12.在Java语言中, _______ 语句用于表示出现在该文件中的所有类都属于这个程序包。13.在Java程序系统中,对象之间的交互通过相互发送 _______ 实现。
14.数组每个元素按存储顺序对应一个下标,下标从 _______ 开始顺序编号。
15.用Swing编写GUI程序时,通常用 _______ 类派生的子类创建窗口对象。
16.强制型对话框强制对话过程 _______ ,直至对话过程结束,才让程序响应对话框以外的事件。
17.在Graphics类中,用于在指定的位置显示字符串的方法是 _______ 。
18.在Java中,线程的调度策略采用_______,优先级高的线程比优先级低的优先执行。19.字符流数据中使用的Unicode字符有_______位二进制位。
20.Java.net包中有 _______ 类,它的对象用于存储IP地址和域名。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请使用for循环语句实现计算
的值。
22.请写出Java语言中编写事件处理程序的两种方案。
23.请写出代码段,用来创建一个标签对象lbl,显示文字为“Java”,背景色设为绿色。
24.请写出JComboBox对象上可能发生的两种事件类型的名字。
25.请写出线程从阻塞状态恢复到就绪状态的三种途径。
26.请写出URIConnection类提供的获得输入输出流对象的方法和实现网络连接的方法。四、程序填空题(本大题共5小题,每空2分,共20分)
27. 方法 void moveOddForward(int a[])的功能是将数组中的所有奇数移到所有偶数之前。
void moveOddForward(int a[]){
for(int i=0,odd=0;________;i++)
if(________){
int t=a[i];a[i]=a[odd];a[odd]=t;odd++;
}
}
28.以下程序片段定义由JFrame类派生的子类MyWindowDemo。类MyWindowDemo 的构造方法有五个参数:窗口的标题名,加入窗口的按钮,按钮的背景颜色,以及窗口的宽和高。
class MyWindowDemo extends JFrame {
public MyWindowDemo(String name, JButton button, Color c, int w, int h){
setTitle(name); setSize(w, h);
Container contentPane =_______;
contentPane. _______;
button.setBackground(c);
}
}
29.小应用程序有一个按钮和一个文本区,按钮作为发生键盘事件的事件源,并对键盘
事件实施监视。程序运行时,先点击按钮,让按钮激活。以后输入英文字母时,在
文本区显示输入的字母。
import java.applet.*;import javax.swing.*;
import java.awt.event.*;
public class Test29 extends Applet implements _______{
JButton button = new JButton();
JTextArea text = new JTextArea(5, 20);
public void init(){
button.addKeyListener(this); add(button); add(text);
}
public void keyPressed(KeyEvent e){
int t = e. _______ ;
if(t>= KeyEvent.VK_A &&t<= KeyEvent.VK_Z){
text.append((char)t+" ");
}
}
public void keyTyped(KeyEvent e){ }
public void keyReleased(KeyEvent e){ }
}
30.以下程序的界面有一个文本区text,一个按钮button。程序运行时,单击按钮,则
将文本区中的内容输出到out,其中out为BufferWriter类的一个对象。
public void actionPerformed(ActionEvent e){
String s;
if(e._______== button){
try {
out. _______(text.getText(),0,(text.getText()).length());
out. flush();
text.setText(null);
System.exit(0);
} catch(IOException exp)
{text.setText("文件定出错! \n"); System.exit(-1);}
}
}
31.数据库连接方法connectByJdbcOdbc()按给定的数据库URL、用户名和密码连接数
据库,如果连接成功,方法返回连接对象,连接不成功,则返回空。
public static Connection connectByJdbcOdbc(String url, String usemame, String password){
Connection con = null;
try {Class. _______("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception e) {
e.printStackTrace();
return null;
}
try {
con =_______.getConnection(url, usemame, password);
catch (SQLException e) {
e.printStackTrace();
return null;
}
return con;
}
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
class Test32a {
String name; int age; long number;
Test32a(long number, String name,int age) {
System.out.println("Name: "+name);
System. out. println("Age: "+age);
System.out.println("Tel: " +number);
}
}
class Test32b extends Test32a {
Test32b(long number, String name,int age,boolean b) {
super(number, name,age); System.out.println("Married: "+b);
}
}
public class Test32 {
public static void main(String args[]) {
Test32b abe=new Test32b(4747,"Tony",29,true);
}
}
33.阅读下列程序,请写出该程序的输出结果。
class Test33 {
String myString = "1";
public static void main(String args[]){
Test33 myObj = new Test33();
myObj.stringModifier(myObj.myString);
System.out.println(" "+ myObj.myString);
}
void stringModifier(String theString){
theString = theString + "2"; System.out.print(theString);
}
}
34.阅读下列程序,请写出该程序的功能。
import java.awt.*; import java.awt.event.*; import java.applet.*;
public class Test34 extends Applet implements ActionListener {
String msg = ""; Button bList[] = new Button[3];
public void init() {
Button yes = new Button("Yes"); Button no = new Button("No");
Button maybe = new Button("Undecided");
bList[0] = (Button) add(yes); bList[ 1 ] = (Button) add(no);
bList[2] = (Button) add(maybe);
for(inti= 0;i < 3; i++) { bList[i].addActionListener(this); }
}
public void actionPerformed(ActionEvent ae) {
for(int i = 0;i < 3; i++) {
if(ae.getSource() == bList[i]) {
msg = "You pressed "+ bList[i].getLabel();
}
}
repaint();
}
public void paint(Graphics g) { g.drawString(msg, 6, 100); }
}
35.阅读下列程序,请写出该程序的功能。
import java.awt.event.*; import javax.swing.*; import java.awt.*;
public class MenuWindow extends JFrame implements ActionListener {
JTextField text = new JTextField();
JMenuBar menuBar; JMenu menuFruits;
JMenultem menultem1,menultem2,menultem3;
public MenuWindow() {
menuBar = new JMenuBar(); setJMenuBar(menuBar);
menuFruits = new JMenu("水果"); menuBar.add(menuFruits);
menultem 1 = new JMenultem("苹果"); menultem1 .addActionListener(this);
menuFruits.add(menultem1 );
menultem2 = new JMenultem("桔子"); menultem2.addActionListener(this);
menuFruits.add(menultem2); menuFruits.addSeparator();
menultem3 = new JMenultem("退出"); menultem3.addActionListener(this);
menuFruits.add(menultem3);
Container con = getContentPane();
con.add(text); setSize(200,150); setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "退出") System.exit(0);
else text.setText(e.getActionCommand());
}
public static void main(String args[]) {
MenuWindow mw = new MenuWindow();
}
}
36.阅读下列程序,请写出该程序的输出结果。
class MyThread extends Thread {
String message; int s;
MyThread(String message, int sec) { this.message = message; s = sec; }
public void run( ) {
try{ sleep(s); }catch(InterruptedException e){}
System.out.println(message+" "+getPriority( ));
}
}
class ThreadTest {
public static void main(String args[]){
Thread foo = new MyThread("Foo", 1000);
foo.setPriority(Thread.MIN_PRIORITY); foo.start( );
Thread bar = new MyThread("Bar",800);
bar.setPriority(3); bar.start( );
Thread gar = new MyThread("Gar",400);
gar.setPriority(7); gar.start( );
Thread kar = new MyThread("Kar", 100);
kar.setPriority(Thread. MAX_PRIORITY); kar.start( );
}
)
注:假设处理机中没有其它线程占用资源。
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.请编写一个方法int findMaximum(int[][]numbers),要求该方法返回二维数组中元素的最大值。
38.小应用程序的paint(Gmphics g)方法能在屏幕窗口上显示信息和绘图,如果paint()方法能调用repaint()方法,这就能使显示实现动态效果,repaint()方法的功能是先清除paint()方法以前所画的内容,然后再调用paint()方法。
以下要你编写的paint()方法取随机的坐标位置画一个边长为20个像素的红色正方形。其中随机的坐标位置可以用以下表达式表示:
(int)(Math.random()*100)+10
另要求paint()方法在绘制正方形后暂停100毫秒。
import java.applet.*;import java.awt.*;
public class Class 1 extends Applet{
public void paint(Graphicsg){
∥请在以下位置编写代码
}
}
本自学考试真题下载: