当前位置:文档之家› Java程序设计实用教程习题答案

Java程序设计实用教程习题答案

Java程序设计实用教程习题答案
Java程序设计实用教程习题答案

《Java程序设计精典教程》习题答案

编著:胡伏湘,雷军环

清华大学出版社

第5章习题解答

一、简答题

1.什么是AWT?AWT的基本思想是什么?

答:AWT(抽象窗口工具包)是一组应用程序接口(API),其中包括各种Java 程序员用来创建图形用户界面(GUI)的类,这些类分别对应着Java图形用户界面的构成成份:组件和容器。组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。容器是图形用户界面中容纳其他组件的部分,一个容器中可以容纳一个或多个组件,甚至还可以容纳其他的容器。

AWT的基本思想是将图形用户界面(GUI)看作一系列嵌套的构件,最外层是窗口这样的容器,容器内又可以包含其他的组件和容器。这样由表及里,所有的构件构成了一个嵌套的树,一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。

2.容器主要有哪些作用?Java中有哪些常见的容器。它们之间有什么异同?

答:容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们,同一个容器的所有构件通常总是同时被显示和同时被隐藏的。

Java中常见的容器有Frame(框架)、Panel(面板)和Applet

框架Frame是一个带有边框的独立的窗口,可以移动、放大、缩小、关闭。是独立于Applet和浏览器的一个窗口,是Application程序最外层的容器。面板是包含在窗口中的一个不带边框的区域。不是一个单独的窗口,它只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器,必须将面板添加到窗体中才能正常显示出来。Applet也是无边框的容器,是Applet程序最外层的容器。

3.布局管理器的作用是什么?Java提供了哪几种布局管理器?

答:布局管理器用来控制组件在容器中的摆放位置。

Java提供了5种布局管理器,它们是:顺序布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)

4.设计和实现图形用户界面的主要工作有哪些?

答:设计和实现图形用户界面的工作主要有两个:一是创建组成界面的各种容器和组件,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观;二是定义图形用户界面的事件和各界面元素对不同事件

的响应,从而实现图形用户与用户的交互功能。

5.简述事件对象、事件源、监听者的概念?

答:这三个概念的基本念义如下:

事件对象:通常当用户在用户接口上进行某种操作时,如按下键盘上某个键或移动鼠标,均会引发一个事件。事件对象是用来描述所发生事件相关信息的对象,对应用户操作的不同种类有不同类型的事件类(对象)与之对应。

事件源:是指一个事件的产生者。例如,当在一个按纽(Button)上单击鼠标时就会产生一个ActionEvent的事件对象,事件源就是该按纽。通过ActionEvent对象的有关方法可以获得该事件的有关信息,

事件监听器:用来调用事件处理方法的对象。

6.JDK1.1的事件处理机制是什么?其原理是什么?

答:JDK1.1的事件处理机制采用委托事件模型来处理事件。委托事件模型的原理如下:

?确定事件源。图形界面的每个可能产生事件的组件称为事件源,不同

事件源上发生的事件的种类不同。

?注册事件源。如果希望事件源上发生的事件被程序处理,就要把事件

源注册给能够处理该事件源上那种类型的事件监听者。监听者是属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”。

?委托处理事件。当事件源上发生监听者可以处理的事件时,事件源把

这个事件作为实际参数传递给监听者中负责处理这类事件的方法,该方法根据事件对象中封装的信息来确定如何响应这个事件。

二、编程题

1.编写代码,创建标题为“基本GUI”编程的窗口。

参考代码如下:

import java.awt.*;

class NewFrame extends Frame {

public static void main(String args[]) {

NewFrame mainFrame = new NewFrame();

mainFrame.setTitle("基本GUI编程");

mainFrame.setSize(200, 200);

mainFrame.setVisible(true);

}

}

2.编写代码,创建标题为“使用面板的基本GUI编程”的面板。

参考代码如下:

import java.awt.*;

class NewPanel extends Panel {

public static void main(String args[]) {

NewPanel np=new NewPanel();

Frame f=new Frame("使用面板的基本GUI编程!");

f.add(np);

f.setSize(300,200);

f.setVisible(true);

}

}

3.创建一个窗口,包括一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。请使用两种以上的布局管理器布局窗口的组件。

参考代码如下:

import java.awt.*;

import java.awt.event.*;

public class CopyText extends Frame implements ActionListener{

Panel p;

Label l;

TextField t;

Button b;

public CopyText(){

p=new Panel();

l=new Label(" ");

l.setBackground(Color.BLUE);

t=new TextField(20);

b=new Button("复制文本");

p.add(t);

p.add(l);

add("Center",p);

add("South",b);

b.addActionListener(this); //给按钮注册活动事件监听器

setVisible(true);

this.setTitle("文本复制示例");

setSize(400,200);

pack();

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==b)

{

l.setText(t.getText());

}

}

public static void main(String args[]){

CopyText ct=new CopyText();

}

}

4.编写一个程序,创建一个AWT面板,该面板包含标有三个不同颜色名称的三个按钮,单击每个按钮时应使窗口的背景色显示为相应的颜色。

import java.awt.*;

import java.awt.event.*;

class ChangeBgColor extends Frame implements ActionListener{

Panel p;

Button btn1,btn2,btn3;

ChangeBgColor(){

p=new Panel();

btn1= new Button("红色");

btn2=new Button("蓝色");

btn3=new Button("黄色");

this.add(p);

p.add(btn1);

p.add(btn2);

p.add(btn3);

btn1.addActionListener(this);

btn2.addActionListener(this);

btn3.addActionListener(this);

}

public static void main(String args[]) {

ChangeBgColor mainFrame = new ChangeBgColor();

mainFrame.setTitle("基本GUI编程");

mainFrame.setSize(200, 200);

mainFrame.setVisible(true);

}

public void actionPerformed(ActionEvent e){

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

p.setBackground(Color.red);

}

else if(e.getSource()==btn2){

p.setBackground(Color.blue);

}

else

p.setBackground(Color.yellow);

}

}

第6章习题解答

一、简答题

1.说明文本框和标签之间的区别?

答:文本框定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户的输入,并有事件响应。标签可以显示一行静态的文本,它只起信息说明作用,不接受用户的输入,无事件响应。

2.试列举Java中常用的基本控制组件。如果有二到三种取值可能,采用哪种组件合适?如果取值的可能大于5种,采用哪种组件合适?

答:基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。基本控制组件的作用是完成与用户的一次交互。目前常用的基本控制组件有:标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。

如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下拉列表,否则采用List下拉列表。

3.什么是选择事件?可能产生选择事件的GUI组件有哪些?

答:选择事件是当选择项的选中状态发生变化时所引起的事件。

可能产生选择事件的GUI组件有下拉列表类(Choice)、列表类(List)复选按钮类(CheckBox)、检测盒菜单项(CheckboxMenuItem)

4.设计一个菜单的步骤是什么?

答:设计菜单的步骤是:

?用MenuBar构造函数构造菜单栏对象。

?用Menu构造函数构造菜单对象。

?用MenuItem构造函数构造菜单项对象。

?用Menu类的add方法将菜单项加入菜单中。

?用MenuBar类的add方法将菜单加菜单栏中。

?用Frame类的setMenuBar方法将菜单栏加入窗口中。

5.有模式的对话框最突出的特点是什么?如果一个对话框的目的在于警告或

提醒用户(例如删除数据库记录的确认),这个对话框应该是有模式的还是无模式的?

答:有模式对话框是指打开后必须作出响应的对话框。如果一个对话框的目的在于警告或提醒用户,应该为有模式的对话框。

6.Swing组件与AWT组件的区别是什么?

答:AWT组件是JDK1.0和1.1平台用于开发GUI的工具,尽管Java2平台仍然支持AWT组件,但是,使用Swing组件来开发GUI已经成为一种发展趋势。

为了标识Swing组件,Swing组件的在其名称前冠以J字母,例如,在AWT 中的Button类,在Swing中为JButton。另外,AWT存在于java.awt包中,Swing 组件存在于javax.swing包中。

Swing组件与AWT组件的最大不同是:Swing组件完全由Java语言实现,功能更强大,而AWT而不是。

Swing组件还提供了AWT组件无法实现的功能:

?Swing按钮类和标签类除了显示文本标题,还可以显示图形标题

?Swing容器可以加边框

?Swing组件可以自动适应操作系统的外观,而AWT组件总是保持相

同的外观

?Swing组件可以设计成圆形,而不一定是矩形

?通过Swing组件的方法改变其外观和形为

?不能在Swing的顶层容器(如JApplet、JFrame)直接加入组件,而

要先获得容器,再在容器中加入组件。

二、编程题

1.如图6-17所示。标签1的字号比文本框的字号大,当单击按钮时若输入文框中的数正确,则标签2文本显示正确,否则显示不正确。

图6-17

参考代码如下:

import java.awt.*;

import java.awt.event.*;

public class program1 extends Frame implements ActionListener{

Label lb1=new Label("6+9=");

Label lb2=new Label(" ");

TextField tf=new TextField(3);

Button bt=new Button("OK");

public program1(){

lb1.setFont(new Font("Arial",Font.PLAIN,24));

setLayout(new FlowLayout());

add(lb1);

add(tf);

add(lb2);

add(bt);

bt.addActionListener(this);

setSize(150,200);

setVisible(true);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==bt)

{

String str=tf.getText();

if(str.equals("15"))

lb2.setText("正确");

else

lb2.setText("不正确");

}

}

public static void main(String args[]){

new program1();

}

}

本程序的运行结果如图6-18、6-19所示。

图6-18 图6-19

2.编写代码,创建一个JFrame窗口,为其构建两个单选按钮,程序运行的初始界面如图6-20所示。当用户单击“禁用”按钮时,显示图6-21所示的界面,单击“启用”按钮时,显示图6-22所示的界面。

图6-20 图6-21

图6-22

参考代码如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import https://www.doczj.com/doc/e817594740.html,ng.String;

public class MyRadiobuttons extends JFrame implements ActionListener{ JRadioButton rad1,rad2;

ButtonGroup rbgrp=new ButtonGroup();

public MyRadiobuttons(){

setTitle("单选按钮");

JPanel cpane=(JPanel)getContentPane();

cpane.setLayout(new GridLayout());

rad1=new JRadioButton("启用");

rad1.addActionListener(this);

rad1.setSelected(true);

rad1.setEnabled(false);

rad2=new JRadioButton("禁用");

rad2.addActionListener(this);

rad2.setSelected(false);

cpane.add(rad1);

cpane.add(rad2);

rbgrp.add(rad1);

rbgrp.add(rad2);

radadapter radapp=new radadapter();

addWindowListener(radapp);

}

class radadapter extends WindowAdapter{

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

public void actionPerformed(ActionEvent e){

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

setTitle("启用第一个单选的按钮");

rad1.setEnabled(false);

rad2.setEnabled(true);

}

else if(e.getSource()==rad2){

setTitle("启用第二个单选按钮");

rad1.setEnabled(true);

rad2.setEnabled(false);

}

}

public static void main(String args[]){

MyRadiobuttons radb=new MyRadiobuttons();

radb.setSize(200,100);

radb.setVisible(true);

}

}

3.创建一个菜单程序。添加一个菜单:文件。在“文件”下添加三个菜单选项:“功

能1”、“功能2”和“退出”,“功能2”和“退出”两项之间用分隔线分开。当用户点击菜单项时,在窗口的标题栏显示相应的命令文本,如图6-23所示。(通过查阅JDK 文档,思考如何用Swing创建此菜单程序)

图6-23

参考代码如下:

import java.awt.*;

import java.awt.event.*;

public class MyMenu extends Frame implements ActionListener{

MenuBar mb=new MenuBar();

Menu mu=new Menu("文件");

MenuItem mt1=new MenuItem("功能1");

MenuItem mt2=new MenuItem("功能2");

MenuItem mt3=new MenuItem("退出");

public MyMenu(){

mu.add(mt1);

mu.add(mt2);

mu.addSeparator();

mu.add(mt3);

mb.add(mu);

//将菜单项注册给事件监听者

mt1.addActionListener(this);

mt2.addActionListener(this);

mt3.addActionListener(this);

setMenuBar(mb);

setTitle("创建菜单");

setSize(200,200);

setVisible(true);

}

public void actionPerformed(ActionEvent e){

MenuItem mt=(MenuItem)e.getSource();

setTitle(mt.getActionCommand());

}

public static void main(String args[]){

new MyMenu();

}

}

第8章习题解答

一、简答题

1.什么是异常?异常产生的原因有哪些?

答:异常就是Java程序在运行过程中出现的错误。这类错误使程序非正常终止,但通过修正后还可以继续运行。

异常产生的原因有:

(1)JVM检测到非正常的执行状态,这些状态可能由以下情况引起的:

?表达式违反了Java语言的语义,如除数为0

?装入或链接程序时出错

?超出了资源限制,如内存不足,这种异常是程序员无法预知的

(2)程序代码中的throw语句被执行

(3)因为代码段不同步而产生,可能的原因是:

?Thread(线程)的stop方法被调用

?JVM内部发生错误。

2.为什么Java的异常处理技术优于传统程序的异常处理技术?

答:在没有异常处理机制的程序设计语言中进行异常处理,通常是在程序设计中使用if-else或switch-case语句所能设想的到的错误情况,以捕捉程序中可能发生的错误。在这种处理方式的程序中,对异常的监视、报告和处理的代码与程序中完成正常功能的代码交织在一起,即在完成正常功能的程序的许多地方插入了与处理异常有关的程序块。这种处理方式虽然在异常发生点可以看到程序如何处理异常,但它干扰了人们对程序正常功能的理解,使程序的可读性和可维护性下降,并且由于人的思维限制,常常会遗漏一些意想不到的异常。

Java的异常处理机制是在程序中监视可能发生异常的程序块,将一个程序中的所有异常收集起来放到程序的某一段中处理,而不必在被监视的程序块中多处插入处理异常的代码,使完成功能的程序代码与进行异常处理的程序代码分开,增强了程序的可读性和可靠性,减少了编程人员的工作量,增加了程序的灵活性。此外,这种机制可以及时有效地处理程序运行中的异常,可以预防因错误的程序代码或系

统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。

3.在Java代码中可用来处理异常的方式有哪些?

答:在Java代码中可用来处理异常的方式有两种:

(1)在可能产生异常的方法中,采用Java语言提供的try-catch-finally语句块处理异常

(2)如果一个方法可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应声明抛弃该种异常,表明该方法将不对此类异常进行处理,而由该方法的调用者负责处理。此时需在方法声明中包含throws子句。

4.如果发生了一个异常,但没有找到适当的异常处理程序,则会发生什么情况?

答:如果发生了一个异常,但没有找到适当的异常处理程序,则Java系统会采用Java异常处理机制预设处理方法来处理异常,即一旦程序发生异常,程序就会被终止并显示相应的错误信息给用户。

5.说明throw与throws有什么不同?

答:throw与throws的不同之处在于:

throw语句是一个独立的语句,用来明确地抛出一个异常,其作用是改变程序的执行流程,使程序跳到相应的异常处理语句中执行。而throws语句总是和方法定义结合起来用,在有些情况下,不需要一个方法处理本身可能产生的异常,而是希望把异常向上移交给调用这个方法的方法来处理,就需要通过throws语句来实现。

6.在设计catch块处理不同的的异常时,一般应注意哪些问题?

答:应注意如下的问题:

(1)catch块中的语句应根据异常的不同执行不同的操作,比较通用的操作是打印异常的相关信息,包括异常名称、产生异常的方法名等。

(2)由于异常对象与catch块的匹配是按catch块的先后排列顺序进行的,所以在处理多异常进应注意认真设计各catch块的排列顺序。一般地,处理较具体和较常见的异常的catch块应放在前面,而可以与多种异常相匹配的catch块应放在较后的位置。

第二种方法:利用Applet的getAudioClip()方法创建声音剪辑对象,加载指定文件,返回AudioClip对象,然后利用AudioClip对象的声音文件处理方法play( )或loop( )方法播放声音。

二、编程题

1.编写一个程序,用来将作为命令行参数输入的值转换为数字,如果输入的值无法转换为数字,则程序应显示相应的错误消息,要求通过异常处理方法解决。

程序代码如下:

class NumberException{

public static void main(String arg[]) {

try{

int i=Integer.parseInt(arg[0]);

System.out.println("输入的字符串可以转换为一个有效数字");

}

catch(NumberFormatException e){

System.out.println("请输入一个有效数字");

}

}

}

2.编写一个程序,用于将来自用户的两个数字接受为命令行参数。将第一个数字除以第二次数字并显示结果。代码应当处理引发的异常,即在输入的参数数量不是两个或用户输入0作为参数时引发异常。

程序参考代码如下:

class MulException{

public static void main(String args[]) {

int x,y,z;

try{

x=Integer.parseInt(args[0]);

y=Integer.parseInt(args[1]);

z=x/y;

System.out.println(x+"/"+y+"="+z);

}

catch(ArrayIndexOutOfBoundsException e){

System.out.println("输入的参数数量不是两个");

}

catch(ArithmeticException e){

System.out.println("第二个参数不能为零");

}

finally{

System.out.println("程序运行结束");

}

}

}

3.编写一个程序,说明在一个catch处理程序中引发一个异常时会发生什么情况。

参考代码如下:

public class catchException{

public static void main(String args[])

{

try{

throw new NullPointerException("空指针异常");

}

catch(NullPointerException e){

System.out.println("捕捉第一次产生的空指针异常");

throw new ArithmeticException ("数学异常");

}

finally{

System.out.println("程序正常执行完毕!");

}

}

}

当在异常处理程序中引发了异常时,该异常应由原try块的外层程序来处理,如果没有捕获处理,异常将向上级传递。

4.编写一个可演示用户自定义异常用法的程序,该程序接受用户输入的学生人数,当输入一个负数时,认为是非法的。用户自定义异常捕获此错误。

程序参考代码:

import java.io.*;

class MyException {

public static void main(String args[]){

String s="";

int t;

while(true){

try{

System.out.print("请输入学生人数:");

BufferedReader in=new

BufferedReader(new InputStreamReader(System.in));

s=in.readLine();

t=Integer.parseInt(s);

if(t<0)

throw new NegException("人数不能为负数!");

System.out.println("你输入的人数是:"+t);

break;

}

catch(IOException e){ System.out.println(e);}

catch(NegException e){System.out.println(e);}

}

}

}

class NegException extends Exception{

public NegException(String message){

super(message);

}

}

第9章习题解答

一、简答题

1.什么叫流?对流的分类通常有几种方式?

答:流是指一组有顺序的、有起点和终点的字节结合。

流的分类方式有多种:

?根据数据流动的方向,可分为输入流和输出流。

输入流:只能从中读取数据,而不能向其写出数据

输出流:只能向其写出数据,而不能从中读取数据

?根据处理数据的单位划分,可分为字符流和字节流

字节流:以字节为单位进行数据传输,每次传送一个或多个字节

字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符

?根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理

节点流:直接从指定的位置(如磁盘文件或内存区域)读或写

处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。

2.Java的所有I/O流都是四个抽象类的子类,这四个抽象类是什么?

答:

?InputStream:是所有字节输入流的父类

?OutputStream:是所有字节输出流的父类

?Reader:是所有输入字符流的父类

?Writer:是所有输出字符流的父类

3.写出下面这些输入输出流类的输入输出操作的特点。

(1)InputStream和OutputStream

(2)DataInputStream 和DataOutputStream

(3)FileInputStream和FileOutputStream

(4)PrintStream

(5)RandomAccessFile

答:

(1)一个字节一个字节地输入输出数据

(2)按照不同的数据类型输入输出数据

(3)一个字节一个字节地输入输出数据

(4)把数据转化成字符串输出

(5)按照不同的数据类型输入输出数据

4.File类的作用是什么?

答:File类是I/O包中唯一能够代表磁盘文件本身的对象,使用File类,我们可以方便地建立与某磁盘文件的连接。一个对应着某磁盘文件或目录的File对象一经创建,我们就可以通过调用它的方法来获得该文件或目录的属性,File类中还定义了一些对文件或目录进行管理、操作的方法,利用这些方法可以完成对文件和目录的建立、删除、查询、重命名等操作。

5.Java语言是否可以读入和写出文本格式的文件?如果可以,使用的类是什么?

答:可以。

使用的类是FileReader和FileWriter

6.流文件读入和写出的操作过程有哪些?

答:流文件读入和写出的操作过程如下:

(1)利用文件名字符串或File对象创建输入输出流对象

以创建FileInputStream为例,它有两个常用的构造函数:

FileInputStream(String FileName):利用文件名(包括路径名)字符串创建从该文件读入数据的输入流

FileInputStream(File f):利用巳存在的File对象创建从该对象对应的磁盘文件中读入数据的输入流

注意:在创建文件输入或输出流时可能因给出的文件名不对,或路径不对,或文件的属性不对不能进行读写而造成错误,此时系统会抛出异常FileNotFoundException,所以创建文件输入输出流并调用构造函数的语句应该被包括在try块中,并有相应的catch块来处理它们可能产生的异常。

(2)从文件输入输出流中读写数据

从文件输入输出流中读写数据有两种方式:一是直接利用FileInputStream和FileOutputStream自身的读写功能;另一种是以FileInputStream和FileOutputStream 为原始数据源,再套接上其他功能较强大的输入输出流完成文件的读写操作。

二、编程题

1.设计一个程序,可以接受用户从键盘输入的多个字符,换行表示字符输入结束。输入完后将其显示在屏幕上。

参考代码如下:

import java.io.*;

public class InputString{

public static void main(String args[]){

String s="";

System.out.print("请输入一个字符串:");

try{

BufferedReader in=

new BufferedReader(new InputStreamReader(System.in));

s=in.readLine();

}

catch(IOException e){

System.out.println(e);

}

System.out.println("你输入的字符串是:" + s);

}

}

2.编写程序,实现当用户输入的文件名不存在时,可以重新输入,直到输入一个正确的文件名后,打开这个文件并将文件的内容输出到屏幕上的功能。

参考代码如下:

import java.io.*;

public class ShowFile{

public static void main(String args[]){

String str;

File sourceFile;

BufferedReader source;

while(true)

{

try{

InputStreamReader din=new InputStreamReader(System.in);

BufferedReader in=new BufferedReader(din);

System.out.print("请输入文件路径及文件名:");

sourceFile=new File(in.readLine());

source=new BufferedReader(new FileReader(sourceFile));

while((str=source.readLine())!=null)

{ System.out.println(str);}

din.close();

in.close();

break;

}

catch(IOException e) {

System.out.println("I/O错误!重新输入文径路径及文件名");

}

}

}

}

3.编写程序,将程序文件的源代码复制到程序文件所在目录下的“temp.txt”文件中。

程序参考代码如下:

import java.io.*;

public class CopyFile{

public static void main(String args[]){

try{

FileInputStream fis=new FileInputStream("../CopyFile.java");

FileOutputStream fos=new FileOutputStream("temp.txt");

int read=fis.read();

while(read!=-1){

fos.write(read);

read=fis.read();

}

fis.close();

fos.close();

}catch(IOException e){

System.out.println(e);

}

}

}

4.编写代码,通过“文件”菜单项打开一个本地机的文件,把其内容显示在文本区中,经过修改后再利用“文件”菜单的“保存”菜单项把修改后的内容保存回磁盘中原来的文本里。

答:略

第11章习题解答

一、简答题

1.什么是面向连接的网络服务?什么是面向无连接的网络服务?它们着对应TCP/IP协议中的什么协议?

答:面向连接的网络服务是指利用它通信时,必须连接才可以传输数据,并且传

输数据完成后需要拆除连接。面向无连接的网络服务是指利用它通信时,无需建立连接就可传输数据。TCP协议是面向连接的协议,UDP是面向无连接的协议。

2.什么叫URL?一个URL由哪些部分组成?

答:URL为网络统一资源定位器,用来确定数据在网络中的位置。如一个网址、一个网络路径、磁盘上文件的相位路径都是一个有效的URL地址。

每个完整的URL地址由协议名、主机名、端口号、资源路径四部分组成。

3.什么是网络通信中的地址和端口?

答:端口(Port)和IP地址为网络通信的应用程序提供了一种确定的地址标识。两个远方程序建立连接时,首先需要知道对方的地址或主机名。地址用来区分计算机网络中的各个计算机;而端口表明了将数据包发送给目的计算机上的哪一个应用程序。应用层协议通常采用客户机/服务器模式(C/S模式),应用服务器启动后监听特定的端口,客户端根据服务时请求与服务端口建立连接。端口号用16位表示,编号是0~65535,其中0~1023分配给常用的网络服务,如HTTP为80、FTP为21等,用户的网络程序应使用1024以上的端口号。

4.说明如何通过一个URL连接从服务器上读取文件。

答:通过一个URL连接从服务器上读取文件通常需要以下四个步骤:

?创建一个URL对象。

例如:URL url=new URL("https://www.doczj.com/doc/e817594740.html,/")

?利用URL类中的openStream()方法获取URL指定的网上数据输入流。

例如:InputStreamReader urlStream=new InputStreamReader(url.openStream());

BufferedReader in=new BufferedReader(urlStream);

?通过循环,调用缓冲区读者对象的readline()方法每次循环读取一行

并将共显示出来。

例如:while((str=in.readLine())!=null)

System.out.println(str);

?读取结束后关闭数据流。

例如:in.close();

urlStream.close();

5.说明使用URLConnection类进行网络通信的基本步骤。URLConnection类和URL类访问网上资源有何异同?

答:使用URLConnection类进行网络通信的基本步骤通常需要以下三个步骤:

?创建URLConnection类的对象

第一步:建立URL对象,第二步调用这个对象的openConnection方法,返回一个对应其URL地址的URLConnection对象。

?建立输入输出数据流

利用URLConnection类的方法getInputStream和getOutputStream获取输入输出数据流。

?从远程计算机节点上读取信息或者写入信息。

利用URL类和URLConnection类访问网上资源的区别在于:

利用URL类只能读取远方计算机节点的信息,而利用URLConnection类不但可以读取远方计算机节点的信息,而且还可以向它写入信息。

6.什么是Socket套接字?简述Socket的通信机制?

答:Socket套接字是网络通信的一个重要机制,是指两台计算机上运行的两个程序之间的双向通信的连接点,这个双向链路上每一端都称为一个Socket。Java采用的Socket通信是一种流式套接字通信,它使用TCP协议,通过面向连接的服务,实现客户机与服务器之间的双向且可靠的通信。系统包https://www.doczj.com/doc/e817594740.html,提供了ServerSocket 类和Socket类,分别用于客户端(client)和服务器端(Server)。

Socket通信机制由三部分组成:

?建立Socket连接:客户端程序申请连接,服务器端程序监听所有的

端口,判断是否有客户程序的服务器请求。当客户端程序请示和某个端口连

接时,服务器将对方IP地址和端口号绑定形成套接字,这样服务器与客户

机就建立了一个专用的虚拟连接

?进行数据通信:利用虚拟通道传送数据

?拆除连接:通信结束后,将建立的虚拟连接拆除

二、编程题

1.编写程序,使用URL读取清华大学网站首页的文件内容。程序的运行结果如图11-7所示。(注:清华大学的网址为:https://www.doczj.com/doc/e817594740.html,/)

图11-7

参考代码如下:

import java.io.*;

import https://www.doczj.com/doc/e817594740.html,.*;

public class URLReader {

public static void main(String[] args) {

try{

第一章JAVA语言概论 一、选择题 1。下列不属于java语言鲁棒性特点的是:A.java能检查程序在变异和运行时的错误 B。java 能运行虚拟机实现跨平台 C。java 自己操纵内存减少了内存出错的可能性D。java 还实现了真数组,避免了覆盖数据的可能2.java语言的执行模式是: A。全编译型 B.全解释型 C.半编译和半解释型 D.同脚本语言的解释模式 3.下列关于虚拟机说法错误的是: A。虚拟机可以用软件实现 B.虚拟机部可以用硬件实现 C.字节码是虚拟机的机器码 D.虚拟机把代码程序与各操作系统和硬件分开 4。java语言是1995年由()公司发布的 A.Sun B。Microsoft C.Borland D.Fox Software 5.下列不是虚拟机执行过程特点的是 A。双线程

B.多线程 C.动态链接 D.异常处理 6.java以JVM为基础,最下层是移植接口,由适配器和()组成A.网卡 B。Java os C。Java基本类 D。Java 应用程序和applet小程序 7。java程序的执行过程中用到一套JDK工具,其中javac.exe指A.java语言编译器 B.java字节码解释器 C.java文档生成器 D.java类分解器 8.java的API结构中,不属于类库主要包括的核心包的是 A.java包 B。javax C.javadoc包 D.org扩展包 9.每个java的编译单元可包含多个类或界面,但是每个编译单元最多只 能有()类或者界面是公共的 A.一个 B。两个 C。四个 D。任意多个

10.在当前的java实现中,每个编译单元就是一个以()为后缀的文件 A。java B.class C。doc D.exe 二、填空题 1. 1991年,SUN公司的Jame Gosling和Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个____软件,它是java的前身. 2. java是一个网络编程语言,简单易学,利用了____的技术基础,但又独立于硬件结构,具有可移植性、健壮性、安全性、高性能。 3. java可以跨平台的原因是____ 4. JVM的执行过程有三个特点:多线程,_____,异常处理; 5.JAVA程序的安全性体现在多个层次上,在_____,有语法检查;在解释层上,有字节码校验器、测试代码段格式和规则检查,访问权限和类型转换和法性检查,操作数堆栈的上溢或下溢,代码参数类型合法性等;在平台层上,通过配置策略,可设定访问资源域,而无需区分本地或远程。 6。 JAVA的产品主流操作系统平台是Solaris、_____和Macintosh. 7. JAVA系统运行时,通过______机制周期性的释放无用对象所使用的内存,完成对象的清除。 8。在JAVA语言中,将后缀名为______的源代码文件编译后形成后缀名为.c lass的字节码文件。 9。 JAVA语言的执行模式是半编译和______. 10. JAVA类库具有_____的特点,保证了软件的可移植性。 11。在编写执行JAVA程序的过程中需要用到一些工具,SUN公司为我们提供了一套JDK工具,它主要包括:javac.exe、java。exe、_____、ja vap.exe、jkb。exe 12.JAVA程序包括源代码(.java文件)、______、由归档工具jar生成的。jar文件、对象状态序列化.ser文件.

目录 一、判断题 ................................................................. 错误!未定义书签。 二、选择题 ................................................................. 错误!未定义书签。 三、填空题 ................................................................. 错误!未定义书签。 四、写出下列程序完成的功能................. 错误!未定义书签。 五、写出下面程序的运行结果................. 错误!未定义书签。 六、使用Java语言编写程序 ..................... 错误!未定义书签。 七、简答题 ................................................................. 错误!未定义书签。 Java程序设计习题集 一、判断题 1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。( F ) 2.有的类定义时可以不定义构造函数,所以构造函数不是必需的。( F ) 3.类及其属性、方法可以同时有一个以上的修饰符来修饰。( T ) 4.Java的屏幕坐标是以像素为单位,容器的左下角被定为坐标的起点。( F )(应该是左上角) 5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。( F) 6.Final类中的属性和方法都必须被final修饰符修饰。( F )(静态的必须被静态的修饰符修饰) 7.最终类不能派生子类,最终方法不能被覆盖。(T ) 8.子类要调用父类的方法,必须使用super关键字。( T ) 9.一个Java类可以有多个父类。( F ) 10.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p 是正确的。( F ) 11.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。( T )

《JA V A语言程序设计》期末考试试题及答案2(应考必备题库) 一.判断题 1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(×)1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(×3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×)4.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。(×)5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch 中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。(√)6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。(√)7.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。(×)8.静态初始化器是在其所属的类加载内存时由系统自动调用执行。(√)9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。(×) 二.单项选择题 1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?() A、String args B、String ar[] C、Char arg D、StringBuffer args[] 2.以下关于继承的叙述正确的是()。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 3.paint()方法使用哪种类型的参数? () A、Graphics B、Graphics2D C、String D、Color 4.以下哪个不是Java的原始数据类型() A、int B、Boolean C、float D、char

第5章Java标准类库 习题五 一、简答题 1.计算调用下列方法得结果。 Math、sqrt(4); // 2、0 Math、pow(4, 3); // 64、0 Math、max(2, Math、min(3, 4)); // 3 2.下列程序中构造了一个set并且调用其方法add(),输出结果就是( 2 )。 import java、util、*; public class T1_2 { public int hashCode() { return 1; } public boolean equals(Object b) { return true; } public static void main(String args[]) { Set set = new HashSet(); set、add(new T1_2()); set、add(new String("ABC")); set、add(new T1_2()); System、out、println(set、size()); } } 3.Collection有哪几种主要接口?(Collection、List、Map、Set) 4.基本得集合接口有哪些? 5.映射、集合与列表得含义就是什么? 6.HashMap类与TreeMap类有何区别? 7.HashSet类与Treeset类有何区别? 8.ArrayList类与LinkedList类有何区别? 二、选择题 1.可实现有序对象得操作有哪些?(CD) A.HashMap B.HashSet C.TreeMap D.LinkedList 2.迭代器接口(Iterator)所定义得方法就是(ABC)。 A.hasNext() B.next() C.remove() D.nextElement() 3.下列方法属于java、lang、Math类得有(方法名相同即可)(ABCD)。 A.random() B.abs() C.sqrt() D.pow() 4.指出正确得表达式有(AB)。

《Java语言程序设计基础教程》 练习思考题参考答案 第1章Java程序设计概述 1、1单项选择题 1.编译Java Application源文件将产生相应得字节码文件,扩展名就是什么 A、、java ???? B、、class ?C、、html??? D、、exe 解答:B 2.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中“一次编 译,随处运行”得特点. ?A、简单性????B、平台无关性 C、面向对象性???? D、安全性 解答:B 3.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中并行机制得 特点。 ?A、多线程???B、平台无关性 C、面向对象性??? D、安全性 解答:A 4。在Java语言中,下列哪些语句关于内存回收得说明就是正确得? ?A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存; C.内存回收程序允许程序员直接释放内存; D.内存回收程序可以在指定得时间释放内存对象 解答:B 5.一个Java源文件中最多只能有多少个public类。 ?A、1个?B、2个

C、3个? D、任意多个 解答:A 6。下面哪一个不就是Java语言所具有得特点。 A、没有全局变量,在类得定义外部没有任何得变量定义; ?B、不直接支持指针操作,而使用更安全得引用类型; C、支持子类对父类得多继承; D、具有自动垃圾收集功能; 解答:C 7。下面哪一个不就是Java开发工具包JDK得组成部分. ?A、Java得编译器; B、Java得解释器;? ?C、Java得API继承类库; ?D、Eclipse开发工具; 解答:C 8。JDK提供得编译器就是()。 ?A、java、exe???B、javac、exe C、javap、exe??? D、javaw、exe 解答:B 9。作为Java应用程序入口得main方法,其声明格式可以就是() A、public voidmain(String[]args) B、public static void main(String []args) C、public static void Main(String* args) D、public int main(String []args) 解答:B 10.下列说法正确得就是( A ) A、JAVA程序得main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序得main方法中如果只有一条语句,可以不用{}(大括号)括起来 11。下列哪些语句关于Java内存回收得说明就是正确得? ( B) A、程序员必须创建一个线程来释放内存

“Java程序设计基础”课程习题 一、填空 1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从 ___main方法___开始执行。 2.定义一个Java类时,通过关键字__extends____指明该类的父类。一个类可以有___1___ 个父类。 3.用public修饰的类称为_公有类或公用类__。用public修饰的类成员称为公有成员。被 说明为public的内容可以被__所有其他类___ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。 4.用___private___ 修饰的类成员称为私有成员。私有成员只能在__本类__ 中使用。 5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用 子类的成员变量,可以在成员变量前加上关键字__super___ 。 6.____Object__ 类是Java类库中所有类的父类。 7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。 8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认 使用自己的方法。使用父类的同名方法,必须用关键字__super__ 说明。 9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。 10.Java类名的第一个字母通常要求___大写___。 11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的 名称相同。 12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。 13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_ 两种值。整型数可以采用_十_ 、__八_ 和__十六_三种进制表示。 14.八进制整数以数字__0_开头。十六进制整数以_0x或0X_ 开头。 15.int整型数占用__32位内存。long整型数占用__64 位内存。 16.127L表示__长整型____ 常量。 17.根据占用内存长度将浮点常量分为_double_____ 和__float____ 两种。 18.单精度浮点常量占用__32_ 位内存,双精度浮点常量占用__64 位内存。 19.在Java语言中,字符串“ABC\tD\b\n”中包括__7个字符。 20.数学关系44&&x<9____ 。数学关系x>3且x<=10对应 的Java表达式是_x>3&&x<=10。数学关系x>3或x<-10对应的Java表达式是_x>3||x<-10_。 21.逻辑表达式true&&false&&true的结果是_false_ 。 22.__new__ 运算符的作用是根据对象的类型分配内存空间。当对象拥有内存空间时,会 自动调用类中的构造方法为对象_初始化_。 23.省略访问修饰符的类只能被同_一包_中的类使用,称之具有包访问特性。 24.用public修饰的类称为_公共类_。用public修饰的类成员称为公共成员。被说明为public 的内容可以被_所有类_ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过_import_语句引入。 25.用_private_ 修饰的类成员称为私有成员。私有成员只能在_本类使用。 26.在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为__方法重载_ 。 27.如果子类定义的成员变量与父类的成员变量同名,要表明使用子类的成员变量,可以在 成员变量前加上关键字__this__。

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

JA V A程序设计习题集 第一章 1、动手完成Java 开发包的安装,并设置环境变量Path ,熟悉开发工具。 2、编写一个程序,要求程序运行后在屏幕上输出: *************************** This is my first java program! *************************** 3、编写一个程序,该程序从命令行接收4 个参数,并将接收的4 个参数打印输出到屏幕。 第二章 1、指出下列哪些变量名称是不合法的? tomSalary,float,1people,people1,price_per_m,price-per_m,$root,@test 2、编写一个程序,求解一元二次方程:ax2+bx+c=0. 参数a,b 及c 从命令行输入。 提示:需要用到https://www.doczj.com/doc/e817594740.html,ng.Math 类,Math 类中提供了多种用于科学计算的方法,例如开发sqrt, 求幂pow 等等。 3、写出int min=x>y?y:x 的等价if 语句。 4、利用java API 帮助文档,找到一个可以将给定的字符串转化为小写的方法。 5、打印出成绩等级,如果成绩大于等于90 分,输出“优秀”,如果成绩大于等于80 分,输出“良好”,如果大于等于70 分,输出“中等”,如果大于等于60 分,输出“及格”,其它输出“不及格”。 第三章 1、选择题 (1)程序TestSketch.java 代码如下,4 个选项中正确的描述是() Class A{} Class B extends A{} Public class TestSketch{ Public static void mian(String[] args){ A a=new A();

1234124JAVA语言程序设计考试试题及部分答案 一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( B ) 。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A)0 B) 1 C) 2 D) 3 2.设i 、j 为int 型变量名, a 为int 型数组名,以下选项中,正确的赋值语句是( B ) 。 A)i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是(B )。 A)多重的B) 单重的C) 线程的D) 不能继承 4.设有定义int i = 6 ; ,则执行以下语句后,i 的值为( C ) 。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( C ) 。 A) interface B) package C) extends D) class 6.若已定义byte[ ] x= {11,22,33,-66} ; 其中O W k<3,则对x数组元素错误的引用是(C )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后, ch1 的值是( B ) 。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) 'A' B) 'B' C) 'C' D) B

目录 第一章Java入门2? 第二章 Java基础5? 第三章条件转移1?4 第四章循环语句20? 第五章方法 ............................................... 26 第六章数组33? 第七章面向对象........................................... 42第八章异常63? ? 第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个 平台中最核心的部分,包含Java最核 心的类库。?JavaEE:(J2EE,Java 2 Platform, EnterpriseEdition,企业版), 开发、装配、部署企业级应用,包含 Servlet、JSP、JavaBean、JDB C、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platfor mMicro Edition,微型版),用于 小型电子设备上的软件开发。

2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径,J VM在运行时通过classpath加载需 要的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将 编写好的Java文件(.java)编译成 Java字节码文件(.class); ?java.exe:Java运行工具,启动Java 虚拟机进程,运行编译器生成的字节 码文件(.class) 5、一切程序运行的入口 publicstatic voidmain(String args []){ System.out.println(“Hel lo World!”); } 课堂笔记 练习题 一、填空题 1、Java的三个技术平台分别是(J2SE )、(J2EE)、(J2ME)。 2、Sun公司针对领域不同,提供了三个Java版本,其中对于个人计算机程序开发的是( J2SE ), 对于企业开发应用的是(J2EE),对于嵌入式设备应用开发的是( J2ME )。 (classpath )。 3、建立Java开发环境,安装JDK,一般需要设置环境变量(path)、 4、编写一个Java源程序,其文件名为Test.java,则编译该源程序的命令为(javac ),运行 该程序的命令为( java),生成文档注释的命令为( javadoc)。 5、Java程序的运行环境简称之为( JRE)。

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少 //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m=101; m<1000; m++) {

J a v a程序设计总复习题 1、编写一个Java程序,用if-else语句判断某年份是否为闰年。(分支) // Programme Name LeapYear.java public class LeapYear{ public static void main(String args[]){ int year=2010; if(args.length!=0) year=Integer.parseInt(args[0]); if((year%4==0 && year%100!=0)||(year%400==0)) 年是闰年。"); else 年不是闰年。"); } }//if-else语句 2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。(循 环) // programme name ForTest.java public class ForTest { public static void main( String args[] ) { int i,j,mul,sum=0; for(i=1;i<=10;i++) { mul=1; for(j=1,j<=i;j++) { mul=mul*j; } sum=sum+mul; } “1!+2!+3!+……+10!= ”+sum); } } 3、依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格) 并计算人数(switch) 4、使用冒泡排序(数组) public class BubbleSort { public static void main(String[] args) {

Java程序设计习题集 第一章Java基础知识 §1.1Java概述 1.完成在Windows 2000操作系统下环境变量的配置 2.创建一个Java程序,输出自己的基本信息:名字和年龄。 3.概述Java语言的版本发展过程。 4.简述Java语言的运行机制。 5.在自己的机器上用JDK开发运行环境完成第一个Java程序的编辑、编译、运行过程。 6.简述Java语言的特点,Java虚拟机的概念及作用。 §1.2 Java基本语法 1.什么是变量?什么是常量? 2.什么叫表达式,Java语言中共有几种表达式? 3.下面哪些表达式不合法?为什么? HelloWorld 2Thankyou _First -Month 893Hello non-problem HotJava implements $_MyFirst 4. 以下的选项中能正确表示Java语言中的一个整型常量的是( )。 A) 12. B) -20 C) 1,000 D) 4 5 6 5. 以下选项中,合法的赋值语句是( )。 A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i ); 6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32 7. 若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A) 0 B) 4 C) 8 D) -4 8. 在Java语言中,逻辑常量只有true 和 ___________ 两个值。 9. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float 和 __________两种具体类型。 10. Java语言是( )。 A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言 C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 11. 下列的变量定义中,错误的是( )。 A) int i; B) int i=Integer.MAX_VALUE; C) static int i=100; D) int 123_$; 12. 以下的变量定义语句中,合法的是( )。 A) float $_*5= 3.4F; B) byte b1= 15678; C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L; 13. 以下字符常量中不合法的是( )。 A) '|' B) '\'' C) "\n" D) '我' 14. 若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。 A) b = a!=7 ; B) a = 7 + b + c=9; C) i=12.3* % 4; D) a = a + 7 = c + b;

Java程序语言试卷(A) 答题卡: 一题: 1.___________________________________________________________ 2.___________________________________________________________ 3.___________________________________________________________ 4.___________________________________________________________ 5.___________________________________________________________ 6.___________________________________________________________ 四题: 1.___________________________________________________________ 2.___________________________________________________________ 3.___________________________________________________________ 4.___________________________________________________________ 5.___________________________________________________________五题:

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

《Java程序设计》复习题 一、选择题 1.线程是Java的()机制。 A.检查 B.解释执行 C.并发 D.并行 2.Java语言的()特点能保证软件的可移植性。 A.健壮性 B.安全性 C.动态性 D.跨平台 3.下面不属于Java语言特点的是() A.面向过程 B.动态性 C.多线程 D.解释执行 4.Java作为编程语言,最基本的元素是() A.方法 B.对象 C.包 D.接口 5.下列项目中,不属于Java核心包的一项是() A.Javax.swing B.Java.io C. Java.util D. https://www.doczj.com/doc/e817594740.html,ng 6.Java语言具有许多优势和特点,下面哪个特点是Java所不具有的?( ) A.利用了面向对象的技术基础 B.可移植性 C.独立于硬件 D.多重继承 7.下面的哪个特点不是Java虚拟机执行过程的特点( ) A.多线程 B.及时执行 C.动态连接 D.异常处理 8.下列属于Java语言垃圾回收机制的一项是( ) A.内存跟踪 B.异常处理 C.代码安全检测 D.健壮性 9.下列说法不正确的是() A.表达式可以作为其它表达式的操作数 B.单个的常是时或变量可以作为表达式 C.表达式和表达式语句是一样的 D.表达式的类型可以和操作数的类型不一致 10.下面选项不是表达式语句的是( ) A.a++ B.a=b+c; C.a+=b; D.System.out.println(“A”); 11.下列程序的输出结果为( ) public class B { public static void main(String[ ] args){ int x=5; double y=10.5f; float z=(float)(x*y); System.out.purintln(z); } } A.50.0 B. 52.0 C. 50.5 D. 52.5 12.对以下程序段,说法正确的是( ) int a=10; int t=0; do { t=a++; } while(t<=10); A.一次都不执行 B.执行一次 C.执行两次 D.无限次执行 13.下列程序的输出结果为() public class A{ public static void main(String[ ] args){ int a=3,b=4,c=5,d=6,e=7;

若有定义int a=2,b=2; 则表达式(a++)+(++b) 的值是( )。 A. 5 监听器接口的方法返回值的类型是()。C. void 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。 D. init() 以下哪个不是Java的原始数据类型() B. Boolean 向Applet传递参数的正确描述是()。C. C. PARAM name="age,value=20" 阅读下列代码; public class Test{ String s="One World One Dream"; public static void main(String args[]){ System.out.println(s); } } 其运行结果是_ C. 编译时出错//除非创建Text类的对象 如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()。 A. p.add(b,"South"); 编译和运行下面的应用程序,并在命令行界面输入12345 ,则回车后屏幕输出的结果是( )。public class A { public static void main(String args[]) throws IOException{ BufferedReader buf=new BufferedReader( new I nputStreamReader(System.in)); String str=buf.readLine(); int x=Integ er.parseInt(str); System.out.println(x/100); } } B. 123 构造函数何时被调用?() B. 创建对象时 以下哪项可能包含菜单条()。 D. Frame

参考答案 第1章 3、计算机系统由哪两部分组成的?计算机硬件结构由哪几部分组成?它们各自有什么作用? 一台计算机由硬件和软件组成。一台典型的计算机由五大部分组成。这五大部分是:运算器,控制器,存储器,输入设备和输出设备。 运算器是执行算术运算和逻辑运算的部件。 控制器是向计算机其他部分发送命令的部件。 存储器是计算机用来存储数据、信息的部件。 输入设备就是外界向计算机输入信息设备。 输出设备恰好与输入设备的作用相反,它将处理过后的信息输出呈现给用户。 9、将以下十进制数转换为对应的二进制数 (1)32 (2)97 (3)256 (4)500 (1)100000 (2)1100001 (3)100000000 (4)111110100 第2章 1.Java语言有哪些主要特点。 平台独立性 安全性 多线程 网络化 面向对象 3.Java Application的开发步骤有哪些。 Java Application的开发步骤: (1)下载JDK软件并安装; (2)配置相应的环境变量(path和classpath); (3)编写Java源程序(文本编辑器或集成开发环境IDE); (4)编译Java源程序,得到字节码文件(javac *.java); (5)执行字节码文件(java 字节码文件名)。

4.什么是环境变量,设置环境变量的主要目的是什么。 环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。 第3章 1.Java语言对于合法标识符的规定是什么?指出以下哪些为合法标识符。 a a2 3a *a _a $a int a% 在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。 合法的标识符: a a2 _a $a 5.数据类型强制转换的原则是什么?如何转换? 对于变窄转换,如long到short、double到float,或者不兼容转换:float到short、char 到short等,则需要进行强制转换。 float f = 11.5; short b ; b = (short)f; (强制转换) 第4章 5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。 public class Test { public static void main(String[] args) { int a,b,c,x=100; while(x<1000){ a=x%10; b=(x%100-a)/10; c=(x-x%100)/100; if(a*a*a+b*b*b+c*c*c==x) System.out.println(x); x+=1;

JAVA程序设计题库 第一部分 JAVA语言概论 一、选择题 1. 下列不属于java语言鲁棒性特点的是: A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是: A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是: A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的 A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是 A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成 A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指 A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是 A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的 A. 一个 B. 两个

相关主题
文本预览
相关文档 最新文档