Java基础教程(清华大学出版社第2版)部分习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
for(k=1;k<=i-1;k++) System.out.pri nt("");
for(j=1;j<=5-i;j++)
{
num=nu m+1; ch=(char) num;
System.out.print(ch+""); }
System.out.pri ntl n();
}
}
12.分别利用for语句、while语句以及do while语句编写一个求和程序(即sum=1+2+3+…+n)。
酽锕极額閉镇桧猪訣锥顧荭钯。
【答案】
/*for语句实现*/
public class xt021201{
public static void main(String args[]) {
int i,n=100;
long sum=0;
for(i=1;i<=n;i++) sum=sum+i;
System.out.println("sum[1:n]="+sum);
(2)char ch1,ch2;
(3)ch1='H'+k;
(4)ch2=98;
【答案】'H'+k的类型为int型。
(3)有错。'H'+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。
6.请指出下面程序在编译时是否会出现错误。如果有,请改正。
public class doubleTointExample{
a.f();
}
}要求:指出错误,说明错误原因,并改正。
【答案】
错误原因:一个程序中不可同时申明一个以上的public类。 改正措施:将public class A变为class A即可
(2)类A的定义如下:
class A{ void f(){
int u=(int)(Math.random()*100);
public class doubleTointExample{
public static void main(String args[]) {
int x,y,z;
x=1;
y=2;
z=(x+y>3?x++:++y);
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println(面积="”+area);
}
}
【答案】
public class xt0210{
public static void main(String args[ ]) {
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
System.out.pri nt(j+"*"+i+"="+i*j+""); System.out.pri ntl n();
【答案】C
D. abstract void method()厦礴恳蹒骈時盡继價骚卺癩龔。
答案】A(3)Java中main()函数的值是( )。
A. StringB. intC. char
【答案】D
2.改错题
(1)一个名为Hello.java程序如下://Hello.java程序public class A
}
}
/*while语句实现*/
public class xt021202{
public static void main(String args[]) {
int i,n=100;
long sum=0;
i=1;
while(i<=n)
{
sum=sum+i;
i=i+1;
}
System.out.println("sum[1:n]="+sum);
System.out.println("z="+z);
}
}
【答案】
x=1
y=3
z=3
8.请指出下面程序片段输出的结果是什么。
int i=1,j=10;
do
{
if (i++>--j) break;
}while(i<5);
System.out.println(“i=--”->”+i++“”<j=”+j);
public static void main(String args[]) {
int score=4;
switch (score)
{
case1 :
System.out.println("不及格");break;
case2 :
System.out.println("及格");break;
case3 :
A a=new A();
A.f(3);
a.f(4);
a.g(2,5);
A.g(3,2);
}
}要求:指出错误,说明错误原因,并改正。
【答案】
错误原因:A.g(3,2);由于类方法不仅可以由对象调用而且还可以直接由类名调用,而实例
方法不能由类名调用。鹅娅尽損鹌惨歷茏鴛賴縈诘聾。
改正措施:删除A.g(3,2);或将A .g(3,2);改为a.g(3,2);
else if (score==3)
{System.out.println("中等");}
else if (score==4)
{System.out.println("良好");}
else {System.out.println("优秀");}
}
}
/*switch描述程序*/public class xt020902{
int v,p;
if (u>50) {v=9;} p案】
错误原因:Java语言规定,任何变量在使用之前,必须对变量赋值。由于u的值是由随机方
法产生的,当u<=50时,v在使用前没有赋值,此时执行p=v+u;会出现错误。茕桢广鳓鯡选块 网羈泪镀齐鈞。
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16public class xt0210
{
public static void main(String args[])
{final double PI= 3.141592654;double area,r; area =PI*r*r;
改正措施:将intv,p;变为int v=0,p;即可
(3)B.java内容如下:
class A{
int x,y;
static float f(int a)
{return a;}
float g(int x1,int x2)
{return x1*x2;}
}
public class B{
public static void main(String args[]){
4.如果int x=1,y=-2,n=10;那么,表达式x+y+(--n)*(x>y&&x>0?(x+1):y)的值是什么类
型?结果是多少?聞創沟燴鐺險爱氇谴净祸測樅。
【答案】int型,值为17。
5.如果int k=1,那么'H'+k的类型是什么?下面语句是否存在差错?如果有,请改正。
(1)int k=1;
{
for(k=1;k<=4-i;k++) System.out.pri nt("");
for(j=1;j<=i;j++)
{
num=nu m+1; ch=(char) num;
System.out.print(ch+"");
}
System.out.pri ntl n();
} for(i=1;i<=4;i++)
【答案】i=5<--->j=6
9.请分别用if-else语句和switch语句编写实现下列功能的程序。
某同学某门课的成绩可能的结果为1,2,3,4,5。当成绩为1时请输出不及格;成绩为2时请输出及格;成绩为3时请输出中等;成绩为4时请输出良好;成绩为5时请输出优秀。残骛楼諍锩瀨濟溆塹籟婭骒東。
【答案】
}
13.复习break和continue语句,调试本章设计这两个语句的程序。 【答案】答案见教材<略>。
14.上机调试本章提供的输入输出语句。 【答案】答案见教材<略>。
第三章
1.选择题
(1)不允许作为类及类成员的访问控制符的是()。
A. publicB. private
C. staticD. protected
}
}
}
11.请编写程序实现如下效果图。
A
B0
DEF
GHIJ
KLMN
OPQ
R S
T
【答案】
public class xt0211{
public static void main(String args[ ]) { int i,j,k,num;
char ch;
num='A'-1;
for(i=1;i<=4;i++)
3.简答题
(1)简述面向对象程序和面向过程程序设计的异同。
(2)简述类中成员变量的分类及差异。
(3)简述类中方法的分类及差异。
(4)简述类中变量的初始化方式。
(5)简述类中成员的几种访问控制修饰符的差异,并举例说明。
(6)简述构造方法的作用。 【答案】答案见教材<略>。
第四章
1.简述Java中继承的含义及特点。
3.请指出下列声明字符变量ch的语句是否存在错误?如果有,请改正。
(1)char ch='A';
(2)char ch='\u0020';
(3)char ch= 88;
(4)char ch='ab';
(5)char ch="A";
【答案】(4)错,因为关键字char是用于声明字符变量,不可声明字符串变量。
}
}
/*do while语句实现*/
public class xt021203{
public static void main(String args[]) {
int i,n=100;
long sum=0;
i=1;
do
{
sum=sum+i;
i=i+1;
}
while (i<=n);
System.out.println("sum[1:n]="+sum);
{
void f()
{System.out.println("I am A");}
}class B{ }
public class Hello
{
public static void main (String args[])
{
System.out.println("你好,很高兴学习Java"); A a=new A();
System.out.println("中等");break;
case4 :
System.out.println("良好");break;
case5 :
System.out.println("优秀");break;
}
}
}
10.请编写输出乘法口诀表的程序。 乘法口诀表的部分内容如下:
1*1=1
1*2=2 2*2=3
/*if-else描述程序*/public class xt020901{
public static void main(String args[]) {
int score=4;
if (score==1) {System.out.println("不及格");}else if (score==2)
{System.out.println("及格");}
Java基础教程(清华大学出版社第2版)部分习题答案
第一章 【答案】答案见教材<略>。
第二章
1.请说明注释的作用。 【答案】答案见教材<略>。
2.判断下列那些是标识符?
(1)3class
(2)byte
(3)?room
(4)Beijing
(5)beijing
【答案】(1)(2)(3)不是标识符, 因为标识符不能已数字开始, 也不能是保留关键字 (如byte) , 不能以?开始。矚慫润厲钐瘗睞枥庑赖賃軔朧。
public static void main (String args[]) {
B bb=new B(); bb.testVisitControl();
}
public void testVisitControl() {
System.out.println(a+dispA()); System.out.println(b+dispB()); System.out.println(c+dispC()); System.out.println(d+dispD());
【答案】答案见教材<略>。
2.指出下列程序中的错误,请说明错误原因。class A{
public int a= 1;
private int b= 2;
protected int c= 3;
int d=4;
public int dispA(){return a;}
private int dispB(){return b;}protected int dispC(){return c;}int dispD(){return d;}}public class B extends A{
public static void main(String args[]) {
int a;
double b=1,c=2;
a=(int)(b+c);
System.out.println("a="+a);
}
}
【答案】无错误。输出结果:a=3
7.请指出执行完下面程序后x、y和z的输出值是多少?请上机验证。
相关文档
最新文档