程序改错
程序改错
1.题目:按照如下公式求自然数e的近似值,要求误差小于0.0001:
e=1+1/1!+1/2!+1/3!+1/4!+...+1/n!+...
public class Prog1
{
/***********FOUND***********/
public static void main(args[]); 括号中加入【String】
{
int i=1,j;
/***********FOUND***********/
double sum=1,fact=0; 【fact=0】改为【fact=1】
do
{
fact=fact*i;
/***********FOUND***********/
sum=sum+fact; 【sum=sum+fact】改为【sum=sum+1/fact】
i++;
/***********FOUND***********/
} while (fact>=0.0001); 【fact>=0.0001】改为【1/fact>=0.0001】
System.out.println("自然数e的近似值为: "+sum);
}
}
2.题目:输入两个数,输出这两个数之间(包括两个数)所有不能被7
整除的数(每10 个数据一行)
import java.io.*;
public class Prog1
{
public static void main(String args[]) throws IOException
{
int n,m,t,i,p;
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个整数:");
n=Integer.parseInt(buf.readLine());
System.out.print("请输入另一个整数:");
m=Integer.parseInt(buf.readLine());
/***********FOUND***********/
if(m>n)【m {t=m; m=n; n=t; } /***********FOUND***********/ p=1; 【p=0】 for(i=n;i<=m;i++) /***********FOUND***********/ if(i%7==0) 【i%7!=0】 {System.out.println(i+"\t"); p++; if (p%10==0) /***********FOUND***********/ System.out.println【()】; } } } 3.题目:从键盘上输入一个整数n,计算n+n×n+n×n×n+n×n×n×n的值import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { int n,i; double s,r; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一个整数:"); /***********FOUND***********/ n=integer(buf.readLine()); 【n=integer.parseInt(buf.readLine());】 s=0; r=0; 【r=1;】 for(i=1;i<4;i++) 【for(i=1;i<=4;i++)】 { r=n*n; 【r=r*n】 s=s+r; } System.out.println("和值是:"+s); } } 4.题目:从键盘读入字符,直到接收到一个#号为止,计算并输出空 格的数量 import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { char ch; int sp; 【sp=0】 System.out.println("请输入若干字符(以#结束):"); do { ch=【(char)】System.in.read(); if(ch=='#')【ch==''】 sp++; } while(ch=='#'); 【ch!='#'】 System.out.println("空格数是:"+sp); } } 5.题目:打印输出如下图形: * * * * * * * * * * * * * * * * * * * * * * * * * public class Prog1 { /***********FOUND***********/ public static void main(【String】args[]) { int i,j; /***********FOUND***********/ for (i=1;i<【=】5;i++) { for(j=1;j System.out.print(" "); /***********FOUND***********/ for (j=1;j<=11-2*i;j--【j++】) System.out.print("* "); /***********FOUND***********/ System.out.print【ln】(); } } } 6. 题目:计算1/1+1/2+1/3+...+1/100 的值 public class Prog1 { public static void main( String args[ ]) { /***********FOUND***********/ int sum=0.0; 【double sum=0.0; 】 /***********FOUND***********/ for(int i=1; i<【=】100; i++) /***********FOUND***********/ sum+=1/【(double)】i; /***********FOUND***********/ System.out.println( "sum=",sum );【"sum="+sum】 } } 7.题目:从键盘上输入一个字符,判断该字符是数字字符、英文字符 还是其他字符 import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { /***********FOUND***********/ boolean c; 【char c】 /***********FOUND***********/ c=【(char)】System.in.read(); if (c>='0'&&c<='9') System.out.println(c+"是数字字符"); /***********FOUND***********/ else if(c>='A'&&c<='Z'&&【||】c>='a'&&c<='z') System.out.println(c+"是英文字符"); /***********FOUND***********/ end if 【else】 System.out.println(c+"是其他字符"); } 8.题目:从键盘上输入一个正整数,计算该数的各位数字之和import java.io.*; /***********FOUND***********/ public Prog1 中间添加【class】 { public static void main(String args[]) throws IOException { int m,s; 【s】改为【s=0】 BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一个自然数:"); m=Integer.parseInt(buf.readLine()); /***********FOUND***********/ while(m!=0) { /***********FOUND***********/ s=s+m/10; 【s=s+m/10】改为【s=s+m%10】 /***********FOUND***********/ m=m%10; 【m=m%10】改为【m=m/10】 } System.out.print("其各位数字之和为:"+s); } } 9. 题目:计算斐波纳契数列的前20项,并以每行5项的形式输出。 (斐波纳契数列的第一项为0,第二项为1,其后各项依 次为相临前两项之和,即0,1,1,2,3,5,8...) public class Prog1 { public static void main(String args[]) { int f1,f2,f3,i; /***********FOUND***********/ f3=0; 【f1=0;】 f2=1; /***********FOUND***********/ System.out.println(f1+" "+f2+" ");【print】 for (i=3;i<=20;i++) {f3=f1+f2; System.out.print(f3+" "); /***********FOUND***********/ if (i%5=0) 【if(i%5==0)】 System.out.println(); f1=f2; /***********FOUND***********/ f2=f1; 【f2=f3;】 } } } 10.题目:输出1到100之间的所有完全数。(完全数是其所有因子( 包括1但不包括该数本身)的和值等于该数自身的数)public class Prog1 { public static void main(String args[]) { /*****************FOUND*****************/ int n,sum=0; 【sum】 for (n=1;n<=100;n++) /*****************FOUND*****************/ sum=sum; 【sum=0】 for(int k=1;k { /*****************FOUND*****************/ if(n/k==0) 【if(n%k==0) 】 sum+=k; } /*****************FOUND*****************/ if(sum=n) 【if(sum==n) 】 System.out.print(n+"\t"); } } } 11. 题目:根据学生的考试的百分制成绩得出分数等级。 (90~100为A级,80~89为B级,70~79为C级,60~69为D级,60分以下为E级) import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { int grade; /*****************FOUND*****************/ boolean str;【String str】 BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入考试成绩:"); str=buf.readLine(); /*****************FOUND*****************/ grade=Int.parseInt(str); 【grade=Integer.parseInt(str)】 System.out.print("对应的级别为:"); /*****************FOUND*****************/ if (grade>90)【if(grade>=90)】 System.out.println("A"); else if (grade>=80) System.out.println("B"); else if (grade>=70) System.out.println("C"); else if (grade>=60) System.out.println("D"); /*****************FOUND*****************/ otherwise 【else】 System.out.println("E"); } } 12.题目:求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--) 【j++】 /***************FOUND***************/ if( i%j!=0 ) 【if(i%j==0)】 break; if (j>i-1) { System.out.print(" "+i); n++; if( n==5 ) { /***************FOUND***************/ System.out.print(); 【System.out.println();】 n=0; } } } System.out.println(); } } 13.题目:从键盘上输入一个整数n,求比n大的最小的素数 import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { int n,i; /***********FOUND***********/ 【boolean】b; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一个整数:"); n=Integer.parseInt(buf.readLine()); do {n=n+1; b=true; for(i=2;i /***********FOUND***********/ if (n【%】i==0) { b=false; /***********FOUND***********/ 【break】; } /***********FOUND***********/ }while(b==【false】);【!b】 System.out.println("所求的素数是"+n); } } 14.题目:水仙花是指其个位、十位和百位的立方和等于这个三位数本 身的数,求出所有的水仙花数 public class Prog1 { /***********FOUND***********/ public static void 【main】(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(); } } 15.题目:从键盘上接受用户输入的10个整数,并输出这10个整数的 最大值和最小值 import java.io.* ; public class Prog1 { public static void main(String args[ ]) throws IOException { int i, n=10, max, min,temp,sum=0; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); /***********FOUND***********/ max=min【= 】Integer.parseInt(buf.readLine()); /***********FOUND***********/ for ( i=【2 】; i<=n; i++ ) { temp=Integer.parseInt(buf.readLine()); if (temp > max ) /***********FOUND***********/ 【max=temp】; if (temp < min) /***********FOUND***********/ 【min=temp;】 } System.out.println("max="+max+"\nmin="+min); } } 16.题目:从键盘上输入三个整数,按从大到小的顺序输出 import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { /***********FOUND***********/ int a,b,c,【t】; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入第一个整数:"); a=Integer.parseInt(buf.readLine()); System.out.print("请输入第二个整数:"); b=Integer.parseInt(buf.readLine()); System.out.print("请输入第三个整数:"); c=Integer.parseInt(buf.readLine()); if(a {t=a; /***********FOUND***********/ 【a=b;】 b=t; } /***********FOUND***********/ if (a【<】c) {t=a; a=c; c=t; } if(b {t=b; b=c; /***********FOUND***********/ c=【t】; } System.out.println("结果是:"+a+" "+b+" "+c); } } 17.题目:计算并输出500以内最大的10个素数之和 public class Prog1 { public static void main(String args[]) { int sum=0,n=0,j,num=500; /***********FOUND***********/ while ((num >= 2) && (n <=10)) 【(n <=10))】改为【(n <10))】 { for (j=2; j<=num/2; j++ ) if (num % j ==0 ) /***********FOUND***********/ continue; 【continue】改为【break】 if (j>num/2) { sum=sum+num; /***********FOUND***********/ n--; 【n--】改为【n++】 } /***********FOUND***********/ num++; 【num++】改为【num--】 } System.out.println(sum); } } 18.题目:求100以内的孪生素数(孪生素数是指两个素数的差值为2 的素数,例如3和5,11和13等) public class Prog1 { public static void main(String args[]) { int i; System.out.println("1~100的孪生素数有:"); for(i=2;i<100;i++) /***********FOUND***********/ if(prime(i)||prime(i+2)) 【||】改为【&&】 System.out.println(i+"与"+(i+2)); } /***********FOUND***********/ static 【int】prime(int n) 标记【int】改为【boolean】 {int i; for(i=2;i if (n%i==0) break; if (i>=n) /***********FOUND***********/ return false; 【false】改为【true】 else /***********FOUND***********/ return true; 【true】改为【false】 } } 19.题目:求键盘上输入的一个整数的所有因子,以5个一行的形式输出 ,并求出所有因子之和。(如果一个整数a能被整数b整除, 则b是a的因子。) import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { int n,cn=0,sum=0; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一个整数:"); n=Integer.parseInt(buf.readLine()); System.out.println(n+"的所有因子如下:"); /***********FOUND***********/ for(int k=1;k { /***********FOUND***********/ if(n%k=0) 【(n%k=0)】改为【(n%k==0)】 {System.out.print(k+" "); cn++; /***********FOUND***********/ if (cn/5==0) 【(cn/5==0)】改为【(cn%5==0)】 System.out.println(); /***********FOUND***********/ 【}】sum+=k; 此【} 】放【;】后面 } System.out.println(); System.out.println("所有因子和值是:"+sum); } } 20.题目:求出数组a中能被3整除的数的和值 import java.io.* ; public class Prog1 { public static void main(String args[ ]) { /***********FOUND***********/ int i, s=1 ;【s=1】改为【s=0】 int a[ ]= {10,20,30,40,50,60,70,80,90 }; /***********FOUND***********/ for ( i=0; i /***********FOUND***********/ if ( a[i]/3==0 ) 【a[i]/3==0】改为【a[i]%3==0】/***********FOUND***********/ s=a[i]; 【s=a[i]】改为【s+=a[i]】 System.out.println("s="+s); } } 21.题目:在屏幕上输出如下图形 * * * * * * * * * * * * * * * * * * * * * * * * * public class Prog1 { public static void main(String args[]) { int i,j; /***********FOUND***********/ for (i=1;i<4;i++) 【i<4】改为【i<=4】 { for(j=1;j<=4-i;j++) System.out.print(" "); /***********FOUND***********/ for (j=1;j<=i-1;j++) 【j<=i-1】改为【j<=2*i-1】 System.out.print("* "); /***********FOUND***********/ System.out.print(); 【print】改为【println】 } for (i=1;i<=3;i++) { /***********FOUND***********/ for(j=1;j System.out.print(" "); for (j=1;j<=7-2*i;j++) System.out.print("* "); System.out.println(); } } } 22.题目:从键盘读入若干个字符,以#结束,将字符做转换后输出( 所有的大写字母转换成小写字母,其他字符不做任何更改), 最后显示所有大小写转换的总数。提示:小写字母的编码 比大写字母大32 import java. io.*; public class Prog1 { public static void main(String args[]) throws IOException { char ch; /***********FOUND***********/ int changes; 【changes】改为【changes=0】 System.out.println("输入一串以#号结束的字符:"); do { ch=(char)System.in.read(); /***********FOUND***********/ if(ch<='A'&ch>='Z') 【ch<='A'&ch>='Z'】改为【ch>='A'&ch<='Z'】 { /***********FOUND***********/ ch=(char)(ch-32); 【(ch-32)】改为【(ch+32)】 changes++; } System.out.print(ch); /***********FOUND***********/ }while(ch=='#'); 【ch=='#'】改为【ch!='#'】 System.out.println(); System.out.println("转换的字符数为:"+changes); } } 23.题目:输出如下数字塔: 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; /***********FOUND***********/ for (i=1;i<5;i++) 【i<5】改为【i<=5】 { for(j=1;j<=5-i;j++) System.out.print(" "); 【(" ")】改为【(j+" ")】 for (j=1;j /***********FOUND***********/ System.out.print(i+" "); /***********FOUND***********/ for (j=i;j>1;j--) 【j>1】改为【j>=1】 System.out.print(j+" "); /***********FOUND***********/ System.out.print(); } } } 24.题目:从键盘上输入一个自然数m,将m的立方表示成m个连续的奇 数之和。提示:其中最大的奇数为m×(m+1)-1 import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { int m,t,p,s; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一个自然数:"); m=Integer.parseInt(buf.readLine()); /***********FOUND***********/ p=0; 【p=0】改为【s=0】 p=m*(m+1)-1; System.out.print(m+"×"+m+"×"+m+"="+p); /***********FOUND***********/ t=m-1; 【t=m-1】改为【t=m】 do { /***********FOUND***********/ s=s+t; 【s=s+t】改为【s=s+p】 t--; p=p-2; System.out.print("+"+p); /***********FOUND***********/ }while(p==0); 【p==0】改为【s==m*m*m】 System.out.println("="+s); } } 25.题目:设s=11×22×33×…×nn,求s不大于100000000时最大的n import java.io.*; public class Prog1 { public static void main(String args[]) throws IOException { /***********FOUND***********/ int s; 【long s】 int n; /***********FOUND***********/ s=0; 【s=1 】 n=0; /***********FOUND***********/ while (s>100000000) 【while (s<=100000000)】 { n++; /***********FOUND***********/ s=s+11*n; 【s=s*11*n;】 } System.out.println("结果为:"+(n-1)); } } 26.题目:某学校1990年在校生人数为2700,计划年增长率为10%。试计' 算出1991~2000年每年在校生人数 /***********FOUND***********/ public Prog1 【public class progl】 { public static void main(String args[]) { int i; /***********FOUND***********/ int n=2700,v=0.1; 【double n=2700,v=0.1;】 /***********FOUND***********/ for (i=1991;i<2000;i++) 【for(i=1991;i<=2000;i++)】 { /***********FOUND***********/ n=n*v; 【n=n*(1+v);】 System.out.println(i+"年在校生人数为"+(int)n); } } } 27.题目:求1!+2!+3!+ (10) public class Prog1 { public static void main(String args[]) { /*****************FOUND*****************/ int i=-1; 【int i=1】 /*****************FOUND*****************/ int sum=0,fact=1; 【int 】改为【double】/*****************FOUND*****************/ while(i<10); 【i<=10】 { fact=fact*i; sum=sum+fact; i++; /*****************FOUND*****************/ end while System.out.println("和值是"+sum); } } 【}】 28.题目:求自然数1至100之间各奇数平方和并输出 public class Prog1 { public static void main(String args[]) { /***********FOUND***********/ int i,j,【s 】; //定义添加s s=0; /***********FOUND***********/ i=0; 【i=1】 while(i<100) { /***********FOUND***********/ if(i%2==0) 【i%2!=0】 s=s+i; i=i+2; } /***********FOUND***********/ System.out.println("和值是:"+i);【+s】 } } 29.题目:求下列分数序列的前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); } } 30.题目:求出1~1000以内的完全平方数,要求每行输出5个数(完全 平方数是指能够表示成另一个整数的平方的整数) import java.io.*; public class Prog1 { public static void main(String args[]) { int n,i,p; /***********FOUND***********/ p=1; for(i=1;i<40;i++) { /***********FOUND***********/ n=i; if (n>1000) /***********FOUND***********/ break; System.out.print(n+"\t"); p++; /***********FOUND***********/ if(p/5==0) System.out.println(); } } } 程序改错 ================================================== 题号:7471 /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 ------------------------------------------------------*/ #include num/=10; 【或】 num=num/10; 位置 3: } while(num) ; 【或】 while(num!=0) 题号:7383 /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67, 75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分的人数为1人。 ------------------------------------------------------*/ #include "stdio.h" float Min=0; int J=0; float fun(float array[],int n) { int i;float sum=0,ave; Min=array[0]; for(i=0;i 1 / 4 程序改错题(共15题) 1、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中所有元素的平均值,结果保留两位小数。 例如,当一维数组a 中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。 #include 程序改错C
最新二级C语言考试题库及答案程序改错专项练习 精华版
c语言程序改错