计算机程序设计 java 习题及答案 单元1-10_第1页
计算机程序设计 java 习题及答案 单元1-10_第2页
计算机程序设计 java 习题及答案 单元1-10_第3页
计算机程序设计 java 习题及答案 单元1-10_第4页
计算机程序设计 java 习题及答案 单元1-10_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计java习题及答案

单元一Java语言概述

一、填空题

1.Java语言的主要特点包含:、、

、和0

2.Java技术的开发平台分为、、

三类。

3.JDK中javac.exe命令的作用是______________________________

,java.exe命令的作用是

_____________________________________________________________________________________O

二、简答题

1.搭建Java开发环境时,环境变量CLASSPATH和PATH的作用分

别是什么?

2.请简述Java程序的开发过程,JVMCJava虚拟机)的作用是什么?

三、编程题

1.编写一个简单的Java程序,在屏幕上输出“这是我的第一个Java

程序”。

单元二Java语言开发基础

四、选择题

1.下面哪些Java标识符是正确的?

A.MyWorldB.parseXML

C.-valueD.&maybe

2.下面哪些是Java的关键字?

A.ClassB.Int

C.SwitchD.else

3.设a=3,b=4,则表达式b!=3&&5/a>a+b的结果为?

A.trueB.false

C.1D.2

4.下列哪些语句能正常通过编译?

A.bytei=127;

B.bytej=128;

C.long11=999999;

D.long12=9999999999;

5.下面关于for循环和while循环的说法,哪个是正确的?

A.while循环能实现的操作,for循环也都能实现

B.while循环判断条件一般是程序结果,for循环判断条件一般是

非程序结果

C.两种循环任何时候都可替换

D.两种循环结构中都必须有循环体,循环体不能为空

6.下列叙述中,正确的是?

A.Java语言的标识符是区分大小写的

B.源文件名与public类名可以不相同

C.源文件扩展名为.class

D.源文件中public类的数目不限

7.在Java中,表示换行符的转义字符是?

A.\nB.\fC.'n'D.\dd

8.有语句float[]f=newfloat[10J,则f[0]的值为?

A.0.0

B.O.Of

C.null

D.false

9.swtich(expression)语句中表达式的类型可以是?

A.String

B.char

C.short

D.double

五、填空题

4.Java语言的基本数据类型包含、

、、、

和0

5.Java语言的复合数据类型包含、

______________________________O

6.Java的语句控制结构分为、、—

三种。

六、简答题

3.Java语言中关于标识符的命名规则是什么?

4.简述while和do...while语句的区别?

5.简述break和continue语句的作用和不同?

七、编程题

2.编程实现在屏幕上打印输出9*9乘法表。

3.编程求三个整数中的最大值,要求使用三目运算符实现。

单元三面向对象基础知识

八、选择题

10.类与对象的关系是?

A.类是对象的抽象

B.类是对象的具体实例

C.对象是类的抽象

D.对象是类的子类

11.下面关于java中类的说法哪个是不正确的?

A.类体中只能有变量定义和成员方法的定义,不能有其他语句

B.构造方法是类中的特殊方法

C.类一定要声明为public才可以执行

D.一个java文件中可以有多个class定义

12.以下关于构造方法的描述错误的是?

A.构造方法的返回类型只能是void型

B.构造方法是类的一种特殊方法,它的方法名必须与类名相同

C.构造方法的主要作用是完成对类的对象的初始化工作

D.一般在创建新对象时,系统会自动调用构造方法

13.下列关于构造方法调用方式的描述正确的是?

A.按照一般方法调用

B.由用户直接调用

C.只能通过new自动调用

D.被系统调用

14.假设A类有如下定义,a是A类的一个对象,下列语句调用错误

的是?

classA{

inti;

staticStrings;

voidmethod1(){}

staticvoidmethod2(){}

)

A.System.out.println(a.i);B.a.methodi();

C.A.method1();D.A.method2();

15.在Java中,关于final关键字的说法正确的是?

A.如果修饰变量,则一旦赋了值,就等同一个常量

B.如果修饰类,则该类只能被一个子类继承

C.如果修饰方法,则该方法能在子类中被覆盖

D.如果修饰方法,则该方法所在的类不能被继承

16.下面关于变量及其作用范围的描述哪个是不正确的?

A.实例变量是类的成员变量

B.实例变量用关键字static声明

C.在方法中定义的局部变量在该方法被执行时创建

D.局部变量在使用前必须被初始化

17.关于main方法的方法头,以下哪项是合法的?

A.publicstaticvoidmain()

B.publicstaticvoidmain(String[]args)

C.publicstaticintmain(String[]args)

D.publicvoidmain(Stringarg[])

18.在Java中,一个类可同时定义许多同名的方法,这些方法的参数

个数、类型或顺序各不相同,返回类型也可以不相同。这种面向

对象程序的特性称为?

A.隐藏B.覆盖C.重载D.Java不支持此特性

九、简答题

6.简述Java中构造方法的概念及特点?

7.Java中static修饰的方法、变量各有什么特点?

十、编程题

4.编写程序,创建一个类Car,类中有3个成员变量,name:汽车

的品牌;color:汽车的颜色;weight:汽车的重量;类中包含一

个构造方法,用来初始化3个变量。在main方法中创建类Car的

1个对象(品牌:“奥迪”;颜色:“黑色”;重量:1600公斤),并

将该对象的基本信息打印输出。

单元四面向对象高级特性

H^一、选择题

19.下列选项中,子类继承父类时使用的关键字是?

A.package

B.interface

C.class

D.extends

20.下列哪项描述是正确的?

A.子类的构造方法与父类的构造方法同名

B.子类可以继承父类的所有方法

C.子类不一定能继承父类的所有方法

D.子类可以继承父类protected和private修饰的方法

21.下列关于关键字this和super的说法正确的是?

A.this用来调用父类的方法和变量

B.super用来调用本类中的方法

C.super用来调用父类的方法和变量

D.没有区别

22.一个非抽象子类,如果要实现某个接口,那么?

A.必须实现该接口中的所有抽象方法

B.可以实现部分抽象方法

C.可以不实现任何抽象方法

D.无所谓

23.以下关于接口和类的说法正确的是?

A.接口和类都可以实现多重继承

B.子类可以继承多个父类

C.子类可以实现多个接口

D.一个子类不能同时继承某一个父类和实现某一个接口

24.Java中一个子类要实现一个父接口,要使用哪个关键字?

A.import

B.extends

C.implements

D.interface

十二、编程题

5.定义一个抽象类Shape,它包含一个抽象方法getArea(),再定义

两个类Rectangle和Circle继承于Shape,并实现getArea。方法计

算具体图形的面积。编写测试类创建Rectangle和Circle类的对象,

并输出对象的面积。

6.定义接口A,接口内有两个方法:methodl(intx,inty)和method2(int

x,inty),它们的返回类型都为int。然后编写一个类B实现接口A,

在类B中实现方法methodi(intx,inty)用于求x的y次方,实现

方法method2(intx,inty)用于求两个参数的最大值。编写一个测

试类,创建对象分别调用两个方法。

单元五包、数组和字符串

十三、选择题

25.import语句的作用是?

A.导入包中成员

B.创建包

C.既可导入包成员,也可创建包

D.访问控制

26.关于包的描述错误的是?

A.包可以将相关的类和接口组织在一起,便于识别和管理

B.包中的类可以访问同一包的其它类的私有成员

C.不同包中的相同命名,不会产生冲突

D.用public修饰的顶级类和接口对包外代码也可见

27.关于被私有访问控制符private修饰的成员变量,以下说法正确的

是?

A.可以被该类自身、与它在同一个包中的其他类、在其他包中

的该类的子类所引用

B.可以被该类本身、该类的所有子类访问和引用

C.只能被该类自身所访问和修改

D.只能被同一个包中的类访问

28.System类在哪个包中?

A.java.util

B.java.io

C.java.awt

D.java.lang

29.下面的程序段输出的结果是?

Stringsl="Java",s2="java";

System.out.println(s1.equalsIgnoreCase(s2));

A.true

B.false

C.Java

D.java

30.下面的程序段执行完后,cont的值是多少?

Stringstrings[]={"string","starting","strong","street","soft"};

intcont=0;

for(inti=0;i<strings.length;i++)

if(strings[i].endsWith("ng"))

cont++;

A.1

B.2

C.3

D.4

31.下面程序段的输出结果是?

StringBufferbufl;

Stringstr="北京2008";

bufl=newStringBuffer(str);

System.out.println(bufl.charAt(2));

A.2

B.京

C.0

D.null

十四、简答题

7.举例说明String和StringBuffer的区别及主要应用场合?

十五、编程题

1.编程实现将从键盘输入的文本中的长度大于5的单词保存在一个

字符串数组中,并实现打印输出该数组的各个字符串。

单元六Java的异常处理

十六、选择题

32.为了捕获一个异常,产生异常的代码必须放在下面哪个语句块

中?

A.try块

B.catch块

C.throws

D.finally块

33.下面关于try块的说法正确的是?

A.try块后至少应有一个catch块

B.try块后必须有finally块

C.可能抛出异常的代码应放在try块中

D.对抛出的异常的处理应放在try块中

34.finally块中的代码将?

A.总是被执行

B.如果try块后面没有catch块时,finally块中的代码才会执行

C.异常发生时才被执行

D.异常没有发生时才被执行

35.阅读下面的程序,选择正确的说法?

classA{

publicstaticvoidmain(Stringargs[])throwsException{

method();

}

staticvoidmethod()throwsException{

try(

System.out.print("try:performed\t");

)

finally{

System.out.print("finally:alwaysperformed");

)

)

)

A.编译该程序产生编译错误,因为method。抛出异常,而调用它

时没有进行处理

B.程序编译成功,运行该程序输出:try:performedfinally:al

waysperformed

C.程序编译成功,运行该程序输出:try:performed

D.程序编译成功,运行该程序输出:finally:alwaysperformed

十七、简答题

8.简述Java中异常的分类情况?

9.简述Java的异常处理机制?

十八、编程题

2.编写一个应用程序,要求程序中能产生ArraylndexOutOfBoundsE

xception异常,并对异常进行捕获处理。

3.编写一个应用程序,要求程序中能产生NullPointerException异常,

并对异常进行捕获处理。

单元七Java的输入输出

十九、选择题

36.下面哪种流可以用于字符输入?

A.java.io.InputStream

B.java.io.OutputStream

C.java.io.InputstreamReader

D.java.io.OutputStreamReader

37.下面哪个类不能直接读取磁盘文件?

A.FileReader

B.RandomAccessFile

C.FilterReader

D.FilelnputStream

38.下面类中属于字节I/O流的是?

A.FileReader

B.FilelnputStream

C.BufferedOutputStream

D.BufferedWriter

39.下面哪些代码是正确的?

A.Filef=newFile("/",''java.txt'');

B.DatalnputStreamd=newDatalnputStream(System.in);

C.OutputStreamWritero=newOutputStreamWriter(System.out);

D.RandomAccessFiler=newRandomAccessFile(t€java.txf,);

二十、编程题

4.编写应用程序,使用System.in.read。方法读取用户从键盘输入的

字节数据,回车后,把从键盘输入的数据存放到数组inArray中,

并将用户输入的数据保存到指定的文件中。

5.编写应用程序,使用FilelnputStream类把指定目录下的文件内容

读取到字节数组中,并显示在屏幕上。

6.编写应用程序,把某个指定目录下的所有.txt文件合并为一个.txt

文件。

单元八图形用户界面

二H—、选择题

40.在Java图形用户界面编程中,如果需要显示信息,一般使用哪个

类的对象来实现?

A.JLabel

B.JButton

C.JTextArea

D.JTextField

41.创建一个标识有“开始”按钮的语句是?

A.JTextFieldb=newJTextField("开始”);

B.JLabelb=newJLabel("开始”);

C.JCheckboxb=newJCheckbox(“开始,);

D.JButtonb=newJButton("开始”);

42.如果希望所有的控件在界面上均匀排列,应使用下列哪种布局管

理器?

A.BoxLayout

B.GridLayout

C.BorderLayout

D.FlowLayout

43.在下列事件处理机制中哪个不是机制中的角色?

A.事件

B.事件源

C.事件接口

D.事件处理者

44.在GUI控件的事件处理中,事件源与监听器之间的关系是?

A.一对一

B.一对多

C.多对一

D.多对多

二十二、编程题

7.编写窗口程序,包含一个标签、一个文本框和一个按钮,当用户

单击按钮时,程序把文本框中的内容提取到标签中。

8.编程实现带菜单的窗口,包含“File”和“Edit”二个菜单,在

“File”下又包含“New”,“Open”,“Exit”三个菜单项,选择“Exit”项

时退出应用程序。

单元九Java多线程

二十三、选择题

45.执行下列哪项操作会使线程停止?

A.调用该线程的halt。方法

B.调用该线程的stop()方法

C.为另一个线程指定更高的优先级

D.调用System.exit(O);

46.下列关于Java线程的说法哪些是正确的?

A.每一个Java线程可以看成由代码、一个真实的CPU以及数据

三部分组成

B.创建线程的两种方法中,继承Thread类的创建方式可以防止

出现多父类问题

C.Thread类属于java.util程序包

D.以上说法无一正确

47.以下哪个方法用于定义线程的执行主体?

A.start()

B.init()

C.run()

D.main()

48.下面哪个是Runnable接口中的抽象方法?

A.start()

B.run()

C.stop()

D.yield()

49.下面哪个选项能正确创建Socket连接?

A.Sockets=newSocket(8080);

B.Sockets=newSocket,7”,”8080'');

C.SocketServers=newSocket(8080);

D.Sockets=newSocketServer。'”,”8080'');

二十四、填空题

1.在TCP/IP中,是由IP地址与端口号组成的。

2.编写网络服务器程序时,使用类来创建服务器

端的连接。

3.关闭套接字需要使用方法。

二十五、简答题

1.线程的5个状态分别是什么,它们之间如何转换?

2.简述Socket的连接过程?

3.简述TCP和UDP协议的不同?

二十六、编程题

9.编写程序,通过创建实现Runnable接口的多线程实现在窗口中显

示一个计数器(从1开始,每隔1秒,显示数字加1)。

单元十数据库编程技术

二十七、填空题

1.Java数据库编程中使用方法打开数据库连接。

2.使用JDBC技术进行数据库编程的几个主要步骤为:加载驱动程

序、、、o

二十八、选择题

50.建立Statement对象的作用是?

A.连接数据库

B.声明数据库

C.执行SQL语句

D.保存查询结果

51.建立ResultSet对象的作用是?

A.连接数据库

B.声明数据库

C.执行SQL语句

D.保存查询结果

二十九、编程题

10.编写程序实现对一个Access数据库的连接和访问,要求查询数据

库中表user的全部记录,并打印出来。

答案

单元一习题答案

1.Java语言有哪些特点?

答:面向对象、简单、平台无关性、安全性、内存管理、分布式应用、多线程、动态、解释运行,高

效能

2.什么叫做类?什么叫做对象?

答在面向对象辘中,具体的客骸体称为血对象就髅撷昉法,对象锚种是a过-不抽

象数据类型来描述的,这种抽象数据类型称为类。类是对具有相同属性和方法的一组相似对

象的抽象,或者说类是对象的模板。

3.简述Java的运行机制。

答:Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在

Java开发环境中进行程序代码的输入过程,最终形成后缀名为.java的Java源文件。编译

是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节

码文件。运行是指使用Java解释器将字节码文件翻译成机器代码,在cpu上运行并显示结

果的过程。

4.简述Java应用程序的开发流程。

答:Java应用程序的运行经过编写、编译、运行三个步骤。

第1步,编写程序。使册己事本或其硕:岬写程序的源代码,将源代码保存为文件java

文件。

第2步,编译程序。在MS-DOS命令窗口,将当前目录转换到Java源程序所在的保存目录;

输入“javacfilename.javaw形式的命令进行程序编译。

第3步,执行程序。在同样的命令窗口中输入“javafilename”形式的命令执行程序。

完成了程序的开发,查看相应t目录,其中应该具有两个文件,分别是XXXX.java和

XXXX.class»

5.C

6.b

7.a

8.Java程序的种类有:AppletApplicationServlets

9.软件模型

10.正确

单元二习题答案

一、选择题

1-5>CCCBB6-10BABCB11-15CAADD16-21ADDADA

二、填空题

1、$2、true3、154、float5、i<=10

三、编程题

1、答

classisPrime(

publicstaticvoidmain(String口args){

for(doublei=1;i<101;i++){

booleanflag=false;

for(intj=2;j<i;j++){

==0){

flag=true;

}

}

if(!flag){

System,out.print((int)i+〃\t〃);

}

)

)

)

2、答:

publicclassexample{

publicstaticvoidmain(String]]args){

doublesum=100,num=100;

for(inti=2;i<=10;i++){

num=(double)(num/2);

sum+=2*num;

}

System.oul.printin(〃第10次落地时,共经过"+sum+"米,第10次反弹〃+num+"米");

}

)

3、答:

importjava.util.Scanni

publicclassBouns{

publicstaticvoidmain(String[]args){

System.out.printIn(〃请输入您的利润:〃);

Scanneru\=newScanner(System,in);

intprofit=in.nextlnt();

doublereward=0;

intsumReward=profit;//in.nextlnt();

if(profit>1000000){//高于100万元时,超过100万元的部分按1%提成,

reward=(profit-1000000)*0.01;

profit=profit-1000000;

System,out.printin(reward);

)

if(profit>600000){//607J到100万之间时,高于60万元的部分,可提成1.5%,

reward=reward+(profit-600000)*0.015;

profit=profit-600000;

System,out.printin(reward);

)

if(profit>400000){〃40万到60万之间时高于40万元的部分,可提成3%;

reward=reward+(profit-400000)*0.03;

profit=profit-400000;

System,out.printin(reward);

)

if(profit>200000){〃20万到40万之间时,高于20万元的部分,可提成5斩

reward=reward+(profit-200000)*0.05;

profit=profit-200000;

System,out.printin(reward);

)

if(profit>100000){//利润高于10万元,低于20万元时,高于10万元的部分,*

可提成7.5%;

reward=reward+(profit-100000)*0.075;

profit=profit-100000;

System,out.printin(reward);

)

if(profit>0){〃低于10万元的部分按10%提成,

reward=reward+profit*0.1;

System,out.printin(reward);

)

//if(profit>0){}

System,out.printin(〃您的利润是:〃+sumReward+〃元〃);

System.out.printin(〃您的奖金是:〃+reward+〃元〃);

//System,out.print]n(reward);

//System,out.print1n(sumReward);

}

)

4、答:

classProgram{

publicstaticvoidmain(String[]args){

intsum=SumPeach(Y);

System.out.printin(〃第一天摘得桃子有:〃+sum);

)

〃递归

staticintSumPeach(intday)

(

if(day=10)

return1;

return2*SumPeach(day+1)+2;

)

)

5、答:

publicclassPersonAge{

staticintgetAge(intn){

if(n==l){

return10;

}

return2+getAge(nT);

}

publicstaticvoidmain(String[]args){

System.out.printin(〃第五个的年龄为:〃+ge〃ge(5));

)

单元三习题答案

一、选择题

1、B2、C3、C4、BC5、B6、B7、C

二、编程题

1>答:

publicclassBox{

privatedoublelength;

privatedoublewidth;

privatedoubleheight;

publicstaticvoidmain(String[]args){

Boxbox二newBox(5,10,2);

System.out.printIn(box.volume());

publicBox(doublelength,doublewidth,doubleheight){

super();

this,length=length;

this,width=width;

this,height=height;

)

publicdoublevolume(){

returnlength*width*height;

)

)

2、答:

publicclassStudent{

floatscore;

staticfloattotal;

staticintcount;

publicstaticvoidmain(String口args){

Studentsi=newStudent();

Students2=newStudent();

si.scoretotalcount(80);

s2.scoretotalcount(90);

System,out,printin(〃总人数是〃+Student.cow?什〃总分数是〃+Student.su加()+“

平均分是〃+Student.average^);

}

voidscoretotalcount(floats){

this,score二s;

total-total^-score;

counts\

}

staticfloatsum(){

returntotal\

)

staticfloataverage(){

returntotai/count;

)

)

3、答:

publicclassStudents{

privateStringname;

privateStringno;

privatecharsex;

privateintage;

publicStringgetName(){

returnname;

)

publicvoidsetName(Stringname){

this,name=name;

}

publicStringgetNoO{

returnno;

)

publicvoidsetNo(Stringno){

this,no=no;

)

publicchargetSexO{

returnsex;

)

publicvoidsetSex(charsex){

this.sex=sex;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this,age=age;

}

)

4、答:

publicclassStudents{

privateStringname;

privateStringno;

privatecharsex;

privateintage;

publicStudents(Stringname,Stringno,charsex,intage)

super();

this,name=name;

this.no=no;

this.sex=sex;

this.age=age;

)

publicStudents(Stringno){

super();

this,no=no;

)

publicStudents(Stringname,Stringno){

super();

this,name=name;

this,no=no;

)

publicStudents(Stringname,Stringno,charsex){

super();

this,name=name;

this,no=no;

this,sex=sex;

publicStringgetName(){

returnname;

)

publicvoidsetName(Stringname){

this,name=name;

)

publicStringgetNoO{

returnno;

)

publicvoidsetNo(Stringno){

this.no=no;

)

publicchargetSexO{

returnsex;

}

publicvoidsetSex(charsex){

this,sex=sex;

}

publicintgetAge0{

returnage;

)

publicvoidsetAge(intage){

this,age=age;

)

)

单元4习题答案

一、选择题

1、A2、C3、C4、C5、A

二、简答题

1、答:所谓多态是为类创建多个同名的方法。

可以通过子类改写父类的方法实现多态。也可以通过方法重载来实现多态。

2、答:继承是一个类可以获得另一个类的特性机制,在原有类的基础上,经过适当的

扩充和完善可以派生出新的类。

通过类的继承关系可以实现程序代码的重用,避免重复设计,提高软件开发效率。通过

继承还可以在代码中利用多态。

3、答:两者相似之处在于:抽象类和接口都不能实例化,两种都是java实现抽象的方

不同之处:一语法层面1抽象类可以构造方法可以有普通成员变量可以包含非法抽象

的普通方法二接口类不可以二思想层面1抽象类在Java体现了一种继承关系抽象类和

派生类之间必须存在“is-a”关系对于interface来说则不然

4、答:访问控制符是一组限定类、域或方法是否可以被程序里的其他部分访问和调用

的修饰符。类的访问控制符public能被所有的其他类所引用

域或方法的访问控制符publicprivateprotecedprivateprotected

另外还有一种没有定义专门的访问控制符的缺省情况、该类只能被同一个包中的类访问

和引用。

三、编程题

1、答:

interfaceFun{

publicabstractvoidf(intx);

publicabstractvoidg(intx,inty);

publicabstractdoubleh(doublex);

)

classshuzuimplementsFun{

publicvoidf(intx)(

System,out.println(x);

}

publicvoidg(intx,inty){

System,out.println(x+y);

}

publicdoubleh(doublex){

returnx;

}

publicstaticvoidmain(String[]args){

Funsz=newshuzu();

sz.f(1);

sz.g(2,3);

System,out.println(sz.h(3.0));

}

}

abstractclassArea

{

publicabstractdoublearea();

}

classTriangleextendsArea

(

privatedoublea,b,c;

publicTriangle(doublea,doubleb,doublec)

(

this,a=a;this,b=b;this,c=c;

}

publicdoublearea()

(

doublep=(a+b+c)/2;

returnMath.sqrt(p*(p-a)*(p-b)*(p-c));

}

)

classRectangleextendsArea

(

privatedoublewidth,height;

publicRectangle(doublej,doublek)

(

width=j;height=k;

)

publicdoublearea()

(

returnwidth*height;

)

)

classSquareextendsArea

(

privatedoubler;

publicSquare(doubler)

{

this,r=r;

publicdoublearea()

returnr*r;

}

)

2、答:

classDog{

privateStringname;

privateStringeyecolor;

publicDog(Stringeyecolor)(

this,name=name;

this,eyecolor=eyecolor;

)

publicDog(){

name=z,dahuang”;

eyecolor="blue";

}

publicStringgetname()

{returnname;

)

)

单元5习题答案

1.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整

数,要捕获Integer.parselntO产生的异常,显示“请输入整数”,捕获输入参数不足

5个的异常(数组越界),显示“请输入至少5个整数工

publicclassdemo

{publicstaticvoidmain(Stringargs[])

(

intnumbers[]=newint[5];

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

(

Stringstr二〃〃;

try//one

(

str=args[i];

)

catch(IndexOutOfBoundsExceptione)

(

System.out.printin("请你输入至少5个整数〃);

try//two

(

numbers[i]=Integer.parselnt(str);

)

catch(NumberFormatExceptione)

(

System,out.printin(〃请输入的全部都是数字串〃);

)

)

}

}2.现在有如下的一个数组:

intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:

intnewArr=3,4,5,6,6,5,4,7,6,7,5);

publicclassaa{

publicstaticvoidmain(Stringargs[])

(

intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5);

intnewArr[]=newint[count(oldArr)];//新数组

fun(oldArr,newArr);

print(newArr);

)

publicstaticvoidfun(intsrc[],intdata[]){

intfoot=0;//控制新数组的脚标,data

for(intx=0;x<src.length;x++){

if(src[x]!=0){

data[foot++]=src[x];

)

}

publicstaticintcount(inttempi]){

intnum=0;

for(intx=0;x<temp,length;x++){

if(temp[x]!=0){

num++;〃统计个数

)

)

returnnum;

)

publicstaticvoidprint(inttemp[])(

for(intx=0;x<temp,length;x++){

System,out.print(temp[x]+"、〃);

}

}

}

3.现在给出两个数组:

•数组A:“1,7,9,11,13,15,17,19:;

•数组b:“2,4,6,8,10”

两个数组合并为数组c,按升序排列。

publicclassTestArray{

publicstaticvoidmain(String1]args){

int[]a=newint[]{0,1,2,3,4,5,6,7,8,9);〃初始化a数组

int[]b=newint□{11,12,12,13,13,14,14,15,15};〃初始化b数组

int[]c=newint[a.length+b.length];〃让c的长度等于a与b

之和

for(inti=0;i<a.length;i++){

c[i]=a[i];〃将a放入c

)

for(intj=a.length;j<c.length;j++){

c[j]=b[j-a.length];〃将b放入c

)

for(inti=0;i<c.length;i++)

System,out.print(c[i]+〃〃);〃打印出来

4.整理字符串将前后空白删去。并把中间的多个空白保留一个。

publicclassDeleteExtraSpace{

publicstaticvoidmain(String1]args){

String[]strs={"","a",

“helloworld",

};

for(Stringstr:strs){

Stringstr2=str.trim().replaceAl1C+〃,〃"

);

System,out.printIn(str2+/z,length2="+str2.length

0);

Stringstr3=delet

eExtraSpace(str);

System,out.printIn(str3+z/,Iength3=,,+str3.length

0);

System,out.println(str2.equals(str3));

System,out.printIn(,,====-=============~====z");

)

)

publicstaticStringdeleteExtraSpace(Stringstr){

if(str二二null){

returnnull;

)

if(str.length()==0IIstr.equals(z,〃)){

returnnewString();

)

chart]oldStr=str.toCharArray();

intlen=str.length();

char[]tmpStr=newchar[len];

booleankeepSpace=false;

intj=O;//theindexofnewstring

for(inti=0;i<len;i++){

chartmpChar=oldStr[i];

if(oldStr[i]!='){

tmpStr[j++]=tmpChar;

keepSpace二true;

}elseif(keepSpace){

tmpStr[j++]=tmpChar;

keepSpace=false;

)

)

//unlikec/c++,no〃\0〃attheendofa

string.So,dothecopyagain...

intnewLen=j;

if(tmpStr[j-l]==,'){

newLen一一;

)

char[]newStr=newchar[newLen];

for(inti=0;i<newLen;i++){

newStr[i]=tmpStr[i];

}

returnnewString(newStr);

}

)

5.编写一个程序实现包的功能。

packagecom.etoak;

publicclassTestPackage{

publicstaticvoidmain(String[]args){

System.out.printin(〃阐述打包语句的作用");

)

}

单元6习题答案

1、调试并运行一段java程序,创建一个自定义异常类,并在一个方法中抛出自定义异常

对象,在该方法的catch处理程序中捕获它并重新抛出,让调用它的方法

1、进入java编程环境。

2、新建一个java文件,命名为abc.java

3、输以下程序代码,理解异常的抛出、捕捉与处理

publicclassbca

{

publicstaticvoidmain(Stringargs[])

{

Inta=3,b=0;

A=15/b;

System,out.println("a=”+a);

}

}

publicclassabc

(

staticvoidshow()

(

Try(

thrownewNullPointException(“demo”);

Catch(NullPointExceptione)

System.out.printin(“捕捉内部异常”);

throwe;

)

)

publicstaticvoidmain(Stringargs)

(

try{

Show();

catch(NullPointerExceptione)

System,out.printin("再次捕捉异常:"+e);

)

)

)

publicstaticvoidmain(Stringargs[])

intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}

intnewArr[]=newint[count(oldArr)]//新数组

fun(oldArr,newArr)

print(newArr)

)

publicstaticvoidfun(intsrc[],intdata[]){

intfoot0//控制新数组的脚标,data

for(intx0x<src.length;x++){

if(src[x]!0)(

data[foot++]src[x]

)

}

}

publicstaticintcount(inttemp[]){

intnum=0

for(intx0x<temp,length;x++){

if(temp[x]0)(

num++//统计个数

returnnum

publicstaticvoidprint(inttemp[]){

for(intx=0x<temp,lengthx++){

System,out.print(temp[x]+〃、〃)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论