Java程序设计实用教程课后答案 钱慎一

Java程序设计实用教程课后答案   钱慎一
Java程序设计实用教程课后答案   钱慎一

目录

第一章java基础知识 (2)

第二章java语句基础 (2)

第三章面向对象编程1 (5)

第四章面向对象编程2 (7)

第五章java常用类和接口 (8)

第六章java异常处理 (11)

第七章图形用户界面处理 (12)

第八章常用Swing组件 (13)

第九章I/O处理 (16)

第一章

JAVA语言的特点:

1.简单性

2.面向对象性

3.分布式与安全性

4.与平台无关性

5.编译和解释特性

6.多线程

7.

动态执行8.自动废区回收性9.丰富的API文档和类库

第二章

1.Java语言对标识符的组成有何要求?

标识符用来标识类名,变量名,方法名,类型名,数组名,文件名的有效序列称为标识符。简单地说,标识符就是一个名字。Java语言规定标识符由字母,下划线,美元符号和数字组成,并且第一个字符不能是数字字符。标识符不能是关键字,但是它可以包含关键字作为它的一部分。

2.如何定义变量和常量?

常量:关键字+数据类型+常量名称=常量值

如final datatype CONSTNAME=VALUE

变量:变量声明要三部分:变量类型,变量名,初始值

int x=1;

3.java的数据类型有哪些?

1)布尔类型:boolean(逻辑型)true or false 默认是false

2)整数类型

byte(字节类型) 一个byte 8位,占用1个字节例32B 默认是0

取值范围是-27—27-1 -128~127

short(短整型) 一个short 16位,占用2个字节例32S默认是0

取值范围是-215—215-1 -32768~32767

int(整型) 一个int 32位,占用4个字节例32默认是0

取值范围是-231—231-1 -2147483648~2147483647

long(长整型) 一个long 64位占用8个字节例32L默认是0

取值范围是-263—263-1 -9223372036854774808~9223372036854774807

3)字符型

char 用‘单个字符’表示无符号unicode字符例’a’‘1’

取值范围是\u0000~\uFFFF

4)浮点类型分

float(单精度浮点型)一个float 32位,占用4个字节例3.2F默认是0.0f

取值范围是3.4e-038—3.4e+038

double(双精度浮点型) 一个double 64位,占用8个字节例3.2 默认是0.0

取值范围是1.7e-038—1.7e+038

4.利用if语句判断两个数是否相等。

public class IFstatement{

public static void main(String[] args){

int a = 2,b=1;

if (a=b){

System.out.println("a=b")

}

else

System.out.println("a不等于b");

}}

5.利用if-else语句判断某一具体年份是否为瑞年。

public class YUNNIANstatement{

public static void main(String[] args){

int x=2010;

if((x%4==0&&x%100!=0)||(x%4==0&&x%400==0)){

System.out.println("该年为闰年");

}else{

System.out.println("该年为平年");

} }}

6.利用switch语句实现如下功能:根据用户输入的年份和月份,有程序判断该年的该月有多少天。

public class TTIANSHUstatement

{

public static void main(String[] args)

{

int y=0,m=0,n=0;

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

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

switch(m)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

System.out.println(31);

break;

case 4:

case 6:

case 9:

case 11:

System.out.println(30);

break;

case 2:

{

if((y%4==0&&y%100!=0)||(y%4==0&&y%400==0))

n=28;

else

n=29;

System.out.println(n);

}

break;

default:

System.out.println("输入错误");

} }}

7.利用两种不同的循环语句计算10的阶乘。

public class JIECHENGstatement{

public static void main(String[] args){

int x,sum=1;

for(x=10;x>1;x--){

{

sum=sum*x;

}

}

System.out.println(sum);

}}

8.计算10-100之间的所有素数之和。

public class SUSHUstatement{

public static void main(String[] args){

int n,x,sum=0;

for(n=10;n<=100;n++)

{

for(x=2;x

{

if(n%x==0)

break;

}

if(x==n)

{

sum=sum+n;

}

}

System.out.println(sum);

}}

9.如何定义多维数组.

数据类型[][] 数组名称;数据类型[] 数组名称[];数据类型数组名称[][];

第三章

1.定义一个类,仔细观察类中各部分的详细声明。

2.假设在图书管理系统中有一个读者借阅信息类,包括:

属性:书名,作者,出版社,借书时间,还书时间,应还时间,超期时间,罚款金额。方法:设置书名,设置作者。这只出版社,获取书名,获取出版社信息。

声明并定义该类。

class Books{

private String name;

private String authors;

private String publisher;

private double borrowtime;

private double returntime;

private double needreturntime;

private double overdays;

private double money:

public Books(){

}

public books(String Name,String Authors,String Publisher,double Borrowtime,double Returntime,double Needreturntime,double Overdays,double Money){

name=Name;

authors=Authors;

publisher=Publisher;

borrowtime=Borrowtime;

returntime=Returntime;

needreturntime=Needreturntime;

overdays=Overdays;

money=Money;

}

public String getName(){

return name;

}

public viod setName(String Name){

name=Name;

}

public String getAuthors(){

return authors;

}

public viod setAuthors(String Name){

authors=Authors;

}

public String getAuthors(){

return authors;

}

public viod setAuthors(String Name){

authors=Authors;

}}

3.在2题基础上创建读者借阅信息类的构造函数,重新创建该类的对象,并输出对象基本信息

4.构造函数的作用是什么?在习题3的基础上添加读者借阅信息类的构造函数,重新创造该类的对象,并输出对象的基本信息。

构造函数作用:

1)对象初始化。

2)引入更多灵活度。

3)java语言中可以不定义构造函数。

5.说明Static声明属性,方法和不用static限制的区别。

声明属性:定义静态数据的简单方法就是在属性的前面加上关键字static。

方法:静态方法的定义和非静态方法的定义在形式上没有什么区别,只是在声明为静态方法前面加上一个关键字static。

区别:1.在外部调用静态方法时,可以使用“类名.方法名”的方式,也可以使用“对象名.方法名”的方式。而实例方法只有后面这种方式。也就是说,调用静态方法无需创建对象。

2.静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和ing 太方法),不能访问非你高抬的成员变量。

6.Java语言中的访问控制符有几个?分别说明他们对类中成员的限制作用。

属性和方法的访问控制符有四种:private, 缺省控制符, protected, public

同一类中同一包中同一子类中通用(其它)private Yes

缺省控制符Yes Yes

protected Yes Yes Yes

public Yes Yes Yes Yes

7.final的作用是什么?

final方法

将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进

行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。

final类

当你将final用于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。

第四章

1.子类和父类的关系是什么?怎样实现父子类之间成员和成员方法的隐蔽?

继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物的共性。子类中有和父类中可访问(可继承到子类)的同名同返回类型同参数表的方法,就会覆盖从父类继承来的方法。

怎样实现父子类之间成员和成员方法的隐蔽。。没找到!

2.方法的覆盖和重载区别是什么?

重载与覆盖的区别:

1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。

2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

3、覆盖要求参数列表相同;重载要求参数列表不同。

4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

3.this和super的含义是什么?

关键字this和super是常用来指代父类和子类对象的关键字。

1.当一个方法引用自身对象时,就使用this关键字。

.想通过构造方法将外部传入的参数赋值给类的成员变量,构造方法的形式参数名称与类的成员名称变量名相同。

.假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接受一个代表其所在容器的参数。

.构造方法是在产生对象时被JAVA系统自动调用的,不能再程序中像调用其他方法一样去调用构造方法.

2.super关键字表示的是对当前对象的直接父类对象,是对当前对象的直接父类对象的引用。

4.抽象类和接口的概念是什么?两者区别在哪?

抽象类就是没有具体对象的概念类,是其所有子类的公共属性的集合,所以使用抽象类的一大优点就是可以充分利用这些公共属性来提高开发和维护程序需的效率。

接口是JAVA实现多重能继承功能的一种手段,一种结构。

区别:接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

5.包的概念是什么,如何创建和使用包?

一个包就是一些提供访问保护和命名空间管理的相关类与接口的集合。使用包的目的就是使类更容易查找和使用,防止命名冲突,以及进行控制访问。

创建包要创建包,只需要在java源程序的第一行输入package命令即可package 包名

使用包不知道

第五章

1.String和StringBuffer有什么区别?

String类表示了定长,不可变的字符序列。

StringBuffer类可以插入其中或追加其后的字符或字符串,还可以针对这些添加操作自动地增加空间,同时它通常还有比实际需要更多的预留字符,从而允许增加空间。

2.在Vector对象中存放10位学生的姓名,学号,3门成绩,并输出。

import java.util.*;

public class VectorTest {

public static void main (String[] args)throws Exception

{ Vector vector1 = new Vector();

Vector vector=vector1.getClass().newInstance();

String s1="杜昊凡学号08 成绩98 80 88";

String s2="寇晔学号16 成绩98 80 88";

String s3="夏雪艳 42 成绩98 80 88";

String s4="孟春颖 27 成绩98 80 88";

String s5="冯媛 07 成绩98 80 88";

String s6="张颖喆 52 成绩98 80 88";

String s7="史瑞辉32 成绩98 80 88";

String s8="肖博 40 成绩98 80 88";

String s9="宋鹏 38 成绩98 80 88";

String s10="王丹 48 成绩98 80 88";

vector.add(s1);

vector.add(s2);

vector.add(s3);

vector.add(s4);

vector.add(s5);

vector.add(s6);

vector.add(s7);

vector.add(s8);

vector.add(s9);

vector.add(s10);

for(int i=0;i

{ String in=(String)vector.get(i);

System.out.println(in);

} } }

3.编写程序,输入年月日,计算输入日期为星期几。import java.util.*;

public class DatelsWeek{

public static void main(String [] args){

Scanner sc = new Scanner(System.in);

System.out.print("请输入年份:");

int year = sc.nextInt();

System.out.print("请输入月份:");

int month = sc.nextInt();

System.out.print("请输入号数日:");

int day =sc.nextInt();

int total=0;

int week=2;

boolean a=true;

a=(year%400==0)||(year%4==0&&year%100!=0); year=year-1979;

total=(year-1)*365+year/4+year/100+year/400; switch(month-1){

case 12:total=total+31;

case 11: total=total+30;

case 10: total=total+31;

case 9: total=total+30;

case 8: total=total+31;

case 7: total=total+31;

case 6: total=total+30;

case 5: total=total+31;

case 4: total=total+30;

case 3: total=total+31;

case 2: if(a){

total=total+29;

}

else{

total=total+28;

}

case 1:total=total+31;

}

total=total+day-1;

week=(week+total)%7;

if(month==12&&day>31){

System.out.println("请输入正确日期");

}

else{

switch(week){

case 1:System.out.println("星期一");break;

case 2:System.out.println("星期二");break;

case 3:System.out.println("星期三");break;

case 4:System.out.println("星期四");break;

case 5:System.out.println("星期五");break;

case 6:System.out.println("星期六");break;

case 7:System.out.println("星期天");break;

}}}}

4.编程产生0-100之间的随机数。

public class random

{ public static void main (String args[])

{int i;

int a[]=new int [10];

for (i=0 ;i<10;i++)

a[i]=(int)(Math.random()*100);

for (i=0 ;i<1;i++)

System.out.println(a[i]);

}}

5.如何获得系统的当前时间。

import java.util.*;

class Data

{ public static void main(String args[])

{ Calendar calendar=Calendar.getInstance();

calendar.setTime(new Date());

String 年=String.valueOf(calendar.get(Calendar.YEAR)),

月=String.valueOf(calendar.get(Calendar.MONTH)+1),

日=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)),

星期=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1); int hour=calendar.get(Calendar.HOUR_OF_DAY),

minute=calendar.get(Calendar.MINUTE),

second=calendar.get(Calendar.SECOND);

System.out.println("现在的时间是:");

System.out.println(""+年+"年"+月+"月"+日+"日 "+ "星期"+星期);

System.out.println(""+hour+"时"+minute+"分"+second+"秒");

} }

6.在Java程序中调用其他可执行的外部程序,执行,并输出程序的运行时间

第六章

1.简述异常的概念。

异常是程序运行过程中出现的错误。

2.请画出Java语言中异常的层次结构图。(p121页图6.2)

3.请描述throw和throws语言的区别

区别一: throw 是语句抛出一个异常;throws 是方法抛出一个异常;

throw语法:throw <异常对象>

在方法声明中,添加throws子句表示该方法将抛出异常。

throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]

其中:异常类可以声明多个,用逗号分割。

区别二: throws可以单独使用,但throw不能;

区别三:

throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。

4.自定义一个异常类,从命令行获取两个数据,进行除法运算,如果分母为0或输入的不是两个参数,均异常抛出。

import java.io.*;

public class text

{

public static void main(String args[])throws IOException

{

int num1,num2,sum;

String str;

BufferedReader buf;

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

System.out.println("Input the first integer:");

str=buf.readLine();

num1=Integer.parseInt(str);

System.out.print("Input the second integer:");

str=buf.readLine();

num2=Integer.parseInt(str);

sum=num1/num2;

System.out.println("The sum is "+sum);

}}

第七章

1.简述AWT和Swing两者的关系。

swing组件都是从awt组件继承的,swing是轻量组件,而awt是重量组件,每个组件都有一个本地peer,这就是为什么swing组件在大多数系统上显示都差不多而awt就反之了。 Swing组件与Awt相比,Swing组件显现出强大的优势。

1.丰富的组件类型

2.更好的组件API模型支持

3.标准的GUI库。

4.性能更稳定

2.创建一个标题为“欢迎使用图书管理系统'的窗口……

import java.awt.*;

import javax.swing.*;

public class MainFrame extends JFrame{

public MainFrame(){

this.setTitle("欢迎使用图书馆管理系统");

Container container=this.getContentPane();

container.setLayout(new BorderLayout());

JPanel panel=new JPanel();

panel.setBackground(Color.BLUE);

JButton bt=new JButton("Exit ");

panel.add(bt);

container.add(panel,BorderLayout.SOUTH);

this.setVisible(true);

this.setSize(600,450);

}

public static void main(String[]args){

new MainFrame();

}}

3.Java提供了几种布局管理器,他们之间的区别是什么?

java.awt提供了5种布局管理器:

1. FlowLayout

2. BorderLayout

3. GridLayout

4. CardLayout

5. GridBagLayout

Javax.swing还提供了

6. BoxLayout

区别:找不到,网上也没说清楚,抱歉

4.什么是事件适配器,它的优点是什么?

事件适配器,为一些Listener接口提供了适配器(Adapter)类通过继承事件所对应的Adapter类,只需重写需要的方法提供了一种简单的实现监听器的手段,可以缩短程序代码由于java的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器了。

优点:在实际开发中,在编写监听器代码时不再直接实现监听接口,而是继承适配器类并重写需要的事件处理方法,这样避免了编写大量不必要的代码。

第八章

1.编写程序,创建一个标签和一个命令按钮。单击命令按钮时。标签在“你好”和“再见”之间转换

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class JButtionJTextAreaDemo extends JFrame {

private JButton bt1;

private Container container;

private JLabel label;

public JButtionJTextAreaDemo() {

container = this.getContentPane();

bt1 = new JButton("确定");

label = new JLabel("你好");

bt1.addActionListener(new actionLis());

JPanel p1 = new JPanel();

p1.add(bt1);

p1.add(label);

container.add(p1, BorderLayout.CENTER);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e)

{

System.exit(0); }});

this.setSize(600, 450);

this.setVisible(true);

}

class actionLis implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

if (e.getSource() == bt1)

{

if(label.getText()=="你好")

label.setText("再见");

else

label.setText("你好"); }}}

public static void main(String[] arg) {

new JButtionJTextAreaDemo(); }}

4.设置一个JLabel组件,开始内容为你好,设置三个JCheckBox,标题红绿蓝,设置三个JRadioButton组件,标题10,16,20,根据案件改变字体大小和颜色。

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class a extends JFrame implements ItemListener,ActionListener { private JLabel lb1;

private JCheckBox b1, b2, b3;

private Container container;

int red = 0, green = 0, blue = 0;

int fonti=10;

Font font;

public a() {

container = this.getContentPane();

ButtonGroup bt=new ButtonGroup();

JRadioButton d1=new JRadioButton("10");

JRadioButton d2=new JRadioButton("16");

JRadioButton d3=new JRadioButton("20");

b1 = new JCheckBox("红色");

b2 = new JCheckBox("绿色");

b3 = new JCheckBox("蓝色");

lb1 = new JLabel("你好");

lb1.setMaximumSize(new Dimension(150, 200));

container.add(lb1, BorderLayout.CENTER);

JPanel p1 = new JPanel();

p1.setLayout(new FlowLayout(FlowLayout.LEFT));

p1.add(b1);

p1.add(b2);

p1.add(b3);

p1.add(d1);

p1.add(d2);

p1.add(d3);

p1.setBackground(Color.red);

b1.addItemListener(this);

b2.addItemListener(this);

b3.addItemListener(this);

d1.addActionListener( this);

d2.addActionListener(this);

d3.addActionListener(this);

bt.add(b1);

bt.add(b2);

bt.add(b3);

bt.add(d1);

bt.add(d2);

bt.add(d3);

container.add(p1, BorderLayout.SOUTH);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

this.setSize(450, 450);

this.setVisible(true); }

public void itemStateChanged(ItemEvent e) {

if (e.getItem() == b1)

if (e.getStateChange() == e.SELECTED)

lb1.setForeground(Color.red);

else red = 0;

if (e.getItem() == b2)

if (e.getStateChange() == e.SELECTED) lb1.setForeground(Color.green);

else

green = 0;

if (e.getItem() ==b3)

if (e.getStateChange() == e.SELECTED)

lb1.setForeground(Color.blue);

else

blue = 0;

lb1.setOpaque(true);

lb1.setBackground(new Color(red,green,blue)); }

public static void main(String[] arg) {

new a();

}

public void actionPerformed(ActionEvent e) {

String bt=e.getActionCommand( );

if (bt=="10") fonti=10;

else if (bt=="16") fonti=16;

else fonti=20;

font=new Font("宋体",Font.BOLD,fonti);

lb1.setFont(font);

lb1.setBackground(new Color(red,green,blue));

}}

第九章

1.比较FileInputStream流的read方法和FileReader流的read的方法有什么异同点? FileInputStream : read() 从此输入流中读取一个数据字节。

2. read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。

3.read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中

FileReader:所有方法( read ()等)都从父类 InputStreamReader 中继承而

来;

1)read() 读取单个字符

2)read(char[] cbuf, int offset, int length) 将字符读入数组中的某一部分。

4.把一段英文字符写入文件“data。txt”在读取第一行,统计每个字符出现个数

import java.io.*;

import java.util.*;

public class ttt{

public static void main(String[] args) throws IOException {

int[] app = new int['z'+1];

System.out.println("请输入要写入的字符");

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String s = new String();

s = bf.readLine();

System.out.println(s);

File myfile = new File("D:\\data.txt");

BufferedWriter out = new BufferedWriter(new FileWriter(myfile));

out.write(s);

out.close();

System.out.println("文件已经写入"+myfile.getName());

System.out.println("现在读取文件内容......");

BufferedReader in = new BufferedReader(new FileReader("D:\\data.txt")); StringBuffer txt = new StringBuffer("");

System.out.println("文件第一行内容是......");

while(in.ready()){

txt.append(in.readLine());

} String result[] = txt.toString().split("\\s");

for (int i=0; i

char ch = ' ';

while (ch != '\n') {

System.out.println(result[i]);

break; }

in.close();

break; }

for (int i=0;i

app[s.charAt(i)]++;

for (int i=0;i

{

if (app[i]!=0)

{

System.out.println("字符:"+(char)i+"出现了"+app[i]+"次"); }}}}

计算器

import java.awt.*;

import java.awt.event.*;

public class Test extends WindowAdapter {

Panel p1 = new Panel();

Panel p2 = new Panel();

Panel p3 = new Panel();

TextField txt;

private Button[] b = new Button[16];

private String ss[] = { "1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "*", "0", "c", "=", "/" };

static double a;

static String s, str;

public static void main(String args[]) {

(new Test()).frame();

}

public void frame() {

Frame fm = new Frame("计算器");

for (int i = 0; i <= 15; i++) {

b[i] = new Button(ss[i]);

}

for (int i = 0; i <= 15; i++) {

p2.add(b[i]);

}

txt = new TextField(15);

txt.setEditable(false);

for (int i = 0; i <= 15; i++) {

b[i].addActionListener(new buttonlistener()); }

fm.addWindowListener(this);

p1.setLayout(new BorderLayout());

p1.add(txt, "North");

p2.setLayout(new GridLayout(4,4));

fm.add(p1, "North");

fm.add(p2, "Center");

fm.pack();

fm.setVisible(true);

}

public void windowClosing(WindowEvent e) {

System.exit(0);

}

class buttonlistener implements ActionListener { public void actionPerformed(ActionEvent e) {

Button btn = (Button) e.getSource();

if (btn.getLabel() == "=") {

jisuan();

str = String.valueOf(a);

txt.setText(str);

s = "";

} else if (btn.getLabel() == "+") {

jisuan();

txt.setText("");

s = "+";

} else if (btn.getLabel() == "-") {

jisuan();

txt.setText("");

s = "-";

} else if (btn.getLabel() == "/") {

jisuan();

txt.setText("");

s = "/";

} else if (btn.getLabel() == "*") {

jisuan();

txt.setText("");

s = "*";

} else {

txt.setText(txt.getText() + btn.getLabel()); if (btn.getLabel() == "c")

txt.setText("");

} }

public void jisuan() {

if (s == "+")

a += Double.parseDouble(txt.getText());

else if (s == "-")

a -= Double.parseDouble(txt.getText());

else if (s == "*")

a *= Double.parseDouble(txt.getText());

else if (s == "/")

a /= Double.parseDouble(txt.getText());

else

a = Double.parseDouble(txt.getText());

}}}

Java程序设计实例教程考试题

Java程序设计练习题 一、选择题 1、为使Java程序独立于平台,Java虚拟机把字节码与各个操作系统及硬件( A ) A)分开B)结合 C)联系D)融合 2、Java语言与C++语言相比,最突出的特点是( C ) A)面向对象B)高性能 C)跨平台D)有类库 3、下列Java源程序结构中前三种语句的次序,正确的是(D) A)import,package,public class B)import必为首,其他不限 C)public class,package,import D),import,public class 4、在JDK目录中,Java程序运行环境的根目录是( A ) A)bin B)demo C)lib D)jre 5、下列运算符中属于关系运算符的是(A ) A)== B).= C)+= D)-= 6、下列布尔变量定义中,正确并且规范的是( B ) A)BOOLEAN canceled=false; B)boolean canceled=false; C)boolean CANCELED=false; D)boolean canceled=FALSE; 7、下列关键字中可以表示常量的是( A ) A)final B)default C)private D)transient 8、下列运算符中,优先级最高的是( A ) A)++ B)+ C)* D)> 9、Java中的基本数据类型int在不同的操作系统平台的字长是( B ) A)不同的B)32位 C)64位D)16位

10、给一个short类型变量赋值的范围是( C ) A)-128 至 +127 B)-2147483648至 +2147483647 C)-32768至 +32767 D)-1000至 +1000 11、下列运算中属于跳转语句的是( D ) A)try B)catch C)finally D)break 12、switch语句中表达式(expression)的值不允许用的类型是( C ) A)byte B)int C)boolean D)char 13、下列语句中,可以作为无限循环语句的是( A ) A)for(;;) {} B)for(int i=0; i<10000;i++) {} C)while(false) {} D)do {} while(false) 14、下列语句中执行跳转功能的语句是( C ) A)for语句B)while语句 C)continue语句D)switch语句 15、下列表达式中,类型可以作为int型的是( C ) A)“abc”+”efg”B)“abc”+’efg’ C)‘a’+’b’D)3+”4” 17、数组中各个元素的数据类型是( A ) A)相同的B)不同的 C)部分相同的D)任意的 18、在Java语言中,被成为内存分配的运算符是( A ) A)new B)instance of C)[] D)() 19、接口中,除了抽象方法之外,还可以含有( B ) A)变量B)常量 C)成员方法D)构造方法 20、下列能表示字符串s1长度的是( A ) A)s1.length()B)s1.length C)s1.size D)s1.size() 21、StringBuffer类字符串对象的长度是( C ) A)固定B)必须小于16个字符 C)可变D)必须大于16个字符 22、构造方法名必须与______相同,它没有返回值,用户不能直接调用它,只能通过new调用。( A ) A)类名B)对象名 C)包名D)变量名 23、子类继承了父类的方法和状态,在子类中可以进行的操作是( D ) A)更换父类方法B)减少父类方法 C)减少父类变量D)添加方法 24、String、StingBuffer都是______类,都不能被继承。( C )

Java语言程序设计基础教程习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章 Java程序设计概述 练习思考题 1、 Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、 Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、 public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

java程序设计基础(含参考答案)

“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程序设计习题附答案(一)

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)。

Java程序设计实用教程_习题解答

习题 1 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件 2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。 3)使用java解释器(java.exe)来解释执行字节码文件。 3.D:\JDK 1) 设置path 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。 2) 设置classpath 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。 4.(B)javac 5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class” 6.Java应用程序主类的main申明(D)public static void main(String args[])

Java大学使实用教程复习资料

1.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确。 2.java应用程序的主类必须含有怎样的方法? 答:含有main方法。 3.“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 4.。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public的类。 6.请叙述java源程序的命名规则。 答:与public的类同名 7.源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.下列哪些语句是错的? Int x=120; Byte b=120; B=x; 答:B=x;错应为b=(byte)x 9.下列哪些语句是错的? Float x=12.0; Float y=12; Double d=12; Y=d; 答:y=d;错,应y=(float)d 10.下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的 11.下列system.out.printf语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 输出a ,-128,127 修改后输出97,-128,127 12假设有两个int类型数组: Int[] a=new int[10]; Int[] b=new int[8]; b=a; A[0]=100; B[0]的值一定是100吗? 答;一定,因为a数组与b数组引用相同。

java编程题全集题及答案

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程序设计基础课后习题参考答案 第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章 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大学实用教程1-4章知识点

Java大学实用教程 ======================================================================================= 第一章Java语言概述 1.3 Java的特点 掌握Java跨平台的原理 1.5 Java运行平台 了解JavaSE、JavaEE与JavaME的应用范围 系统变量Path的设置及其作用 将JDK工具命令的路径设置到Path变量中后,可以在任意位置运行那些命令。 系统变量ClassPath的设置及其作用 设置查找类的路径。 ClassPath中如果设置了某些路径,则必须向其中添加当前目录(.),否则JVM不会在当前目录查找类。 1.6 Java程序开发 Java程序必须有一个主类(含有main函数),作为程序执行的起点。 掌握源文件命名规则 编译Java源文件:javac Hello.java (源文件中的所有类都会被编译并生成.class文件) 运行Java程序:java Hello (执行的必须是一个主类名,不包括.class) Java Applet的运行原理:在html文件中通过标记嵌入applet代码,浏览器将相应的字节码文件下载到本地,利用其内置的Java虚拟机解释执行字节码文件,将结果显示到浏览器中。 ======================================================================================= 第二章基本数据类型和数组 2.1 标识符和关键字 标识符的命名规则:Java的标识符由字母(尽管可以使用世界上所有语言的字母,但建议只使用英文字母)、 下划线、$、数字组成,第一个字符不能是数字。Java的关键字不能作为标识符。 2.2 基本数据类型 整型常量默认为int类型,如果超出了int的表示范围,需要在后面添加l。 浮点型常量默认为double类型,如果为float常量,需要在后面添加f。 char类型:char类型本质上是一个16位的无符号整数,char c='a'与char c=97等价。有时候必须使用转义字符,例如:char c1='\'',c2='\\';(例2-1) 2.3 基本数据类型的转换 数据类型的精度顺序 char byte short int long float double 低精度类型到高精度类型可以自动转换,高精度类型向低精度类型必须强制转换。强制转换可能导致溢出或精度损失,如:byte b=(byte)130。 2.4 数据的输入与输出 System.out.print或println输出变量或者表达式的字符串表示 例如:'a'+1的输出为98,"a="+'a'+1的输出为a=a1,"a="+('a'+1)的输出为a=98 System.out.printf(控制字符串,表达式1,表达式2,...)(例2-3) 常用控制符:%s,%n,%c,%d,%f %md:输出整数,m列宽,右对齐; %-m.nf:输出浮点数,m列宽,小数点后保留n位(四舍五入),左对齐; Scanner类(例2-4) 创建读取对象:Scanner reader=new Scanner(System.in); 读取数据:调用reader.hasNextXxx()方法判断输入的是否是xxx类型的数据,再调用reader.nextXxx()方法读取数据。 2.5 数组 数组下标从0开始,下标越界运行会报错。

JavaWeb程序设计教程课后练习答案

第1章 Web应用开发简介 习题答案 1.Web在组成上包括______和______两部分。 答案: 服务器 客户端 2.谈谈对面向对象的认识。 答案: 面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。 3.介绍几种常用的框架技术。 答案: Java中常用的框架。 1.Struts Struts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。 2.WebWork WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。 3.Struts 2 Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。 4.Spring Spring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众

多的企业级应用技术。 5.Hibernate Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。 6.Ibatis 相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。 7.EasyJWeb EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。 4.IDE的用途是什么? 答案: IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。 5.Web应用服务器的用途是什么? Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

java2实用教程试题

第1章Java 语言入门 1-1开发与运行Java程序需要经过哪些主要步骤和过程? 1-2怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗? 1-3Java程序是有什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的? 1-4在运行小应用程序的html文件中可以使用codebase属性制定小应用程序的字节码所驻留的目录。如果不使用codebase属性,小应用程序的字节码文件必须和运行它的html在同一目录中,编写一个小应用程序并将它的字节码存放在某个目录中,比如c:\Boy. 把运行该小应用程序的html文件(注意其中的codebase属性): < applet code=你的小程序的字节码wdith=20 height=30 codebase=c:\boy> 存放在另一个目录中(查阅有关编写网页方面的书籍,会有更 详细的关于怎样在一个网页中嵌入一个小应用程序的讲解)。 第2章标识符、关键字和数据类型 2-1上机运行下列程序,注意观察输出的结果。

public class E { public static void main ( string args [ ] ) { for (int i=20302; i<=20302; i++) { System.out. println (( char ) i ); } } 2-2System.out. println (“你好”);可输出字符串值,也可以使用System.out. println()输出变量或表达式的值,只需使用并置 符号:“+”将变量、表达式或一个常数值与一个字符串并置即 可,如System.out. println(“”+x);System.out. println(“:” +123+“大于”+122)等。上机调试下列程序,注意观察结果,特别注意System.out. print()和System.out. println()的区 别。 public class OutputData { public static void main ( string args [ ] ) { int x=234, y=432 ; System.out. println (“:” +x+“<”+2*x); System.out. print (“我输出结果后不回车“); System.out. println (“我输出结果后自动回车到下一行”); } }

《JAVA程序设计》(含答案)

《JA V A程序设计》练习题 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A)。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 5、关于选择结构下列哪个说法正确?( B ) A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.switch结构中每个case语句中必须用break语句 D.switch结构中必须有default语句 6、while循环和do…while循环的区别是:( D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.while循环是先循环后判断,所以循环体至少被执行一次 D.do…while循环是先循环后判断,所以循环体至少被执行一次 7、关于for循环和while循环的说法哪个正确?( B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空

《Java程序设计》课后习题参考答案

习题1参考答案 1.Java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性——封装。它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。 2.简述封装的优点。 答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3.Java的基本工具有哪些? (1)javac 编译器 (2)java 解释器 (3)jdb Java 语言调试器 (4)javadoc API文档管理器 (5)javah 头文件生成器 (6)appletviewer 小应用程序浏览器 (7)javap 类文件反汇编器 4.Java开发环境是如何配置的? 答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。 习题2参考答案 1.Java语言包含哪些数据类型? 答:包含基本数据类型和复合数据类型。基本类型包括整数类型、浮点数类型、布尔类型。复合类型包括类类型(Class Type)、接口类型(Interface Type)与数组类型(Array Type)。 2.Java有多少关键字? 答:abstract, continue, for, new, switch,boolean, default, goto*, null, synchronized,break, do, if, package, this,byte, double, implements, private, threadsafe,byvalve*, else, import, protected, throw,case, extends, instanceof, public, transient,catch, false, int, return, true,char, final,

java2实用教程(第3版例子代码)

Java 2实用教程(第三版) 清华大学出版社 (编著耿祥义张跃平) 例子源代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

第一章Java 语言入门例子1 public class Hello { public static void main (String args[ ]) { System.out.println("你好,很高兴学习Java"); } } 例子2 public class People { int height; String ear; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { People zhubajie; zhubajie=new People(); zhubajie.height=170; zhubajie.ear="两只大耳朵"; System.out.println("身高:"+zhubajie.height); System.out.println(zhubajie.ear); zhubajie.speak("师傅,咱们别去西天了,改去月宫吧"); } } 例子3 import java.applet.*; import java.awt.*; public class Boy extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawString("我一边喝着咖啡,一边学Java呢",5,30); g.setColor(Color.blue);

非常经典的JAVA编程题全集(50题及答案)

【程序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++) {

java语言程序设计作业答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系? 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象! 3)两者的关系:对象是类的具体实例.。 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种?具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用? 答: 类成员的访问控制符有public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). P rivate(保护的):类中限定为private的成员只能被这个类本身访问,在类外不可见。proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点? 答: 构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有); (3)构造方法通常被声明为公有的(public);

相关文档
最新文档