java程序改错12道及答案

/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目1:求1!+2!+3!+...+10!

-------------------------------------------------------*/

public class Prog1
{ public static void main(String args[])
{
/*****************FOUND*****************/
int i=-1;
/*****************FOUND*****************/
int sum=0,fact=1;
/*****************FOUND*****************/
while(i<10);
{
fact=fact*i;
sum=sum+fact;
i++;
/*****************FOUND*****************/
end while
System.out.println("和值是 "+sum);
}
}
1)int i=1;
2)double sum=0,fact=1;或long sum=0,fact=1;或float sum=0,fact=1;
3)while(i<=10)或while(i<11)
4)}
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目2:计算 1/1+1/2+1/3+...+1/100 的值

-------------------------------------------------------*/

public class Prog1
{
public static void main( String args[ ])
{
/***********FOUND***********/
int sum=0.0;
/***********FOUND***********/
for(int i=1; i<100; i++)
/***********FOUND***********/
sum+=1/i;
/***********FOUND***********/
System.out.println( "sum=",sum );
}
}
1)double sum=0.0;或 float sum=0.0;
2)for(int i=1;i<=100;i++) 或 for(int i=1;i<101;i++)
3)sum+=1/(double)i; 或 sum+=1.0/i; 或 sum+=1.0/(double)i; 或 sum+=1/(float)i;
4)System.out.println("sum="+sum);


/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目3:求自然数1至100之间各奇数和并输出

-------------------------------------------------------*/

public class Prog1
{
public static void main(String args[])
{
/***********FOUND***********/
int i,j;
s=0;
/***********FOUND***********/
i=0;
while(i<100)
{
/***********FOUND***********/
if(i%2==0)
s=s+i;
i=i+2;
}
/***********FOUND***********/
System.out.println("和值是:"+i);
}
}
1)int i,j,s;或int i,s;
2)i=1;
3)if(i%2!=0)或if(i%2==1)
4)System.out.println("和值是:"+s);
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目4:计算1到100的整数和值

-------------------------------------------------------*/

public class Prog1
{
/***********FOUND***********/
public static void main (args[])
{
/***********FOUND***********/
int n=100,sum=1;
while(n>0)
{
sum+=n;
/***********FOUND***********/
n++;
}
/***********FOUND***********/
System.println("Sum is "+sum);

}
}
1)public static void main(String args[])
2)int n=100,sum=0;
3)n--;或n-=1;或n=n-1;
4)System.out.println("Sum is"+sum);
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目5:求1到100的偶数之和,奇数之积

-------------------------------------------------------*/

public class Prog1
{ public static void main(String args[])
{
/***********FOUND***********/
int i,j,sum=1;
/***********FOUND***********/
int product=1;
for(i=1;i<=100;i++)
{
/***********FOUND***********/
if (i%2!=0)
sum+=i;
else
/***********FOUND***********/
product=i;
}
System.out.println("偶数之和是 : "+sum);
System.out.println("奇数之积是 : "+product);
}
}
1)int i,j,sum=0;
2)double product=1;或float product=1;
3)if(i%2==0)或if(i%2!=1)
4)product*=i;或product=product*i;或product=i*product;
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目6:计算并输出500以内最大的10个能被3或7整除的自然数之和

-------------------------------------------------------*/

public class Prog1
{
public static void main(String args[])
{
int k,s=0,mc=0;
/***********FOUND***********/
for (k=500;k>0;k++)
{
/***********FOUND***********/
if (k%3 == 0 && k%7==0)
{
/***********FOUND***********/
s=k;
mc++;
}
/***********FOUND***********/
if (mc=10)
break;
}
System.out.println("Sum is "+s);
}
}
1)for(k=500;k>0;k--) 或 for(k=500;k>=1;k--)
2)if(k%3==0||k%7==0)
3)s=s+k;或s=k+s;或 s+=k;
4)if(mc==10)
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目7:打印输出如下图形:

* * * * * * * * *
* * * * * * *
* * * * *
* * *
*

-------------------------------------------------------*/

public class Prog1
{
/***********FOUND***********/
public static void main(args[])
{ int i,j;
for (i=1;i<=5;i++)
{
/***********FOUND***********/
for(j=1;j<=i;j++)
System.out.print(" ");
/***********FOUND***********/
for (j=1;j<=11-2*i;j--)
System.out.print("* ");
/***********FOUND***********/
System.out.print();
}
}
}
1)public static void main(String args[])
2)for(j=1;j3)for(j=1;j<=11-2*i;j++)
4)System.out.println();
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目8

:在屏幕上输出如下图形
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

-------------------------------------------------------*/

public class Prog1
{
public static void main(String args[])
{ int i,j;
for (i=1;i<4;i++)
{
/***********FOUND***********/
for(j=1;j<=i;j++)
System.out.print(" ");
/***********FOUND***********/
for (j=1;j<=i-1;j++)
System.out.print("* ");
/***********FOUND***********/
System.out.print();
}
for (i=1;i<=3;i++)
{
/***********FOUND***********/
for(j=1;jSystem.out.print(" ");
for (j=1;j<=7-2*i;j++)
System.out.print("* ");
System.out.println();
}

}
}
1)for(j=1;j<=4-i;j++)
2)for(j=1;j<=2*i-1;j++)
3)System.out.println();
4)for(j=1;j<=i;j++)
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目9:水仙花是指其各位、十位和百位的立方和等于这个三位数本
身的数,求出所有的水仙花数

-------------------------------------------------------*/

public class Prog1
{
/***********FOUND***********/
public static void (String args[])
{ int n,i,j,k;
/***********FOUND***********/
for(n=100,n<1000,n++)
{
/***********FOUND***********/
i=n/10;
j=n/10%10;
k=n/100;
/***********FOUND***********/
if (n=i*i*i+j*j*j+k*k*k)
System.out.print(n+" ");
}
System.out.println();
}
}
1)public static void main(String args[])
2)for(n=100;n<1000;n++) 或for(n=100;n<=999;n++)
3)i=n%10;
4)if(n==i*i*i+j*j*j+k*k*k)
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目10:求下列分数序列的前10项之和
2/1,3/2,5/3,8/5,13/8,21/13......

-------------------------------------------------------*/

import java.io.*;
public class Prog1
{
public static void main(String args[])
{
int a,b,t,i;
/***********FOUND***********/
int sum;
a=2;
b=1;
sum=0;
for(i=1;i<=10;i++)
{
/***********FOUND***********/
sum=sum+a/b;
t=a;
/***********FOUND***********/
a=a-b;
/***********FOUND***********/
b=a;
}
System.out.println("和值是:"+sum);
}
}
1)double sum;或 float sum;
2)sum=sum+(double)a/b;或sum=sum+a/(double)b;或sum=sum+(float)a/b;或sum...
3)a=a+b;或a=b+a;或a+=n;
4)b=t;
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目11

:求100到200之间的素数,并以5个一行的形式显示在屏幕上

-------------------------------------------------------*/

public class Prog1
{
/***************FOUND***************/
public static void main(args[]);
{ int n=0,j;
for(int i=101;i<200;i+=2)
{
/***************FOUND***************/
for( j=2;j<=i-1;j--)
/***************FOUND***************/
if( i%j!=0 )
break;
if (j>i-1)
{ System.out.print(" "+i);
n++;
if( n==5 )
{
/***************FOUND***************/
System.out.print();
n=0;
}
}
}
System.out.println();
}
}
1)public static void main(String args[])
2)for(j=2;j<=i-1;j++)
3)if(i%j==0)
4)System.out.println();
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------

题目12:输出如下数字塔:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1

-------------------------------------------------------*/

public class Prog1
{
public static void main(String args[])
{ int i,j;
for (i=1;i<=5;i++)
{
/***********FOUND***********/
for(j=1;j<=i;j++)
System.out.print(" ");
for (j=1;j/***********FOUND***********/
System.out.print(i+" ");
/***********FOUND***********/
for (j=i;j>1;j--)
System.out.print(j+" ");
/***********FOUND***********/
System.out.print();
}
}
}
1)for(j=i;j<=5-i;j++)
2)System.out.print(j+" ");
3)for(j=i;j>=1;j--)或for(j=i;j>0;j--)
4)System.out.println();










相关文档
最新文档