配色: 字号:
java程序设计习题集
2022-10-04 | 阅:  转:  |  分享 
  
Java程序设计精编教程第3版习题习题11习题22习题32习题43习题54习题66习题77习题89习题99习题1011习
题1112习题1213习题1315习题1415习题11.Java语言的主要贡献者是谁?2.编写、运行Java程序需要经过哪些主
要步骤?4.如果JDK的安装目录为D:\jdk,应当怎样设置path的值?5.下列哪个是JDK提供的编译器?A)java.exeB
)javac.exeC)javap.exeD)javaw.exe6.Java源文件的扩展名是什么?Java字节码的扩展名是什么?7
.下列哪个是Java应用程序主类中正确的main方法声明?A)publicvoidmain(Stringargs[])B
)staticvoidmain(Stringargs[])C)publicstaticvoidMain(Stri
ngargs[])D)publicstaticvoidmain(Stringargs[])习题21.模仿图2.4简单
绘制出例子2中rectangle和lader对象的内存示意图。2.模仿例子2编写含有3个类的Java应用程序,要求三个类分别在三个
源文件中,其中一个源文件包含有名字为Teacher的类,该类创建的对象调用add(doublea,doubleb)的方法可以得
到2个数的和、调用sub(doublea,doubleb)的方法可以得到2个数的差;一个源文件包含有名字为Student的类,
该类创建的对象调用speak()的方法可以可以在命令行窗口输出“老师好”;一个源文件包含名字为MainClass的主类。要求在主类
的main方法中分别用Teacher和Student类创建对象,使得程序能输出12与236的和以及234与120的差,并输出“老师
好”。3.当源文件中有多个类时,请简述源文件的命名规则。4.当代码量较大时应当使用哪种编程风格?习题31.什么叫标识符?标识符的规
则是什么?true是否可以作为标识符。2.什么叫关键字?true和false是否是关键字?请说出6个关键字。3.Java的基本数
据类型都是什么?4.上机运行下列程序,注意观察输出的结果。publicclassE{publicstaticvoid
main(Stringargs[]){for(inti=20302;i<=20322;i++){System.ou
t.println((char)i);}}}5.上机调试下列程序,注意System.out.print()和System.ou
t.println()的区别。publicclassOutputData{publicstaticvoidmain
(Stringargs[]){intx=234,y=432;System.out.println(x+"<"+(2x
));System.out.print("我输出结果后不回车");System.out.println("我输出结果后自动
回车到下一行");System.out.println("x+y="+(x+y));}}6.编写一个Java应用程序,输出全
部的大写英文字母。7.是否可以将例子4中的zhangSan.weight=reader.nextFloat();更改为:zha
ngSan.weight=reader.nexDouble();习题41.下列程序的输出结果是什么?if-else语句的书
写是否规范?publicclassE{publicstaticvoidmain(Stringargs[]){
intx=10,y=5,z=100,result=0;if(x>y)x=z;elsey=x;z=y;result=x
+y+z;System.out.println(result);}}2.下列程序的输出结果是什么?publicclass
E{publicstaticvoidmain(Stringargs[]){charc=''\0'';fo
r(inti=1;i<=4;i++){switch(i){case1:c=''新'';System.out.prin
t(c);case2:c=''亲'';System.out.print(c);break;case3:c=
''斤'';System.out.print(c);default:System.out.print("!");}}}}3
.参考例子2,在应用程序中使用if-elseif-else多条件分支语句代替switch语句来判断整数的中奖情况。4.为了节约用
电,将用户的用电量分成3个区间,针对不同的区间给出不同的收费标准。对于1至90千瓦(度)的电量,每千瓦0.6元;对于91至150千
瓦的电量,每千瓦1.1元;对于用大于151千瓦的电量,每千瓦1.7元。编写一个Java应用程序程序。在主类的main方法中,输入用
户的用电量,程序输出电费。5.编写一个应用程序,用两个for循环语句分别输出大写和小写的“字母表”。6.一个数如果恰好等于它的因子
之和,这个数就称为“完数”。编写一个应用程序求1000之内的所有完数。7.编写一个应用程序求满足1+2!+3!…+n!<=9876
的最大整数n。习题51.类中的实例变量在什么时候会被分配内存空间?2.什么叫方法的重载?构造方法可以重载吗?3.类中的实例方法
可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?4.类中的实例方法可以用类名直接调用吗?5.简
述类变量和实例变量的区别。6.下列哪些类声明是错误的?A)classAB)publicclassAC)protectedc
lassAD)privateclassA7.下列A类的类体中【代码1】~【代码5】哪些是错误的?classTom{pri
vateintx=120;protectedinty=20;intz=11;privatevoidf(){
x=200;System.out.println(x);}voidg(){x=200;System.out.p
rintln(x);}}publicclassA{publicstaticvoidmain(Stringarg
s[]){Tomtom=newTom();tom.x=22;//【代码1】tom.y=33;//【代码2】
tom.z=55;//【代码3】tom.f();//【代码4】tom.g();//【代码5】}}8.
请说出A类中System.out.println的输出结果。classB{intx=100,y=200;publicv
oidsetX(intx){x=x;}publicvoidsetY(inty){this.y=y;}p
ublicintgetXYSum(){returnx+y;}}publicclassA{publicstat
icvoidmain(Stringargs[]){Bb=newB();b.setX(-100);b.setY(
-200);System.out.println("sum="+b.getXYSum());}}9.请说出A类中System.
out.println的输出结果。classB{intn;staticintsum=0;voidsetN(int
n){this.n=n;}intgetSum(){for(inti=1;i<=n;i++)sum=sum+i;
returnsum;}}publicclassA{publicstaticvoidmain(Stringarg
s[]){Bb1=newB(),b2=newB();b1.setN(3);b2.setN(5);ints1=b1
.getSum();ints2=b2.getSum();System.out.println(s1+s2);}}10.请说
出E类中System.out.println的输出结果。classA{doublef(intx,doubley){
returnx+y;}intf(intx,inty){returnxy;}}publicclassE{
publicstaticvoidmain(Stringargs[]){Aa=newA();System.out
.println(a.f(10,10));System.out.println(a.f(10,10.0));}}习题61.
子类将继承父类的那些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?2.父类的final方法可以被子类重写吗?3.什么
类中可以有abstract方法?4.什么叫对象的上转型对象?5.下列叙述哪些是正确的?final类不可以有子类。abstract
类中只可以有abstract方法。abstract类中可以有非abstract方法,但该方法不可以用final修饰。不可以同时用f
inal和abstract修饰一个方法。6.请说出E类中System.out.println的输出结果。classA{doub
lef(doublex,doubley){returnx+y;}}classBextendsA{doub
lef(intx,inty){returnxy;}}publicclassE{publicstatic
voidmain(Stringargs[]){Bb=newB();System.out.println(b
.f(3,5));System.out.println(b.f(3.0,5.0));}}7.请说出E类中System.out
.println的输出结果。classA{doublef(doublex,doubley){returnx+y;
}staticintg(intn){returnnn;}}classBextendsA{doublef
(doublex,doubley){doublem=super.f(x,y);returnm+xy;}stat
icintg(intn){intm=A.g(n);returnm+n;}}publicclassE{pu
blicstaticvoidmain(Stringargs[]){Bb=newB();System.out.
println(b.f(10.0,8.0));System.out.println(b.g(3));}}习题71.接口中能
声明变量吗?2.接口中能定义非抽象方法吗?3.什么叫接口的回调?4.请说出E类中System.out.println的输出结果。i
nterfaceA{doublef(doublex,doubley);}classBimplementsA{
publicdoublef(doublex,doubley){returnxy;}intg(inta,i
ntb){returna+b;}}publicclassE{publicstaticvoidmain(Str
ingargs[]){Aa=newB();System.out.println(a.f(3,5));Bb=(B)a
;System.out.println(b.g(3,5));}}5.请说出E类中System.out.println的输出结果
。interfaceCom{intadd(inta,intb);}abstractclassA{abstrac
tintadd(inta,intb);}classBextendsAimplementsCom{public
intadd(inta,intb){returna+b;}}publicclassE{publicstati
cvoidmain(Stringargs[]){Bb=newB();Comcom=b;System.ou
t.println(com.add(12,6));Aa=b;System.out.println(a.add(10,5))
;}}习题81.内部类的外嵌类的成员变量在内部类中仍然有效吗?2.内部类中的方法也可以调用外嵌类中的方法吗?3.内部类的类体中可
以声明类变量和类方法吗?4.请说出下列程序的输出结果。classCry{publicvoidcry(){System
.out.println("大家好");}}publicclassE{publicstaticvoidmain(S
tringargs[]){Cryhello=newCry(){publicvoidcry(){System
.out.println("大家好,祝工作顺利!");}};hello.cry();}}习题91.下列叙述哪些是正
确的?String类是final类,不可以有子类。String类在java.lang包中。"abc"=="abc"的值是fa
lse."abc".equals("abc")的值是true2.请说出E类中System.out.println的输出结果。im
portjava.util.;classGetToken{Strings[];publicStringgetTo
ken(intindex,Stringstr){StringTokenizerfenxi=newStringTo
kenizer(str);intnumber=fenxi.countTokens();s=newString[numbe
r+1];intk=1;while(fenxi.hasMoreTokens()){Stringtemp=fenxi
.nextToken();s[k]=temp;k++;}if(index<=number)returns[inde
x];elsereturnnull;}}classE{publicstaticvoidmain(Strin
gargs[]){Stringstr="WeLoveThisGame";GetTokentoken=new
GetToken();Strings1=token.getToken(2,str),s2=token.getToken(4,
str);System.out.println(s1+":"+s2);}}3.请说出E类中System.out.printl
n的输出结果。publicclassE{publicstaticvoidmain(Stringargs[]){
byted[]="abc我们喜欢篮球".getBytes();System.out.println(d.length);S
trings=newString(d,0,7);System.out.println(s);}}4.请说出E类中Syst
em.out.println的输出结果。classMyString{publicStringgetString(Stri
ngs){StringBufferstr=newStringBuffer();for(inti=0;ith();i++){if(i%2==0){charc=s.charAt(i);str.append(c);}}r
eturnnewString(str);}}publicclassE{publicstaticvoidmain(
Stringargs[]){Strings="1234567890";MyStringms=newMyString
();System.out.println(ms.getString(s));}}5.请说出E类中System.out
.println的输出结果。publicclassE{publicstaticvoidmain(Stringar
gs[]){Stringregex="\\djava\\w{1,}";Stringstr1="88javaookk"
;Stringstr2="9javaHello";if(str1.matches(regex)){System.out
.println(str1);}if(str2.matches(regex)){System.out.println(s
tr2);}}}6.字符串调用publicStringtoUpperCase()方法返回一个字符串,该字符串把当前字
符串中的小写字母变成大写字母;.字符串调用publicStringtoLowerCase()方法返回一个字符串,该字符串把当前
字符串中的大写字母变成小写字母。String类的publicStringconcat(Stringstr)方法返回一个字符串
,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。7.String类的publiccha
rcharAt(intindex)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个
和最后一个字符。8.通过键盘输入年份和月份。程序输出相应的日历牌。9.计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年
、月、日通过通过键盘输入到程序中。10.编程练习Math类的常用方法。11.参看例子19,编写程序剔除一个字符串中的全部非数字字符
,例如,将形如“ab123you”的非数字字符全部剔除,得到字符串“123”。12.参看例子21,使用Scanner类的实例解析“
数学87分,物理76分,英语96分”中的考试成绩,并计算出总成绩以及平均分数。习题101.如果准备按字节读取一个文件的内容,应当使
用FileInputStream流还是FileReader流?2.FileInputStream流的read方法和FileRead
er流的read方法有何不同?3.BufferedReader流能直接指向一个文件吗?4.使用ObjectInputStream和
ObjectOutputStream类有哪些注意事项?5.怎样使用输入、输出流克隆对象?6.使用RandomAccessFile流
将一个文本文件倒置读出。7.使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中
。8.了解打印流。我们已经学习了数据流,其特点是用Java的数据类型读写文件,但使用数据流写成的文件用其它文件阅读器无法进行阅读(
看上去是乱码)。PrintStream类提供了一个过滤输出流,该输出流能以文本格式显示Java的数据类型。上机实习下列程序:imp
ortjava.awt.;importjava.io.;publicclassE{publicstaticvo
idmain(Stringargs[]){try{Filefile=newFile("p.txt");FileOu
tputStreamout=newFileOutputStream(file);PrintStreamps=newPri
ntStream(out);ps.print(12345.6789);ps.println("howareyou");
ps.println(true);ps.close();}catch(IOExceptione){}}}9.参考例子1
4,解析一个文件中的价格数据,并计算平均价格,比如该文件的内容如下:商品列表:电视机,2567元/台洗衣机,3562元/台冰箱,6
573元/台习题111.JFrame类的对象的默认布局是什么布局?2.一个容器对象是否可以使用add方法添加一个JFrame窗
口?3.编写应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当我们在一个文本区中
输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说随着你输入的变化,另一个文本区不断地更新求和及平均值
。4.编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计四个按钮,分别命名为“加”、“差”、
“积、”、“除”,另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理Numb
erFormatException异常。5.参照例子13编写一个体现MVC结构的GUI程序。首先编写一个封装梯形类,然后再编写一个
窗口。要求窗口使用三文本框和一个文本区为梯形对象中的数据提供视图,其中三个文本框用来显示和更新梯形对象的上底、下底和高;文本区对象
用来显示梯形的面积。窗口中有一个按钮,用户单击该按钮后,程序用3个文本框中的数据分别作为梯形对象的上底、下底和高,并将计算出的梯形
的面积显示在文本区中。习题121.线程有几种状态?2.引起线程中断的常见原因是什么?3.一个线程执行完run方法后,进入了什么状态
?该线程还能再调用start方法吗?4.线程在什么状态时,调用isAlive()方法返回的值是false。5.建立线程有几种方法?
6.怎样设置线程的优先级?7.在多线程中,为什么要引入同步机制?8.在什么方法中wait()方法、notify()及notifyA
ll()方法可以被使用?9.将例子11中SellTicket类中的循环条件:while(fiveAmount<3)该写成:if(
fiveAmount<3)是否合理。10.线程调用interrupt()的作用是什么?11.参照例子14,模拟三个人排队买票,张
某、李某和赵某买电影票,售票员只有三张五元的钱,电影票5元钱一张。张某拿二十元一张的新人民币排在李的前面买票,李某排在赵的前面拿一
张10元的人民币买票,赵某拿一张5元的人民币买票。12.参照例子9,要求有3个线程:student1、student2和teach
er,其中student1准备睡10分钟后再开始上课,其中student2准备睡一小时后再开始上课。teacher在输出3句“上课
”后,吵醒休眠的线程student1;student1被吵醒后,负责再吵醒休眠的线程student2。12.参照例子19,编写一个
Java应用程序,在主线程中再创建3个线程:“运货司机”、“装运工”和“仓库管理员”。要求线程“运货司机”占有CPU资源后立刻联合
线程“装运工”,也就是让“运货司机”一直等到“装运工”完成工作才能开车,而“装运工”占有CPU资源后立刻联合线程“仓库管理员”,
也就是让“装运工”一直等到“仓库管理员”打开仓库才能开始搬运货物。14.在下列E类中,System.out.println的输出
结果是什么?importjava.awt.;importjava.awt.event.;publicclassEim
plementsRunnable{StringBufferbuffer=newStringBuffer();Threa
dt1,t2;E(){t1=newThread(this);t2=newThread(this);}public
synchronizedvoidaddChar(charc){if(Thread.currentThread()==t
1){while(buffer.length()==0){try{wait();}catch(Exceptione
){}}buffer.append(c);}if(Thread.currentThread()==t2){buffer.append(c);notifyAll();}}publicstaticvoidmain(Strings[]){Ehello=newE();hello.t1.start();hello.t2.start();while(hello.t1.isAlive()||hello.t2.isAlive()){}System.out.println(hello.buffer);}publicvoidrun(){if(Thread.currentThread()==t1)addChar(''A'');if(Thread.currentThread()==t2)addChar(''B'');}}习题131.URL对象调用哪个方法可以返回一个指向该URL对象所包含的资源的输入流。2.什么叫socket?怎样建立socket连接?3.ServerSocket对象调用accept方法返回一个什么类型的对象?4.InetAddress对象使用怎样的格式来表示自己封装的地址信息?5.参照例子6,使用套接字连接编写网络程序,客户输入三角形的三边并发送给服务器,服务器把计算出的三角形的面积返回给客户。6.参照13.6.2节中的示例代码,使用RMI技术让客户调用远程对象读取服务器上的一个文本文件。习题141.为了操作Derby数据库,需要把Java安装目录目录db/lib下的那些jar文件复制到Java运行环境的扩展中?2.参照例子2,编写一个应用程序来查询Derby数据库,用户可以从键盘输入数据库名、表名。3.使用预处理语句的好处是什么?4.什么叫事务,事务处理步骤是怎样的?
献花(0)
+1
(本文系太好学原创)