视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
全国2009年10月自学考试Java语言程序设计(一)试题及参
2025-09-27 23:43:46 责编:小OO
文档
全国2009年10月自学考试Java语言程序设计(一)试题及参

一、单项选择题(本大题共10小题,每小题1分,共10分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.下面供选字符序列中,不属于Java语言关键字的是(      )

A.goto    B.null

C.false     D.native

2.以下程序代码的输出结果是(      )

int x=73;System.out.println(x>>1);

A.36    B.36.5

C.37    D.true

3.Java语言中,在类定义时用final关键字修饰,是指这个类(      )

A.不能被继承    B.在子类的方法中不能被调用

C.能被别的程序自由调用    D.不能被子类的方法覆盖

4.以下是关于字符串运算的代码,执行该代码段的输出结果是(      )

String  s=″01234567″,sl,s2;

sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);

A.0122345    B.2345672345

C.012234     D.234567234

5.以下是关于FlowLayout布局组件排列顺序的叙述,正确的是(      )

A.从上到下排列    B.从左到右排列

C.从下到上排列    D.从右到左排列

6.程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是JFileChooser.APPROVE_OPTION,则用户执行的动作是(      )

A.对话框非正常关闭    B.按下“打开/保存”按钮

C.按下“撤销”按钮    D.重新输入了一个文件名

7.设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是(      )

A.g2d.draw(r)    B.g2d.drawRect(r)

C.r.draw()     D.r.drawRect()

8.在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是(      )

A.start()    B.init()

C.resume()    D.run()

9.在以下供选择的方法中,不能用于文件随机访问的方法是(      )

A.readChar()    B.readLong()

C.readInteger()    D.writeChars()

10.某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是(      )

A.connection()    B.URLConnection()

C.getConnection()    D.openConnection()

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

11.一个应用程序必须在某个类中定义的方法是______。

12.import语句的格式是______。

13.在面向对象语言中,对象之间的交互通过______实现。

14.设有两个字符串对象str1和str2,则表达式“strl==str2”的意义是判别字符串strl和str2______。

15.一个基于Swing的应用程序可能在任何平台上都会有相同的______。

16.处理键盘事件的Java程序,要实现的接口是______。

17.Java语言约定,坐标原点位于绘图区域的______。

18.Java程序中,在临界段中使用______方法,使执行该方法的线程等待。

19.BufferedWriter类对象能按行输入文件的内容,按行输入的方法是______。

20.在java.net包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是______。

三、简答题(本大题共6小题,每小题3分,共1 8分)

21.请写出实现计算y=|x|的if语句。

22.以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。

class Test22{    //1

float u;static float v;    //2

static void setUV(boolean f){            //3

u=fac1(f);            //4

v=fac2(!f);}            //5

static float facl(boolean f){return f?u:v;}          //6

float fac2(boolean f){return f?v:u;}                 //7

}         //8

23.在java.awt.event中,用来检测并对事件做出反应的模型涉及三种对象。请写出这三种对象。

24.写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。

25.通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。

26.当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。

四、程序填空题(本大题共5小题,每空2分,共20分)

27.方法int sigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。

static int sigmaEvenNum(int []a){

int s =0;

for ( int i=0;______;i++ ) {

if(______) s++;

}

return s;

}

28.某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。以下是其中相应“追加”按钮事件的方法。

public void actionPerformed(ActionEvent e){

if(e.______.equals("追加")){

String result=(String)JOptionPane.showInputDialog(null,"请输入信息",

 "输入对话框",JOptionPane.PLAIN_MESSAGE, null, null,null);

dispArea.______(result + " ");

}

}

29.以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。以下是类Panel的定义。

class Panel extends JPanel implements ItemListener{

static JRadioButton box[];

ButtonGroup g;

Panel(String radioNameList[]) {

box=new JRadioButton[radioNameList.length];

setLayout(new GridLayout(1, radioNameList.length));

g=new ButtonGroup();

for(int i=0;ibox[i] = new JRadioButton(______,false);

g.add(box[i]);add(box[i]);box[i].addItemListener(this);

}

}

public void itemStateChanged(ItemEvent e){

for(int i = 0; i < box.length; i++){

if(box[i]._______) {

MyWindow.text.setText(box[i].getLabel()+"被选中!");

}

}

}

}

30.用getImage()方法和drawImage()方法能加载和显示图像。以下程序加载的是seattle.jpg文件,并假定该文件与包含这个小应用程序的HTML文件在同一个目录下。

import java.awt.*; import java.applet.*;

public class SimpleImageLoad extends Applet{

Image img;

public void init() {

}

public void paint(Graphics g) {

g.drawImage(img, 0, 0, ______);

}

}

31.以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;另外,线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。

class ShareDataManager {

int data;

ShareDataManager(int init){data = init; }

public int getData(){ return data;}

private void putData(int newValue){ data = newValue;}

synchronized void modiData(int delta){

if (delta >= 0) {putData(getData()+ delta);

} else  {

while (______<0) {

try {wait(); } catch (InterruptedException e) { }

}

putData(getData()+ delta);

}

______;

}

}

五、程序分析题(本大题共5小题,每小题4分,共20分)

32.阅读下列程序,请写出该程序的输出结果。

class Tree {

private String name;public boolean flower;

public int birthYear;

Tree(String n, boolean f, int y){ name = n; flower = f; birthYear = y; }

public void setName(String n){name = n;}

public String getName(){return name; }

public void printTree(String str){

System.out.println(str);  System.out.println("Name:"+name);

System.out.println("Birth Year:"+birthYear);

System.out.println("Flower:"+flower);

}

}

class PineTree extends Tree {

public boolean coniferous = true;

PineTree(String n, boolean f, int y, boolean c){super(n, f, y);coniferous = c; }

public void printTree(String str){

super, printTree(str);

System.out.println("Coniferous:" + coniferous);

}

}

class Test32 {

public static void main(String []args){

Tree fOb = new Tree("May Flower", true, 1980);

PineTree sOb = new PineTree("Pine", false, 2000, true);

fOb.printTree(" fOb:"); sOb.printTree("sOb:");

}

}

33.阅读下列程序,请写出该程序的输出结果。

class Test33 {

static void  s (int b[ ], int k) {

int i, j, t;

for(i = 1;i< k; i++) {

for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--)

b[j+l] = b[j];

b[j+ 1 ] = t;

}

}

public static void main(String []args){

int i, a[] = {6, 12, 7, 11, 5 };

s(a, 5);

for(i = 0;i< a.length; i++) System.out.print(a[i]+" ");

System. out. Println();

}

}

34.阅读下列程序,请写出该程序的功能。

import java.applet.*; import javax.swing.*;

import java.awt.*;  import java.awt.event.*;

public class Test34 extends Applet implements ActionListener {

JTextField text;int r; JPanel panel;

public void paint(Graphics g){

Graphics gc = panel.getGraphics();

gc.clearRect(0,0, panel.getWidth(), panel.getHeight());

gc.setColor(Color.red); gc.fillOval(10, 10, r, r);

}

public void init() {

text = new JTextField(10);  panel = new JPanel();

setSize(200, 100);  setLayout(new GridLayout(2,1));

add(text); add(panel);  text.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == text) {

r = Integer.parseInt(text.getText());

repaint();

}

}

}

35.阅读下列程序,请回答以下问题:

(1)该程序的菜单条有几个菜单项?

(2)单击哪个菜单项,可以打开一个对话框?

(3)该对话框是强制型还是非强制型?

(4)该对话框中显示的是什么内容?

Import javax.swing.*;import java.awt.*;

import java.awt.event.*; import java.util.*;

class MyDialog extends JDialog {

MyDialog(JFrame F, String s) {

super(F, s, false);  Date date = new Date();

String t = date.toString();  JLabel text = new JLabel(t);

add(text);  setSize(200,100);  setVisible(true);

}

}

public class MenuDemo extends JFrame implements ActionListener {

JMenuBar menubar;  JMenu action;

JMenuItem show, set, quit;

public MenuDemo() {

menubar = new JMenuBar();      setJMenuBar(menubar);

action = new JMenu(''操作'');    menubar.add(action);

show= new JMenuItem(''显示''),   action.add(show);

set = new JMenuItem("设置");    action.add(set);

action.addSeparator();           quit = new JMenuItem("退出");

action.add(quit);               show.addActionListener(this);

set.addActionListener(this);      quit.addActionListener(this);

setSize(300,300);              setVisible(true);

}

public void actionPerformed(ActionEvent e) {

if(e.getSource() == show) {MyDialog diag = new MyDialog(this, "信息");}

else if(e.getSource()== set) { this.setTitle("菜单演示");}

else if(e.getSource() == quit){   System.exit(0);   }

}

public static void main(String[] args) {new MenuDemo();}

}

36.阅读以下程序,请写出该程序的输出结果。

class CurrentThreadDemo {

public static void main(String args[]) {

Thread t = new Thread();  System.out.println("Current thread");

t.setName("My Thread");  System.out.println("After name change");

try {for(int n = 3; n > 0; n--) {

System.out.println(n);  Thread.sleep(1000);

}

} catch (InterruptedException e) {

System.out.println("Main thread interrupted");

}

}

}

六、程序设计题(本大题共2小题,每小题6分,共12分)

37.编写方法int searchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。

38.以下程序的界面有一个按钮button、一个文本区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");

//请在以下位置编写代码

一、单项选择题(本大题共10小题,每小题1分,共10分)

1、C    2、A    3、A    4、D    5、B    

6、B    7、A    8、C    9、C    10、D

二、填空题(本大题共10小题,每小题2分,共20分)

11、main( ) 

12、import包名.类名;

13、相互发送消息

14、是否引用同一个对象

15、外观与风格

16、KeyListener 

17、左上角

18、wait( )

19、readLine( )

20、IP地址和域名

三、简答题(本大题共6小题,每小题3分,共18分)

21、if(x>=0)y=x;

     else y=-x;

22、4,5,6行错误

23、源对象、监视器对象、事件对象

24、Font fn=new Font("Courier",Font.BOLD,18);

g.setFont(fn);

25、FileInputStream(String name)

     FileInputStream(File filename)

     FileOutputStream(String name)

     FileOutputStream(File filename)

26、流式socket和数据报式socket。

四、程序填空题(本大题共5小题,每空2分,共20分)

27、i a[i]%2==0

28、

getActionCommand()

     append

29、

    radioNameList[i]

        isSelected()

30、

    getDocumentBase()

        this

31、

getData()+delta

    notify()

五、程序分析题(本大题共5小题,每小题4分,共20分)

32、

fOb:

 Name:May Flower

 Birth Year:1980

 Flower:true(2分)

 sOb:

 Name:Pine

 Birth Year:2000

 Flower:false

 Coniferous:true(2分)

33、

5671112(4分)

34、

以文本框输入的数字为半径,(1分)以(10,10)为左上角,(1分)填充一个红色(1分)的圆。(1分)

35、

(1)3个菜单项(1分)

 (2)“显示”菜单项(1分)

 (3)非强制型对话框(1分)

 (4)显示当前事件(1分)

36、

urrent thread(1分)

 After name change(1分)

 3

 2

 1(2分)

六、程序设计题(本大题共2小题,每小题6分,共12分)

37、

    int searchMaxNumIndex(int[]a){

 int i,maxIndex;(1分)

for(i=maxIndex=0;i if(a[i]>a[maxIndex])(1分)

 maxIndex=i;(1分)

 }

 return maxIndex;(1分)

 }

38、

    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分)下载本文

显示全文
专题