当前位置:文档之家› 部分习题答案

部分习题答案

}
public void testVisitControl () {
System.out.println(a+dispA());
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);
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);
}
}
/*do while语句实现*/
public class xt021203{
public static void main(String args[ ]) {
class A{
void f() {
int u=(int)(Math.random()*100);
int v,p;
if (u>50) {v=9;}
p=v+u;
}
要求:指出错误,说明错误原因,并改正。
【答案】
错误原因:Java语言规定,任何变量在使用之前,必须对变量赋值。由于u的值是由随机方法产生的,当u<=50时,v在使用前没有赋值,此时执行p=v+u;会出现错误。
}
System.out.println();
}
}
}
12.分别利用for语句、while语句以及do while语句编写一个求和程序(即sum=1+2+3+…+n)。
【答案】
/*for语句实现*/
pulic static void main(String args[ ]) {
改正措施:将int v,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[]) {
System.out.println("及格");
break;
case 3 :
System.out.println("中等");
break;
case 4 :
System.out.println("良好");
break;
case 5 :
System.out.println("优秀");
break;
}
}
(3)ch1='H'+k;
(4)ch2=98;
【答案】'H'+k的类型为int型。
(3)有错。'H'+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。
6.请指出下面程序在编译时是否会出现错误。如果有,请改正。
public classdoubleTointExample{
public static void main(String args[ ]){
3.请指出下列声明字符变量ch的语句是否存在错误?如果有,请改正。
(1)char ch = 'A';
(2)char ch = '\u0020';
(3)char ch = 88;
(4)char ch = 'ab';
(5)char ch = "A";
【答案】(4)错,因为关键字char是用于声明字符变量,不可声明字符串变量。
【答案】答案见教材<略>。
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; }
}
10.请编写输出乘法口诀表的程序。
乘法口诀表的部分内容如下:
1*1=1
1*2=2 2*2=3
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
……
public classxt0210
{
public static void main(String args[ ])
{final double PI = 3.141592654;
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("z="+z);
}
}
【答案】
x=1
y=3
z=3
8.请指出下面程序片段输出的结果是什么。
int a;
double b=1,c=2;
a=(int)(b+c);
System.out.println("a="+a);
}
}
【答案】无错误。输出结果:a=3
7.请指出执行完下面程序后x、y和z的输出值是多少?请上机验证。
public classdoubleTointExample{
public static void main(String args[ ]){
/*switch描述程序*/
public class xt020902 {
public static void main(String args[ ]) {
int score=4;
switch (score)
{
case 1 :
System.out.println("不及格");
break;
case 2 :
}
System.out.println();
}
for(i=1;i<=4;i++)
{
for(k=1;k<=i-1;k++)
System.out.print(" ");
for(j=1;j<=5-i;j++)
{
num=num+1;
ch=(char)num;
System.out.print(ch+" ");
{
System.out.println("你好,很高兴学习Java");
A a=new A();
a.f();
}
}
要求:指出错误,说明错误原因,并改正。
【答案】
错误原因:一个程序中不可同时申明一个以上的public类。
改正措施:将public class A变为class A即可
(2)类A的定义如下:
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);
}
}
13.复习break和continue语句,调试本章设计这两个语句的程序。
【答案】答案见教材<略>。
14.上机调试本章提供的输入输出语句。
{System.out.println("及格");}
else if (score==3)
{System.out.println("中等");}
else if (score==4)
{System.out.println("良好");}
else{System.out.println("优秀");}
}
}
【答案】D
2.改错题
(1)一个名为Hello.java程序如下:
//Hello.java程序
public class A
{
void f()
{ System.out.println("I am A"); }
}
class B
{ }
public class Hello
{
public static void main (String args[ ])
【答案】
/*if-else描述程序*/
public class xt020901 {
public static void main(String args[ ]) {
int score=4;
if (score==1)
{System.out.println("不及格");}
相关主题