搜档网
当前位置:搜档网 › Java语言程序设计课后习题答案

Java语言程序设计课后习题答案

Java语言程序设计课后习题答案
Java语言程序设计课后习题答案

Java语言程序设计(郑莉)

第二章习题答案

1.什么是对象、类,它们之间的联系

答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。

2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。

2.什么是面向对象的程序设计方法它有那些基本特征

答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。

它的特征:抽象,封装,继承,多态。

3(无用)

4.请解释类属性、实例属性及其区别。

答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。

5.请解释类方法、实例属性及其区别。

答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。

类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。

区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;

6.类的访问控制符有哪几种具体含义及其区别。

答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。

区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。

7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用

答:类成员的访问控制符有 public,private,protecte及无修饰符.

public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限).

Private(保护的):类中限定为private的成员只能被这个类本身

访问,在类外不可见。

proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。

无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。

8简述构造方法的特点答:构造方法主要有以下特点:

(1)构造方法的方法名与类名相同;

(2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public);

(4)构造方法可以有任意多个参数;

(5)构造方法的主要作用是完成对象的初始化工作;

(6)构造方法不能在程序中显式的调用;

(7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。

9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法

答:

用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。

10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean).

声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子:

Atient april=new Patient();

(“zhangli”)

(‘f’);;

(330;

;

(true);

那么:”+());

”+());

”+());

(“weught: ”+());\

”+());

声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。

答:

public class Patient

{

private String name;

private char sex;

private int age;

private float weight;

private boolean allergies;

public void setname(String a)

{

name=a;

}

public void setsex(char b)

{

sex=b;

}

public void setage(int c)

{

age=c;

}

public void setweight(float d)

{

weight=d;

}

public void setallergies(boolean e)

{

allergies=e;

}

public String getname(){return name;}

public char getsex(){return sex;}

public int getage(){return age;}

public float getweight(){return weight;}

public boolean getallergies(){return allergies;}

}

public class Text

{

public static void main(String args[])

{

Patient april=new Patient();

("ZhangLi");

('f');

(33);

(154.72f);

(true);

"Name: "+());

"sex: "+());

"age: "+());

"weight: "+());

"allergies: "+());

}

}

11:声明并测试一个复数类,其方法包括toString()及复数的加、减、乘运算。

答:public class Complex

{

private float a;

private float b;

public String toString()

{if(a!=0)

return(a+"i"+"+"+b);

else return(""+b);

}

public Complex(float a,float b)

{

=a;=b;

}

public void Add(Complex p)

{

+=;

+=;

}

public void Decrease(Complex p)

{

=;

=;

}

public void Multiply(Complex p)

{

=*;

=*;

}

}

public class ComplexTexter

{

public static void main(String args[])

{

Complex a=new Complex(2,4);

Complex b=new Complex(5,8);

(b);"\n");

(b);"\n");

(b);"\n");

}

}

12:什么是UML它由哪几部分组成

答:

UML是图形化()即可视化的建模语言,成为面向对象建模的标准语言。

它由四部分组成:(1)视图(2)图(3)模型元素(4)通用机制

13. 常用的类与类之间的关系有哪几种。

答:有关联、依赖、流、泛化、实现、使用。

14. 考虑学院、系及教员应该具有哪些属性,并画出它们之间关系的类图。

第三章课后习题答案

1.设N为自然数:

n!=1*2*3*….*n

称为n的阶乘,并且规定0!=1.试编程计算2!,4!,6!he 10!.并将结果输出到屏幕上。

答:

public class Mul

{

public static void main(String args[])

{

int i,n;

float s;

for(n=0;n<=10;n=n+2)

{

if(n==0)

"0!=1\n");

else

{s=1;

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

s=s*i;

"!="+s+"\n");

}

}

}

}

2.编写程序,接收用户从键键盘上输入的三个整数x,y,z..从中选出最大和最小者,并编程实现。

答:public class Math{

public static void main(String args[]){

int[] IntArg = new int[];

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

IntArg[i] = (args[i]);

}

int max,min;

max=IntArg[0]>IntArg[1]IntArg[0]:IntArg[1];

max=max>IntArg[2]max:IntArg[2];

min=IntArg[0]

min=min

"max="+max);

"min="+min);

}

}

3.求出100一枚的宿舍,并将这些数在屏幕上5个乙杭地显示出来。答:

public class Su{

public static void main(String args[]){

int n,i,k=0,y;for(n=2;n<=100;n++){

y=1;

for(i=2;i

if(n%i==0)

{y=0;break;}

if(y==1){

k++;

" ");

if(k%5==0)

"\n");

}

}

}

}

4.使用类,生成100个0---99之间的随机整数,找出他们之中的最大值和最小值,并统计大于50的整数个数。

public class Random{

public static void main(String[] args)

{

int MinNum,MaxNum,n=0;

int[] array=new int[100];

array[0]=(int)()*100);

MinNum=array[0];

MaxNum=array[0];

"数列为:");

" ");

for(int i=0;i<100;i++)

{

array[i]=(int)()*100);

if(array[i]>50)

n++;

if(array[i]>=MaxNum)

MaxNum=array[i];

if(array[i]<=MinNum)

MinNum=array[i];

" ");

}

"MinNum="+MinNum);

"MaxNum="+MaxNum);

"大于50的整数个数有:"+n);

}

}

5.接收用户从键盘上输入的两个整数,求两个数的最大公约数和最小公倍数,并输出。

public class Test2

{

public static void main(String[] args)

{

int[] I = new int[];

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

I[i] = (args[i]);

}

int m,n,temp,t;

if(I[0]

{

temp=I[0];

I[0]=I[1];

I[1]=temp;

}

m=I[0];

n=I[1];

t=m%n;

while(t!=0)

{

m=t;

n=m;

t=m%n;

}

"两个数的最大公约数为:"+n);

"两个数的最小公倍数为:"+I[0]*I[1]/n);

}

}

6. 从键盘上输入一件物品的价格(范围在~元.),假设用户支付了一张5元纸币,请列出一种找零的方案,使得纸币及硬币的个数最少。如元,应为两元一张、一元一张、五角一个、一角一个、五分一个、二分一个、一分一个。

;

public class Price{

public static void main(String args[]){

"enter a number");

float a=();

int c=(int)(a*100);

int b=500-c;

"找零如下:");

if(b/200!=0){"张2元");b-=(b/200)*200;}

if(b/100!=0){"张1元");b-=(b/100)*100;}

if(b/50!=0){"张5角");b-=(b/50)*50;}

if(b/20!=0){"张2角");b-=(b/20)*20;}

if(b/10!=0){"张1角");b-=(b/10)*10;}

if(b/5!=0){"个5分");b-=(b/5)*5;}

if(b/2!=0){"个2分");b-=(b/2)*2;}

if(b!=0)"个1分");

}

}

;public class Keyboard{

static BufferedReader inputStream =new BufferedReader(new InputStreamReader);

public static int getInteger(){

try{

return().trim()).intValue());

}catch(Exception e){

();

return 0;

}

}

public static String getString(){

try{

return());

}catch(IOException e){

return"0";

}

}

public static float getFloat(){

String s="";

try{

BufferedReader in = new BufferedReader(new InputStreamReader);

s=();

return(s));

}

catch(IOException e)

{

"输入非法!");

return(0.0f);

}

}

}

运行结果:

7.什么是异常解释抛出、捕获的含义。

答:异常又称为例外,是特殊的运行错误对象,在程序中可以强制编译器来处理程序运行中的发生的并非由程序本身所造成的错误;抛出异常:把生成异常对象并提交的过程称为抛出异常;

抛出异常是java中一个程序处理动作,检查异常时要么在方法中声明一个异常抛出,用try-catch语句捕获异常,并进行处理。

8.简述Java的异常处理机制。

答:java中声明了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系

统的损害,从而保证了整个程序运行的安全性。

9.系统定义的异常与用户自定义的异常有何不同如何使用这两类异常

答:系统定义的特定情况出现的问题,而此时用来对可能遇到的问题进行处理。用户定义的是自己觉得可能会出现问题时,需要处理的。这样避免程序中断或是出现未知错误。

系统异常有两种一种是运行时异常,一种是普通异常,普通异常要求用户捕获或者抛出的,不补货或者抛出就会编译不通过。运行时异常编译可以通过,但是运行时才显露出来。

10.用户如何自定义异常编程实现一个用户自定义异常。

(1)定义mytest

import .*;

public class mytest{

private static int quotient(int number,int denominator)throws

DivideByZeroException{

if(denominator==0)

throw new DivideByZeroException();

return(number/denominator);

}

public static void main(String args[]){

int number1=0,number2=0, result=0;

try{

"输入第一个数字:");

number1=()).intValue();

"输入第二个数字:");

number2=()).intValue();

result=quotient(number1,number2);

}

catch(NumberFormatException e){

(-1);

}

"/"+number2+"="+result);

}

}

(2)定义DivideByZeroException

public class DivideByZeroException extends ArithmeticException{

public DivideByZeroException(){

super("除数不能为0!");

}

}

(3)定义Keyboard

import .*;

public class Keyboard{

static BufferedReader inputStream=new BufferedReader(new InputStreamReader);

public static int getInteger(){

try{

return ().trim()).intValue());

}catch(Exception e){

();

return 0;

}

}

public static String getString(){

try{

return());

}catch(IOException e){return "0";}

}

}

第四章课后习题答案

1.子类将继承父类所有的属性和方法吗为什么

答:不,子类不能直接访问从父类中继承的私有属性及方法,但可以对公有及保护方法进行访问。

2.方法的覆盖与方法的重载有何不同

答:覆盖是运用在子类中实现与父类相同的功能,但采用不同的算法或公式;在名字相同的方法中,要做比父类更多的事情;在子类中需要取消从父类继承的方法。

3.声明两个带有无参构造方法的两个类A和B,声明A的子类C,并且声明B为C的一个成员,不声明C 的构造方法。编写测试代码,生成类C的实例对象,并观察结果。

明一个基类A,它只有一种非默认构造方法;声明A的子类B,B 具有默认方法及非默认方法,并在B的构造方法中调用基类A的构造方法。

明一个类,它具有一种方法,此方法被重载三次,派生一个新类,并增加一种新的重载方法,编写测试类验证四种方法对于派生类验证四种方法对于派生类都有效。

明一个具有final方法的类,声明一个派生类,并试图对这个方法进行重写,会有什么结果。

明一个final类,并试图声明其派生类,会有什么结果。

么是抽象类抽象类中是否一定要包括抽象方法

答:抽象类是一个不完全的类,不能使用new方法进行实例化。抽象类可以包含抽象方法,也可以不包含抽象方法,但有抽象方法的必须是抽象类。

和super分别有哪些特殊含义都有哪些种用法

答:this 表示当前类;super 表示调用父类。

在定义类的时候用到,this是当前对象的引用,super是当前对象的父类对象的引用,一般的都是把super用在构造函数中。

10.完成下面父类及子类的声明:

(1) 声明Student类属性包括学号、姓名、英语成绩、数学成绩、计算机成绩和总成绩。方法包括构造方法、get方法、 set方法、toString方法、equals方法、compare方法(比较两个学生的总成绩,结果分为大于、小于、等于),sum方法(计算总成绩)和testScore方法(计算评测成绩)。

注:评测成绩可以取三门课成绩的平均分,另外任何一门课的成绩的改变都需要对总成绩进行重新计算,因此,在每一个set方法中应调用sum方法计算总成绩。

public class Student{

String id;

String name;

float scoreOfenglish;float scoreOfmath;

float scoreOfcomputer;

float scoreOfsum;

;

public class test4_10{

public static void main(String args[]){

Student su=new Student("001","苏轼",56.00f,87.00f,95.00f);

Student du=new Student("002","杜甫",86.00f,75.00f,80.00f);

Student bai=new Student("003","白居易",42.00f,77.00f,65.00f);

Student liu=new Student("004","柳宗元",67.00f,67.00f,67.00f);

StudentXW ou=new StudentXW("005","欧阳修",89.00f,98.00f,90.00f,"数学代表");

StudentXW wang=new StudentXW("006","王安石",98.00f,87.00f,36.00f,"英语代表");

StudentBZ li=new StudentBZ("007","李白",89.00f,87.00f,87.00f,"班长");

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

"\n评测成绩:"+new DecimalFormat("").format()));

}

}

运行test4_10的结果如下:

(很好玩吧,李白,我让你挂科。)

11.包有什么作用如何创建包和引用包中的类

答:包是一种松散的类的组合,一般不要求处于同一包中的类型有明确的相互关系,但由于同一包中的类在默认情况下可以相互访问,所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。利用包来管理类,可实现类的共享与复用。

在操作系统中,目录用来组织文件,设置权限。只要在要用到包中类的时候,在该引用类的第一行加上:package (包的全路径)即可。第五章课后习题答案

1.什么是接口接口起什么作用接口与抽象类有何区别

答:Java中的接口是一系列方法的声明,是一些方法特征的集合,

一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

作用:接口是面向对象的一个重要机制,使用接口可以实现多态继承;接口中的所有方法都是抽象的,这些抽象方法由实现这一接口的不同类型来具体;接口还可以用来实现不同类之间的常量共享。与抽象类不同的是:接口允许在看起来不相干的类之间定义共同行为。

2.试编程证明接口中的属性都隐含为static及final,所有的方法都为public。

什么情况下,可以对父类对象的引用进行强制类型转换,使其转化成子类对象的引用

答:一个对象被塑型为父类或接口后,可以再一次被塑型回到它原来所属的类,即转化成原类对象的引用。

4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返回此接口的引用。

uck().fuck();

}

}

运行结果:

5.声明一个具有内部类的类,此内部类只有一个非默认的构造方法;声明另外一个具有内部类的类,此内部类继承第一个内部类。明一个具有两个方法的类,在第一个方法中调用第二个方法。声明此类的一个子类,并在子类中重写第二个方法。生成一个子类的对象,并将其塑型为基类,调用第一个方法,解释会发生什么

第4章习题10的基础上,声明测试类完成对多态性的测试。

(1)在主方法中声明Student类的数组(含五个元素)

(2)生成五个对象存入数组:其中三个Student类的对象、一个StudentXW类的对象、一个StudentBZ类的对象。

(3)将方法testScore()发送给数组的每一个元素,输出结果,并分析具体执行的是哪一个类中的方法。

;

public class test5_8{

public static void main(String args[]){

Student student[]={

new Student("001","苏轼

",56.00f,87.00f,95.00f),

new Student("002","杜甫

",86.00f,75.00f,80.00f),

new Student("003","白居易

",42.00f,77.00f,65.00f),

new StudentXW("006","王安石

",98.00f,87.00f,36.00f,"英语代表"),

new StudentBZ("007","李白

",89.00f,87.00f,87.00f,"班长")

};

for(int i=0;i<5;i++)

{

"学生名字:"+student[i].getname()+"\t评测成绩:"+new DecimalFormat("").format(student[i].testScore()));

}

}

}

运行结果:

在主函数定义student数组的五个对象

Student student[5]={

new Student(),

new Student(),

new Student(),

new StudentXW(),

new StudentBZ()

}中,输出时,第1、2、3个调用的是Student中的方法,第4个调用的是StudentXW的方法,第5个调用的是StudentBZ的方法。第六章课后习题答案

1.将本章例6-1至6-18中出现的文件的构造方法均改为使用File 类对象作为参数实现。

个人理解:File类只能对整文件性质进行处理,而没法通过自己直接使用()或者是()类似方法对文件内容进行写或者读取。注意:是直接;下面只提供一个例2变化,其他的你自己做,10几道啊,出这题的人真他妈有病。

import .*;

public class test6_2{

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

String fileName = "D:\\";

File writer=new File(fileName);

();

BufferedWriter input = new BufferedWriter(new FileWriter(writer));

("Hello !\n");

("this is my first text file,\n");

("你还好吗\n");

();

}

}

运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter 中newLine()实现换行)

2.模仿文本文件复制的例题,编写对二进制文件进行复制的程序. ;

class CopyMaker {

String sourceName, destName;

BufferedInputStream source;

BufferedOutputStream dest;

int line;

opy(s1, s2))

"复制成功");

else

"复制失败");

}

}

运行前的两个文本:和(为空)

运行后:

3.创建一存储若干随机整数的文本文件,文件名、整数的个数及范围均由键盘输入。

;

import class memory {

private String name;

private int count;

private int Max;

private int Min;

public memory(String n,int c,int min,int max){

=n;

=c;

=min;

=max;

}

public void startmemory(){

try{

FileWriter out=new FileWriter(name);

int limit=Max-Min;

Random random = new Random();

for (int i=1;i<=count;i++){

int number=Min+(limit); " ");

(number+" ");

}

();

}catch(IOException iox){

"方法startmemory()有问题");

}

}

}

;

import class test6_3 {

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

别使用FileWriter和BufferedWriter往文件中写入10万个随机数,比较用时的多少。

;

public class fileWriter {

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

long time = ();;

}

}

运行结果:

;

public class bufferedWriter {

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

long time = ();;

}

}

运行结果:

有用时可知: BufferedWriter比FileWriter写入的速度快, 当需要写入大量内容,前者效率高。

5.生成一html文件,使其能显示2的幂次(0~9)的表格如下:

;

public class test6_5{

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

BufferedWriter fuck =new BufferedWriter( new FileWriter(""));

("

height=250>");

();

("

");

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

("

");

}

("

Power of 2

align=center>Value

"+i+""+(i, 2)+"
");

();

();

}

}

运行结果:

6.用记事本程序创建一篇包含几十个英语单词的小文章,要求从屏幕输出每一个单词。

;

public class test6_6 {

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

FileReader fr=new FileReader("");

int s;

while((s=())!=-1){

if(s>='a'&& s<='z'|| s>='A' && s<='Z')

else

"\n");

}

();

}

}

运行结果:

7.从键盘敲入一系列字母,将其存储到文件中,对其进行升序排序后,存储到另一个文件,并显示在屏幕上。

;

import class test6_7 {

建一个学生类(包括姓名、年龄、班级、密码),创建若干该类的对象并保存在文件中(密码不保存),从文件读取对象后显示在屏幕上。

;

public class tset6_8 {

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

Student student[]={

new Student("苍井空

",19,101,"changjingkong"),

new Student("吉沢明

",19,103,"jizeming"),

new Student("武藤兰

",20,104,"wutenglan"),

new Student("我爱女优

",21,105,"woainvyou")};

ame);

"我的年龄:"+student[i].age);

"我的班级:"+student[i].grade);

"我的密码:"+student[i].secret);

}

else{

"第"+(i+1)+"个女学生名字:

"+student[i].name);

"第"+(i+1)+"个女学生年龄:"+student[i].age);

"第"+(i+1)+"个女学生班级:

"+student[i].grade);

"第"+(i+1)+"个女学生密码:

"+student[i].secret);

}

}

}

}

9.对例6—14中的压缩程序段进行修改,是压缩流经过缓冲类。比较两种方法在对大的文件进行压缩时的效率。

;

import class test6_9f{

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

long time = ();

FileInputStream in = new FileInputStream("");

GZIPOutputStream out = new GZIPOutputStream(

new

FileOutputStream(""));

"Writing compressing file from to ");

int c;

while((c = ()) != -1) (c); Reading;

}

}

运行结果:

;

import class test6_9b{

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

BufferedInputStream in = new BufferedInputStream(new FileInputStream(""));

GZIPOutputStream out = new GZIPOutputStream(

new BufferedOutputStream(

new FileOutputStream("")));

"Writing compressing file from to ");

int c;

long time = ();

Reading;

}

}

运行结果:

以上2个类的运行用时比较,可见对大文件进行压缩,经过缓冲流的效率要高得多。

10.一家杂货店的店主,需要查询、输入、修改任何一件商品的品名、价格、库存量信息。请用随机存取文件满足其要求,可以更新、查询信息。每件商品的标志为其记录号。

ength>8)

(),0, , 0,8);ength);ength>8)

(),0, , 0,8);

else

(),0,,0,().length);

}

public double getPrice() {

return Price;

}

public void setPrice(double price) {

= price;

}

public int getNumber() {

return Number;

}

public void setNumber(int number) {

= number;

}

public int getCount() {

return Count;

}

public void setCount(int count) {

= count;

}

}

;

public class Work{

String FileName;

public Work(String FileName){

=FileName;

}

ength>8)

(),0,borrow,0,8);

else

(),0,borrow,0,().length);

for(int i=0;i<8;i++)

(borrow[i]);

();

}

组的声明与数组元素的创建有什么关系

答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫”。

类的对象与数组有什么关系什么时候适合使用数组,什么时候适合使用Vector

答:vector是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且类型相同的对象;对于存储固定类型相同的对象使用数组,对于存储不同类型或者动态调整数组大小的情况使用Vector。3.与顺序查找相比,二分查找有什么优势使用二分查找的条件

答:对于大数据量中进行查找时二分查找比顺序查找效率高得多;条件是已排序的数组。

4.试举出三种常见的排序算法,并简单说明其排序思路。

答:①选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再重复地从未排序子序列中选取一个最小元素,把它加到已经排序的序列中,作为已排序子序列的最后一个元素,直到把未排序列中的元素处理完为止。

②插入排序:是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处,直到将全部数据都插入为止。

③二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

5.声明一个类People,成员变量有姓名、出生日期、性别、身高、体重等;生成10个People类对象,并放在一个以为数组中,编写方法按身高进行排序。

1989年8月13日1958年8月29日1963年2月17日1769年8月15日1983

年11月11日etHeight()

temp=people[j];

people[j]=people[i];

people[i]=temp;

}

}

"按身高从小到大排序后的结果如下:");

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

"\n");

}

}

运行结果:

6.声明一个类,此类使用私有的ArrayList来存储对象。使用一个Class类的引用得到第一个对象的类型之后,只允许用户插入这种类型的对象。

;

}

else{

"只允许插入"+getClassType()+"类的对象.");

}

}

public ArrayList getMan() {

return man;

}

public Class getClassType() {

return classType;

}

public Fuck(){}

}

出一个二维数组的鞍点,即该位置上的元素在所在行上最大,在所在列上最小。(也可能没有鞍点)

ength; j++)

{ Array[i][j] = ();

if(j==series-1) {

max = Array[i][0];

for (int z = 1; z < series; z++)

if (Array[i][z] > max)

{

max = Array[i][z];

R[i] = z;

}

}

}

for (int j = 0; j < Array[0].length; j++)

{

max = Array[0][j];

for (int z = 1; z < row ; z++)

if (Array[z][j] < max)

{

max = Array[z][j];

S[j] = z;

}

}

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

{

if(S[R[i]]==i)

{

"鞍点:"+"Array["+i+"]["+R[i]+

"]:"+Array[i][R[i]]+"\n");

T=true;

}

}

if(T==false)

"没有鞍点");

}

}

运行结果:

8. 声明一个矩阵类Matrix,其成员变量是一个二维数组,数组元素类型为int,设计下面的方法,并声明测试类对这些方法进行测试。

(1)构造方法。

Matrix() ength; j++)

+ " ");

}

}

public void transpose() {ength; i++) {

for (int j = 0; j < ; j++)

+ " ");

}

}

public boolean isTriangular() {ength; j++) {

if ((i > j) && (array[i][j] != 0)) {

flag = false;

}

}

}

return flag;

}

public boolean isSymmetry() { ength; j++) {

if (array[i][j] == array[j][i]) {

Symmetry = false;

}

}

}

return Symmetry;

}

public void add(Matrix b) { ength; j++) {

[i][j] = array[i][j] + [i][j];

}

}

}

}

程和线程有何区别,Java是如何实现多线程的。

答:区别:一个程序至少有一个进程,一个进程至少有一个线程;线程的划分尺度小于进程;进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。Java程序一般是继承Thread 类或者实现 Runnable接口,从而实现多线程。

2.简述线程的生命周期,重点注意线程阻塞的几种情况,以及如何重回就绪状态。

答:线程的声明周期:新建-就绪-(阻塞)-运行--死亡

线程阻塞的情况:休眠、进入对象wait池等待、进入对象lock池等待;

休眠时间到回到就绪状态;在wait池中获得notify()进入lock 池,然后获得锁棋标进入就绪状态。

3.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。

(注:两个类,相同一个测试类)

写一个多线程程序实现如下功能:线程A和线程B分别在屏幕上显示信息“…start”后,调用wait等待;线程C开始后调用sleep 休眠一段时间,然后调用notifyall,使线程A和线程B继续运行。线程A和线程B恢复运行后输出信息“…end”后结束,线程C在判断线程B和线程A结束后自己结束运行。

start");

try {

wait();

} catch (InterruptedException e) {

();

}

+ "..end");

}

public synchronized void notifyall() {

notifyAll();

}

public static void main(String args[]) {

test8_4 test = new test8_4();

现一个数据单元,包括学号和姓名两部分。编写两个线程,一个线程往数据单元中写,另一个线程往外读。要求没写一次就往外读一次。

tart();

new Write(data).start();

}

}

运行结果:

6.创建两个不同优先级的线程,都从1数到10000,看看哪个数得快。

(注:线程的优先级别越高低与执行速度没有绝对关系!)

写一个Java程序,以说明较高优先级的线程通过调用sleep方法,使较低优先级的线程获得运行的机会。

(这里可以借鉴课本例8—13)

etPriority(2);

runners[1].setPriority(5);

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

runners[i].start();

}

}

}

运行结果:

8.主线程控制新线程的生命,当主线程运行一段时间后,控制新线程死亡,主线程继续运行一段时间后结束。

(注:main函数就是主线程,程序里其他的Thread都属于子线程。可以参考课本的例8—1)

;

/* while(i>0){

result=result*i;

i--;

}*/

"the new thread of "+num+"is "+result);

"new thread ends");

}

}

;

SonThread newThread = new SonThread(10);

();

两个线程模拟存、取货物。一个线程往一对象里放货物(包括品名、价格),另外一个线程取货物。分别模拟“放一个、取一个”和“放若干个、取若干个”两种情况。

两个线程模拟对话,任何一个线程都可以随时收发信息。

(这道题本人搞不清楚,暂且用网上的给大家参考下。

听说要用到:

()获取输入流用于“接收”

()获取输出流用于“发送”

)

;

import .*;

import .*;

public class test8_10 {

public static void main(String[] args) {

try {

;

quals("BYE"))

done = true;

}

} finally {

();

}

} catch (IOException e) {

();

}

}

}

第九章课后习题答案

1.编写一个程序,该程序绘制一个5×9的网络,使用drawLine方法。

写一个程序,该程序以不同的颜色随机产生三角形,每个三角形用不同的颜色进行填充。

写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。

;

import .*;

import class test9_3 extends JApplet {

loatValue();写一个Applet,向其输入五个数,然后以条形

图(bar graph)的形式来表示这些数。

5.编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。

写一个“猜数”程序:该程序随机在1到100的范围内选择一个供用户猜测的整数,然后改程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。

etDefaultButton(buttonOfSure);nit();

}

}

运行结果:

7.练习使用JscrollPane。使用BorderLayout将JFrame布局分为左右两块;左边又使用GridLayout,包含三个按钮,右边在JLabel 里显示一幅图画,按钮控制JLabel是否显示滚动条。

nit();

}

}

运行结果:

显示滚动条

点击“滚动”按钮后,没显示滚动条

8.练习使用JList。建立两个JList,双击其中任何一个中的某一项,此项就会跑到另外一个JList中。

etElementAt(index);

(o);

}

if()==jList2){

int index = ());

Object o = ().getElementAt(index);

(o);

}

}

@Override

public void mousePressed(MouseEvent e) {

nit();

}

}

运行结果:

9.练习使用JComboBox。包括一个JLable、一个JComboBox,可以通过输入或者选择JComboBox中的某一项来控制JLable中文字的大小。

oString();

int intFontSize = (s);

(new Font("", 0, intFontSize));

nit();

}

}

运行结果:

10.练习使用JTable。包括姓名、学号、语文成绩、数学成绩、总分五项,单击总分会自动将语文数学成绩相加。

11.练习使用对话框。包括一个JLable和两个JButton,按任何一个JButton都会产生一个对话框,按确定后将输入内容在JLable 中显示出来。

nit();

}

}

运行结果:

(下面的题目有空再做)

12.练习使用JMenu、JFileChooser、JColorChooser。通过菜单可以打开文件选择对话框,来打开某一指定文本文件,通过菜单可打开颜色选择对话框控制显示文本的颜色。

13.编写一个图形用户界面,包括三个JSlider对象和三个JTexField对象。每个JSlider代表颜色中的红、绿、蓝三部分,它们的值从0到255,在相应的JTextField中显示各个JSlider 的当前值。用这三个值作为Color类构造方法的参数创建一个新的Color对象,用来填充一个矩形。

14.编写Application程序,构造一CUI,实现对两个数的相加、减、乘、除功能。用含有三个JTextField、一个JButton、三个JTextField分别用于输入两个数字和运算符号,结果用JLable显示出来。

15.扩充上一个练习,先弹出一对话框,输入密码正确,方能进行计算界面。

16.改造上一个练习为Applet。

17.编写一个程序,以随机的颜色和宽度绘制10条长度随机的直线,使用对象和Fraphics2D类的方法来绘制直线。该绘制区域设置为300×400.

18.编写一个含菜单的应用程序,包含File和Type两个菜单,File 菜单中包括“打开”和“退出”两个选项,打开菜单会弹出一个JFileChooser对话框,Type菜单包含一系列复选框,可用于确定文件选择对话框的选择类型。

java单选题库-博学谷

一、单选题 属于以下哪种语言() A. 机器语言 B. 汇编语言 C. 高级语言 D. 以上都不对 答案:C 解析:Java是一门高级编程语言 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 2.下列目录中,哪一个是用来存放JDK核心源代码的 A. lib目录 B. src目录 C. jre目录 D. include目录 答案:B 解析:JDK核心源代码存放在src文件夹下 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 3.下面命令中,可以用来正确执行HelloWorld案例的是() A. java HelloWorld B. java C. javac HelloWorld D. javac

答案:A 解析:java命令负责运行编译后的.class文件,不需要文件后缀名。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 4.下面关于配置path环境变量作用的说法中,正确的是() A. 在任意目录可以使用javac和java命令 B. 在任意目录下可以使用class文件 C. 在任意目录可以使用记事本 D. 在任意目录下可以使用扫雷游戏 答案:A 解析:path环境变量的作用是在任意目录下都可以使用javac和java命令。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 5.下列选项中,可以正确配置classpath的命令是() A. set classpath =C:\Program Files\Java\ set classpath : C:\Program Files\Java\ classpath set =C:\Program Files\Java\ classpath set : C:\Program Files\Java\ 答案:A 解析:配置classpath的命令是set classpath=xxx,并且等于号两边不要有空格。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 6.下面选项中,完全面向对象的编程语言是() A. C B. COBOL C. JAVA D. FORTRAN 答案:C

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

Java编程基础知识点汇总及习题集答案

J a v a编程基础知识点汇总及习题集答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

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

Platform Micro Edition,微型版),用于小型电子设备上的软件开发。 2、JDK,JRE,JVM的作用及关系作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 path环境变量:存放可执行文件的存放路径,路径之间 用逗号隔开 classpath环境变量:类的运行路径,JVM在运行时通过classpath加载需要的类 4、重点掌握两个程序 :Java编译器工具,可以将编写好的Java文件(.java)编译成Java字节码文件(.class); :Java运行工具,启动Java虚拟机进程,运行编译器生成的字节码文件(.class) 5、一切程序运行的入口public static void main (String args []){ World!”); } 课堂笔记

自考Java语言程序设计试题及答案解析

自考J a v a语言程序设计试题及答案解析 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡” 的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5 4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展

B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( )方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并调用start( )方法。 D.声明实现Runnable接口,在类内实现run( )方法,声明和创建线程对象,并让该对象调用start( )方法。 8.大多数采用缓冲式输入数据文件的程序的主要目的是 A.用readLine( )方法按行输入字符 B.提高输入速度 C.更快地读入字符数据 D.用read( )方法输入任意个字符 9.在打开文件对话框时,可用FileFilter类设置筛选条件,在以下供选择的方法中,是 FileFilter类预设的方法之一的是 A.setFileFilter( ) B.addFileFilter( ) C.accept( ) D.setDescription( ) 10.对访问数据库的Java程序来说,DriverManager类的作用是

Java基础知识笔试题及答案2

1.Java中提供了名为()的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.https://www.sodocs.net/doc/0c11470574.html,ng包的()方法比较两个对象是否相等,相等返回true。 A.toString()B.equals()C.compare()D.以上所有选项都不正确3.使用()方法可以获得Calendar类的实例。 A.get()B.equals()C.getTime()D.getInstance() 4.下面的集合中,()不可以存储重复元素。 A.Set B.Collection C.Map D.List 5.关于Map和List,下面说法正确的是()。 A.Map继承List B.List中可以保存Map或List C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map 6.给定如下Java代码,编译运行的结果是()。 Import java.util.*; public class Test { public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”); String s=(String)list.get(1); System.out.println(s); }

A.编译时发生错误B.运行时引发异常C.正确运行,输出:A D.正确运行,输出:B ###############################################################3 3.所有异常的父类是()。 A.Error B.Throwable C.RuntimeException D.Exception 4.下列()操作不会抛出异常。 A.除数为零B.用负数索引访问数组 C.打开不存在的文件D.以上都会抛出异常 5.能单独和finally语句一起使用的块是()。 A.try B.throws C.throw D.catch 6.在多重catch块中同时使用下列类时,()异常类应该最后列出。 A.Exception B.ArrayIndexOutOfBoundsException C.NumberFormatException D.ArithmeticException 7.执行下面的代码会引发()异常。 String str=null; String strTest=new String(str); A.InvalidArgumentException B.IllegalArgumentException C.NullPointerException D.ArithmeticException 8.这段代码的输出结果是()。 try{ System.out.print(“try,“); return; } catch(Exception e){ System.out.print(“catch,“); } finally { System.out.print(“finally”);

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

Java基础试题及其答案

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复 的 c) HashMap Map(key/value)重复定义:hashCode、 equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5;

自考Java语言程序设计试题及答案解析

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡” 的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5

4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展 B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( ) 方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并 调用start( )方法。 D.声明实现Runnable接口,在类内实现run( )方法,声明和创建线程对象,

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

JAVA入门练习50题(含答案)

题目:古典问题:有一对兔子,从出生后第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); } }

JAVA基础面试题经典

JAVA基础面试题经典

第一阶段题库 基础知识部分: 1.JDK是什么?JRE是什么? a)答:JDK:java开发工具包。JRE:java运行时 环境。 2.什么是java的平台无关性? a)答:Java源文件被编译成字节码的形式,无论 在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3.在一台电脑上配置java环境,path起什么作 用?如何配置? a)答:path的作用是在DOS环境下,能在任意 位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。 b)在环境变量中找到path变量,把bin文件夹 的绝对路径加上即可。 4.什么样的标识符是合法的? a)由字母、数字、_和$组成,长度不限。其中字 母能够是大写或小写的英文字母,数字为0到9。

b)标识符的第一个字符不能是数字。 c)标识符区分大小写。 d)标识符不能包含空格。 5.Java有几种基本数据类型? a)byte,short,int,long,char,boolean,float,double 6.什么是隐式类型转换?什么是显示类型转换? a)当将占位数少的类型赋值给占位数多的类型 时,Java自动使用隐式类型转换。 b)当把在级别高的变量的值赋给级别底变量时, 必须使用显示类型转换运算。 7.&&和&区别,||和|区别? a)&&和||是短路与,短路或,当左边的表示式能 判断当前结果,则不判断右边的表示式。 b)而& 和|则将两边的表示式都运算完毕后,再 算结果。 8.break,continue区别? a)break结束最近的一个循环,continue结束当 次循环,进入下次循环。 9.类的命名规则是什么? a)如果类名使用拉丁字母,那么名字的首写字母 使用大写字母。

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

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

第1章Java程序设计概述 1.9 练习思考题 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试题及答案

JA V A语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。)(每题2分) 没有注明选择几项的,只选择一项 1、JAVA所定义的版本中不包括:() A、JAVA2 EE B、JAVA2 Card C、JAVA2 ME D、JAVA2 HE E、JAVA2 SE 2、下列说法正确的是() A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3、Java中,在如下所示的Test类中,共有()个构造方法。 public class Test{ private int x; public Test(){ x=35; } public void Test(double f){ =(int)f; } public Test(String s){} } A、0 B、 1 C、 2 D、3 4、变量命名规范说法正确的是() A、变量由字母、下划线、数字、$符号随意组成; B、变量不能以数字作为开头; C、A和a在java中是同一个变量; D、不同类型的变量,可以起相同的名字; 5、下列javaDoc注释正确的是() A、/*我爱北京天安门*/

B、quals("john") C、"john" = "john" D、"john".equals(new String("john")) 6、下列输出结果是() int a = 0 ; while ( a < 5 ) { switch(a){ case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; } } ( a ) ; A、0 B、5 C、10 D、其他 7、下列代码输出结果是( ) int i = 10; while ( i > 0 ){ i = i + 1; if ( i = =10 ){ break; } } A.while循环执行10次 B.死循环 C.循环一次都不执行 D.循环执行一次 8、下面有关for循环的描述正确的是() A、for循环体语句中,可以包含多条语句,但要用大括号括起来 B、for循环只能用于循环次数已经确定的情况 C、在for循环中,不能使用break语句跳出循环 D、for循环是先执行循环体语句,后进行条件判断 9、下列()属于引用数据类型(选择两项) A、String B、char C、用户自定义的Student类类型

2016年10月自考Java语言程序设计(一)04747

2016年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一)试卷 (课程代码 04747) 本试卷共9页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。 第一部分选择题(共l0分) 一、单项选择题(本大题共l0小题,每小题l分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。错涂、多涂或未涂均无分。淘宝店铺自考达人 V信1297755429 1.在下述字符串中,不是Java余言关键字的是 A.int B.static C.java D.try 2.要作下列数据类型转换,需进行强制类型转换才能实现的是 A.从int到char B.从int到 long C.从lloat到 double D.从byte到 int 3.在以下供选择的概念中,属于面向对象语言重要概念或机制的是 A.方法 B.模块 C.线程 D.继承 4.在下述Java程序代码中,能正确创建数组的是 A.int myA[5]={1,2,3,4,5); B.int myA[]=new int(5); C.int myA[];myA[]=new int[5]; D.int[]myA={1,2,3,4,5,6};5.某Java程序的类A需要利用Swin9创建无边框窗口,则A需要继承的类是A.JWindow B.JApplet C.JFrame D.JDialog 6.在以下供选的鼠标事件中,MouseMotionListener接口能处理的是 A.按下鼠标键 B.拖动鼠标 C.鼠标进入 D.鼠标松开7.在以下代码中,能正确创建Font对象的是 A.new Font(″宋体″,斜体,20); B.new Font(″楷体″,20,正常);C.new Font(″楷体″,Font.BOLD,l 8); D.new Font(″楷体″,1 8,Font.BOLD);8.某线程正处于运行状态,则在以下选项中,不可能是它的后继状态的是 A.就绪状态 B.新建状态 C.阻塞状态 D.死亡状态 9.某Java程序用类JFileChooser来实现打开和保存文件对话框。当对话框的返回 值是JFileChooser.APPROVE_OPTION时,程序进一步的工作是 A.用方法getName()取得文件名称 B.用方法getPathO()取得文件路径 C.用方法getFile()取得文件内容 D.用方法getSelectedFile()取得文件对象 10.Java语言实现C/S模式时,需要使用网络套接字,套接字的内容包括 A.IP地址+端口号 B.IP地址+监控线程名 C.监控线程名+端口号 D.IP地址+监控线程名+端口号 第二部分非选择题(共90分) 二、填空题(本大题共l0小题,每空2分,共20分) 11.一个Java小应用程序必须定义成一个子类,它的超类是______。 12.在Java语言中,左移运算符是______。 13.类A的成员变量x的类型是类B的,则类A和类B之间的关系是______。14.以下代码: 的输出结果是_______。 15.在JFrame子类的构造方法中,代码getContentPane0的作用是_______。16.用JScrollBar创建一个垂直滚动条对象时,需要指定的常量是_______。17.在异或模式下绘图时,实际绘制的颜色是由3种颜色作特定的运算确定的:当前正要绘 制的颜色、原先绘制的颜色以及_______。 18.处于运行状态的线程执行yield()方法,该线程将进入_______状态。 19.在Java语言中,客户端使用的套接字类是_______。 20.在Java语言中,DriverManager类的作用是加载驱动程序和_______。

Java程序员认证考试题库

第一部分 基础知识练习 目标 本章对应于《学生指南》各章的内容分别提供了练习题集,包括: ●第一章Java入门 ●第二章数据类型和运算符 ●第三章流程控制与数组 ●第四章封装 ●第五章继承 ●第六章抽象类与接口 ●第七章多态 ●第八章异常 ●第九章多线程机制 ●第十章输入输出流 ●第十一章使用泛型和集合框架 ●第十二章基于Swing的图形用户界面(GUI)设计 ●第十三章Java事件驱动编程

第一章练习题(Java入门) (C)1.下列哪项不是JDK所包含的内容?(选一项)A.Java编程语言 B.工具及工具的API C.Java EE扩展API D.Java平台虚拟机 2.下列关于JDK、JRE和JVM的描述。哪项正确?A.JDK中包含了JRE,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JRE中包含了JDK,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 3.下列哪个工具可以编译java源文件? A.javac B.jdb C.javadoc D.junit 4.JDK工具javadoc的作用是哪项? A.生成Java文档 B.编译Java源文件 C.执行Java类文件 D.测试Java代码 5.以下哪些包是Java标准库中常用的包?(选三项)A.java.lang B.javax.servlet .http C.j ava. io D.java.sql

6.使用JDK工具生成的Java文档的文件格式是? A.XML格式 B.自定义格式 c.二进制格式 D.HTML格式 (AC)7.以下关于JVM的叙述,哪项正确?(选两项) A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件D.JVM支持Java程序运行,它能够直接运行Java源代码文件 8.以下关于支持Java运行平台的叙述,哪项错误? A.Java可在Solaris平台上运行 B.Java可在Windows平台上运行 C.Java语言与平台无关。Java程序的运行结果依赖于操作系统D.Java语言与平台无关。Java程序的运行结果与操作系统无关 (B)9.以下关于Applet和Java程序之间关系的叙述,哪项错误? A.-个Applet就是一段Java程序 B.Applet是一种特殊的Java程序,它需要运行在Web服务器上C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上D.Applet是一种Java SE平台的应用程序 (AD)10.以下关于Java HotSpot的描述,哪两项错误?(选两项)A.Java HotSpot是一种热编译技术,在编译Java源程序时会被使用B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用C.Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进行优化

java语言程序设计课后习题答案

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; =str2); ; public class Exercise51{ public static void main(String[] args) throws IOException{ "请输入一个整数:"); InputStreamReader isStream=new InputStreamReader; BufferedReader bfReader=new BufferedReader(isStream); String input=(); int length=()-1; int n=new Integer(input).intValue(); while(length>=0){ int divisor=(int) (10,length); length=length-1; int output=n/divisor; n=n%divisor; ","); } } } 法二:(建议使用) public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10%10; unit=n%10; "1678包含的数字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } ;

最新Java基础试题及其答案

Java试题 一单项选择 1)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。() a)protected b)private c)public d)friendly 2)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 4) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList 5)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } (选择一项) a)1 b)2 c)2.5 d)3 6)以下Java语句中,String str = “123456789”;str =str.subString(1,3);执行后str中的值为。(选择一项) a) “23” b)“123”

相关主题