Java程序设计 精编教程第2版习题解答Word文档下载推荐.docx
《Java程序设计 精编教程第2版习题解答Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java程序设计 精编教程第2版习题解答Word文档下载推荐.docx(47页珍藏版)》请在冰点文库上搜索。
publicclassMainClass{
publicstaticvoidmain(Stringargs[]){
Teacherzhang=newTeacher();
System、out、println(zhang、add(12,236));
System、out、println(zhang、add(234,120));
Studentjiang=newStudent();
jiang、speak();
3.如果源文件中有多个类,但没有public类,那么源文件的名字只要与某个类的名字相同,并且扩展名就是、java就可以了,如果有一个类就是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名就是、java。
4.行尾风格。
习题三(第3章)
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号与数字组成,第一个字符不能就是数字。
true不就是标识符。
2.关键字就就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不就是关键字。
classimplementsinterfaceenumextendsabstract。
3.boolean,char,byte,short,int,long,float,double。
4.属于操作题,解答略。
5.属于操作题,解答略。
6、publicclassE{
publicstaticvoidmain(Stringargs[]){
charcStart='
A'
cEnd='
Z'
;
for(charc=cStart;
c<
=cEnd;
c++)
System、out、print("
"
+c);
7.不可以。
习题四(第4章)
1.110。
不规范。
2.新亲亲斤!
!
。
3.
publicclassJudgeAward{
voidgiveMess(intnumber){
if(number==9||number==131||number==12){
System、out、println(number+"
就是三等奖"
elseif(number==209||number==596||number==27){
就是二等奖"
}
elseif(number==875||number==316||number==59){
就是一等奖"
else{
未中奖"
}
4.
importjava、util、Scanner;
publicclassComputer{
Scannerreader=newScanner(System、in);
doubleamount=0;
//存放电量
doubleprice=0;
//用户需要交纳的电费
System、out、print("
输入电量:
"
amount=reader、nextDouble();
if(amount<
=90&
&
amount>
=1){
price=amount*0、6;
//计算price的值
elseif(amount<
=150&
=91){
price=90*0、6+(amount-90)*1、1;
elseif(amount>
150){
price=90*0、6+(150-90)*1、1+(amount-150)*1、7;
else{
+amount+"
不合理"
System、out、printf("
电费:
%5、2f"
price);
5.publicclassE{
%2c"
c);
System、out、println();
(c+32));
6.publicclassXiti5{
intsum=0,i,j;
for(i=1;
i<
=1000;
i++){
for(j=1,sum=0;
j<
i;
j++){
if(i%j==0)
sum=sum+j;
if(sum==i)
完数:
+i);
7
publicclassE{
intn=1,i=1,jiecheng=1;
longsum=0;
while(true){
jiecheng=1;
=n;
i++){
jiecheng=jiecheng*i;
sum=sum+jiecheng;
if(sum>
9876)
break;
n++;
满足条件的最大整数:
+(n-1));
习题五(第5章)
1.用类创建对象时。
2.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者就是参数的个数不同,或者就是参数的类型不同。
可以。
3.可以。
不可以。
4.不可以。
5.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。
所有对象的类变量都分配给相同的一处内存,对象共享类变量。
6.CD。
7.【代码1】【代码4】。
8.sum=-100。
9、27。
10.100与20、0。
习题六(第6章)
1.如果子类与父类在同一个包中,那么,子类自然地继承了其父类中不就是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不就是private的方法作为自己的方法,继承的成员或方法的访问权限保持不变。
当子类与父类不在同一个包中时,父类中的private与友好访问权限的成员变量不会被子类继承,也就就是说,子类只继承父类中的protected与public访问权限的成员变量作为子类的成员变量;
同样,子类只继承父类中的protected与public访问权限的方法作为子类的方法。
如果所声明的成员的变量的名字与从父类继承来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子类就会隐藏掉所继承的成员变量。
2.不可以。
3.abstract类。
4.A类就是B类的父类,当用子类创建一个对象b,并把这个对象b的引用放到父类的对象a中时,称a就是b的上转型对象。
5.AD。
6.15、0
8、0。
7.98、0
12。
习题七(第7章)
1.不能。
2.不能。
3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。
那么该接口变量就可以调用被类实现的接口中的方法。
4.15、0
8。
5.18
15。
习题八(第8章)
1.有效。
2.可以。
3.不可以。
4.大家好,祝工作顺利!
习题九(第9章)
1.ABD。
2.Love:
Game。
3.15
abc我们。
4.13579。
5.9javaHello。
6.publicclassE{
Strings1,s2,t1="
ABCDabcd"
s1=t1、toUpperCase();
s2=t1、toLowerCase();
System、out、println(s1);
System、out、println(s2);
Strings3=s1、concat(s2);
System、out、println(s3);
7、publicclassE{
Strings="
charcStart=s、charAt(0);
charcEnd=s、charAt(s、length()-1);
System、out、println(cStart);
System、out、println(cEnd);
8、
importjava、util、*;
Scannerread=newScanner(System、in);
CalendarBeancb=newCalendarBean();
intyear=2000,month=1;
输入年:
year=read、nextInt();
输入月:
month=read、nextInt();
cb、setYear(year);
cb、setMonth(month);
String[]a=cb、getCalendar();
//返回号码的一维数组
char[]str="
日一二三四五六"
、toCharArray();
for(charc:
str){
%3c"
for(inti=0;
a、length;
i++){//输出数组a
if(i%7==0)
//换行
%4s"
a[i]);
classCalendarBean{
String[]day;
intyear=0,month=0;
publicvoidsetYear(intyear){
this、year=year;
publicvoidsetMonth(intmonth){
this、month=month;
publicString[]getCalendar(){
String[]a=newString[42];
Calendarrili=Calendar、getInstance();
rili、set(year,month-1,1);
intweekDay=rili、get(Calendar、DAY_OF_WEEK)-1;
//计算出1号的星期
intday=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
day=31;
if(month==4||month==6||month==9||month==11)
day=30;
if(month==2){
if(((year%4==0)&
(year%100!
=0))||(year%400==0))
day=29;
else
day=28;
weekDay;
i++)
a[i]="
for(inti=weekDay,n=1;
weekDay+day;
a[i]=String、valueOf(n);
n++;
for(inti=weekDay+day;
returna;
9、importjava、util、*;
intyear1,month1,day1,year2,month2,day2;
输入第一个日期的年、月、日(用空格或回车分隔):
year1=read、nextInt();
month1=read、nextInt();
day1=read、nextInt();
输入第二个日期的年月日(用空格或回车分隔):
year2=read、nextInt();
month2=read、nextInt();
day2=read、nextInt();
Calendarcalendar=Calendar、getInstance();
calendar、set(year1,month1-1,day1);
longtimeYear1=calendar、getTimeInMillis();
calendar、set(year2,month2-1,day2);
longtimeYear2=calendar、getTimeInMillis();
long相隔天数=Math、abs((timeYear1-timeYear2)/(1000*60*60*24));
+year1+"
年"
+month1+"
月"
+day1+"
日与"
+
year2+"
+month2+"
+day2+"
日相隔"
+相隔天数+"
天"
10、importjava、util、*;
doublea=0,b=0,c=0;
a=12;
b=24;
c=Math、asin(0、56);
System、out、println(c);
c=Math、cos(3、14);
c=Math、exp
(1);
c=Math、log(8);
11.publicclassE{
publicstaticvoidmain(Stringargs[]){
Stringstr="
ab123you您就是谁?
Stringregex="
\\D+"
str=str、replaceAll(regex,"
System、out、println(str);
12.importjava、util、*;
Stringcost="
数学87分,物理76分,英语96分"
Scannerscanner=newScanner(cost);
scanner、useDelimiter("
[^0123456789、]+"
doublesum=0;
intcount=0;
while(scanner、hasNext()){
try{doublescore=scanner、nextDouble();
count++;
sum=sum+score;
System、out、println(score);
catch(InputMismatchExceptionexp){
Stringt=scanner、next();
总分:
+sum+"
分"
平均分:
+sum/count+"
习题十(第10章)
1.使用。
2.按字节读取文件,按字符读取文件。
4.使用对象流写入或读入对象时,要保证对象就是序列化的。
5.使用对象流很容易得获取一个序列化对象的克隆,只需将该对象写入到对象输出流,那么用对象输入流读回的对象一定就是原对象的一个克隆。
6.
importjava、io、*;
File("
E、java"
try{RandomAccessRandomAccessFile(f,"
rw"
random、seek(0);
longm=random、length();
while(m>
=0){
m=m-1;
random、seek(m);
intc=random、readByte();
if(c<
=255&
c>
=0)
System、out、print((char)c);
else{
bytecc[]=newbyte[2];
random、readFully(cc);
System、out、print(newString(cc));
catch(Exceptionexp){}
7、
publicstaticvoidmain(Stringargs[]){
temp、txt"
try{inOne=new(file);
BufferedReaderinTwo=newBufferedReader(inOne);
to(tempFile);
BufferedWriterout=newBufferedWriter(tofile);
Strings=null;
inti=0;
s=inTwo、readLine();
while(s!
=null){
i++;
out、write(i+"
+s);
out、newLine();
inOne、close();
inTwo、close();
out、flush();
out、close();
to();
catch(IOExceptione){}
8、属于上机操作题,解答略。
9、importjava、io、*;
=newFile("
a、txt"
Scannersc=null;
intcount=0;
try{sc=newScanner(file);
sc、useDelimiter("
while(sc、hasNext()){
try{doubleprice=sc、nextDouble();
sum=sum+price;
System、out、println(price);
catch(InputMismatchExceptionexp){
Stringt=sc、next();
平均价格:
+sum/count);
catch(Exceptionexp){
System、out、println(exp);
习题十一(第11章)
1.Frame容器的默认布局就是BorderLayout布局。
3.
importjava、awt、*;
importjavax、swing、event、*;
importjavax、swing、*;
importjava、awt、event、*;
Computerfr=newComputer();
classComputerextendsJFrameimplementsDocumentListener{
JTextAreatext1,text2;
intcount=1;
doublesum=0,aver=0;
Computer(){
setLayout(newFlowLayout());
text1=new