程序改错

程序改错
程序改错

程序改错

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();

}

}

}

程序改错C

程序改错 ================================================== 题号:7471 /*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改! -------------------------------------------------------- 功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 ------------------------------------------------------*/ #include #include long fun (long num) { /**********ERROR**********/ long k=1 do { k*=num%10 ; /**********ERROR**********/ num\=10; /**********ERROR**********/ }while(!num) ; return (k) ; } void main( ) { long n ; printf("\Please enter a number:") ; scanf("%ld",&n) ; printf("\n%ld\n",fun(n)) ; } 答案: 位置 1: long k=1; 位置 2:

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;iarray [i]) Min=array [i]; /**********ERROR**********/ sum=+array [i]; } /**********ERROR**********/ ave=sum\n; for(i=0;i

最新二级C语言考试题库及答案程序改错专项练习 精华版

1 / 4 程序改错题(共15题) 1、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中所有元素的平均值,结果保留两位小数。 例如,当一维数组a 中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。 #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9},i; int aver,s; s = 0; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最大值和最小值。 例如,当二维数组a 中的元素为: 4 4 34 37 3 12 5 6 5 程序的输出应为:The max is: 37 The min is: 3 。 #include #include void main() { int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min; max = min = a[0][0]; for ( i=0; i<3; i++) for ( j=1; j<3; j++) { if ( max < a[i][j] ) max = a[i][j]; /************found************/ if (min < a[i][j]) min = a[i][j]; } printf("The max is: %d\n", max); printf("The min is: %d\n", min); } 3、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中的最大元素及其下标。 例如,当一维数组a 中的元素为:1,4,2,7,3,12,5,34,5,9, 程序的输出应为:The max is: 34,pos is: 7 。 #include #include void main() { int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max = a[0]; pos = 0; for ( i=1; i<10; i++) /************found************/ if (max > a[i]) { max = a[i]; /************found************/ i = pos; } printf("The max is: %d ,pos is: %d\n", max , pos); } 4、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最小值。 例如,当二维数组a 中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min; min = a[0][0]; for ( i=1; i<3; i++) for ( j=0; j<3; j++) if (min > a[i][j]) { /************found************/ min == a[i][j]; } printf("The min is: %d\n", min); }

c语言程序改错

【程序改错】 1.功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序 打印出来。 char next; next=getchar(); palin(n-1); 2.功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 for (k=4; k<=n; k++) a=b; return d; 3.功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m double y=0.0; 4.功能:编制统计营业员一天的营业额的程序,设程序采用一个循环 实现,每次循环输入一笔交易金额并累计营业额。由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 float sale,sigma; scanf("%f",&sale); sigma=sigma+sale; 5.功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。while(n<8) while(a<1||a>50); for(i=0;i

程序改错2

【程序改错-1】 题目:在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。『错误答案』: 1 int fun(int *a,int *b,int n) 2 *b=c-a;} 3 scanf("%d",&a[i]); 4 max=fun(a,&p,N); 【程序改错-2】 题目:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。程序中共有4条错误语句,请改正错误。 『错误答案』: 1 scanf("%d",p++); 2 max=p; 3 if(★max★==★arr ★) 4 for(i=0;ii;i++) 或 for(p=arr;pj;j++) 或 for(j=0;jj;j++) 3 if(x[j]>x[★j★+★1★]) 或 if(x[★j★+★1]★ =0;i--) 或 for(i=N-2;0<=i;i--) 3 a[★i★+★1 ★]=a[i]; 4 break;} 『Turbo C——程序改错』【程序改错-5】 题目:将一个字符串中第m个字符开始的全部字符复制成为另一 个字符串。 程序中共有4条错误语句,请改正错误。 『错误答案』: 1 { char *p1,*p2; 或{ char *p2,*p1; 2 p1= ★str1★+★m★ -1; 或 p1=-1+★str1★+★m★; 3 while(*p1) 4 strcopy(str1,str2,m); 【程序改错-6】 题目:以下程序的功能是求如下表达式:请改正程序中的错误,使程序能得到正确的运行结果。 『错误答案』: 1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 或 for(i=1;n>=i;i++) 或 for(i=1;ii;i++) 4 s+=1.0/t 或 s=★s★+★1.0★/(float)t; 或 s=★s★ +★1.0★/t; 或 s+=1.0/(float)t 【程序改错-7】 题目:下面程序的功能是利用二维数组输出如图所示的图形。请改正程序中的错误,使程序能得到正确的运行结果。『错误答案』: 1 #define N 7 2 a[i][j]=' '; 3 z=z-1; 或 z--; 或 z=-1+z; 或 z=(n+1)/2-1; 或 z=(1+n)/2-1 4 printf("%c",a[i][j]); 【程序改错-8】 题目:输入一行英文文本,将每一 个单词的第一个字母变成大『错误 答案』: 1 fun(char *p) 或 fun(char p[]) 2 while(*p!='\0') 或 while(*p) 3 k=1;} 4 p++; 或 p=1+p; 或 ++p; 或 p=p+1; 【程序改错-9】 题目:将一个字符串中的大写字母 转换成小写字母。 例如:输入aSdFG输出为 asdfg。 『错误答案』: 1 char fun(char *c) 2 return *c; 或 return (*c); 或 return(*c); 3 { char s[81],*p=s; 4 putchar(*p); 或 printf("%c",*p); 【程序改错-10】 题目:将若干学生的档案存放在一 个文件中,并显示其内容。错误答 案』: 1 { struct student *p 2 FILE *fp; 3 for(p=stu;p<★stu★ +★3★;p++) 或 for(p=stu;★ stu★+★3★>p;p++) 或 for(p=stu;p<=★stu★+★2 ★;p++) 或 for(p=stu;★stu★+ ★2★>=p;p++) 4 printf("%4d %-10s %4d\n",(*p) .num ,p->name,(*p).age); 【程序改错-11】 题目:下列给定程序中,函数fun 的功能是:判断m是否为素数,若 是返回1,否则返回0。主函数的 功能是:按每行5个输出1-100 之间的全部素数。『错误答案』: 1 int fun( int m) 或 fun( int m) 2 for(i=2;ii;i++) 或 for(i=2;i<=m-1;i++) 或 for(i=2;m-1=>i;i++) 3 if(★m%i★==★0★) k=0; 4 return k; 或 return(k); 【程序改错-12】 题目:函数fun的功能是:用下面 的和式求圆周率的近似值。直 到最后一项的绝对值小于 等于0.0001。 错误答案』: 1 #include "math.h" 2 float s=0,t=1,p=1; 或 float s=0,p=1,t=1; 或 float p=1,s=0,t=1; 或 float p=1,t=1,s=0; 或 float t=1,p=1,s=0; 或 float t=1,s=0,p=1; 3 while(fabs(t)>1e-4) 或 while(0.00010.0001) 4 printf("pi=%f\n",★ s★*★4★); 【程序改错-13】 题目:下列给定程序中,函数fun 的功能是:求1到10的阶乘的 和。主函数和fun函数中, 各有两个错误,\『错误答案』: 1 for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;i<11;i++) 或 for(i=1;11>i;i++) 2 s=★s★+★fac(i)★; 或 s+=fac(i); 3 float y=1.0; 或 float y=1; 4 return y; 或 return(y); 或 return (y); 【程序改错-14】 题目:函数fun的功能是:求1到 20的阶乘的和。请改正程序中的错 误,使它能得出正确的结果。 『错误答案』: 1 t=1; 或 t=1.0; 2 t=★t★*★j★; 或 t*=j; 3 s=★s★+★t★; 或 s+=t; 4 printf("jiecheng=%f\n",s); 【程序改错-15】 题目:函数fun的功能是:输出 Fabonacci数列的前20项,要求变 量类型定义成浮点型,输出 时只输出整数部分,输出项 数不得多于或少于20。 『错误答案』: 1 printf("%8.0f",f1); 或 printf("%f",f1); 2 for(i=1;i<20;i++) 或 for(i=1;20>i;i++) 或 for(i=2;i<=20;i++) 或 for(i=2;20>=i;i++) 或 for(i=1;i<=19;i++) 或 for(i=1;19>=i;i++) 3 f1=f2; 4 f2=f3; 【程序改错-16】 题目:函数fun的功能是:根据整 型形参m的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 『错误答案』: 1 for(i=2;i<=m;i++) 或 for(i=2;m>=i;i++) 或 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 或 3 return y; 或 return (y); 【程序改错-17】 题目:函数fun的功能是:实现交 换两个整数的值。例如给a和b 分别输入3和6 ,输出为 a=6 b=3『错误答案』: 1 void fun (int *a,int *b) 或 fun (int *a,int *b) 2 t=*a; 3 *a=*b; 4 *b=t; 【程序改错-18】 题目:函数fun的功能是:计算并 输出k以内最大的10个能被13 或17整除的自然数之和。k 的值由主函数传入,若k的值 为500,则函数值为4622。 请更改程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 while (★(2<=k)★&& ★(mc<10)★) 或 while (★(k>=2) ★&&★(10=k;k++) 【程序改错-21】 题目:函数fun的功能是:根据以 下公式求π值,并作为函数值 返回。例如,给指定精度的 变量eps输入0.0005时,应当 输出Pi=3.140578。 『错误答案』: 1 t=1; 或 t=1.0; 2 while (t>eps) 或 while (eps=eps) 或 while (eps<=t) 3 t=t*n/(2*n+1); 或 1.0*n/(2*n+1)*t 4 return (2*s); 或 return(2*s); 或 return (s*2); 或 return(s*2); 【程序改错-22】 题目:函数fun的功能是:求出两 个非零正整数的最大公约数, 并作为函数值返回。例如, 若给num1和num2分别输入49 和21,则输出的最大公约数 为7。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 a=b; 2 b=t; 3 r=a%b;} 4 return b; 或 return (b); 或 return(b); 【程序改错-23】 题目:在主函数中从键盘输入若干 个数放入数组中,用0结束输 入并放在最后一个元素中。 下列给定程序中,函数fun的 功能是:计算数组元素中值 为正数的平均值(不包括0)。 例如,数组中元素的值依次 为39,-47,21,2,-8,15, 0,则程序的运行结果为 19.250000。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 double sum=0.0; 2 while(★s[i]★!=★0 ★) 或 while!(s[i]==0) 或 while!(0==s[i]) 3 sum/=c; 或 sum=sum/c; 4 return sum; 或 return (sum); 【程序改错-24】 题目:fun函数的功能是:先从键 盘上输入一个3行3列矩阵的各 个元素的值,然后输出主对 角线上的元素之和sum。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 sum=0; 2 scanf("%d",&a[i][j]); 3 sum=★sum★+★ a[i][i]★; 或 sum+=a[i][i]; 4 printf("sum=%d\n",sum); 【程序改错-25】 题目:fun函数的功能是:给定n 个实数,输出平均值,并统计 在平均值以下(含平均值) 的实数个数。例如,n=6时, 输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值 为40.828335,在平均值以 下的实数个数应为3。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 float xa=0; 或 float xa=0.0; 2 for(j=0;jj;j++) 或 for(j=0;n-1>=j;j++) 或 for(j=0;j<=n-1;j++) 3 for(j=0;jj;j++) 或 for(j=0;j<=n-1;j++) 或 for(j=0;n-1>=j;j++) 4 return c; 或 return (c); 【程序改错-26】 题目:fun函数的功能是:找出大 于m的最小素数,并将其作为 函数值返回。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 for(k=2;kk;k++)

2012计算机国二C语言等级考试题库(内部资料)程序改错

1.给定程序MODI1.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。(1)“t=0;”改为“t=1;”。(2)改成“return(2*s);” 2.给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:7654321时,t中的数为:7531。(1)“void fun (long s, long *t)”(2)“sl = sl*10;” 3.给定程序MODI1.C中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出 3.1414。(1) “while(t>=num)”改为 “while(fabs(t)>=num) ”。(2)“t=s%n;”改为 “t=s/n;”。 4.给定程序MODI1.C中函 数fun的功能是:把主函 数中输入的三个数,最大 的放在a中,最小的放在 c中,中间的放在b中。 例如a=55.0 b=34.0 c=12.0。(1)“float k;”。 (2)“if(*a<*c)”。 5. 给定程序MODI1.C中 函数fun的功能是:为一 个偶数寻找两个素数,这 两个素数之和等于该偶 数,并将这两个素数通过 形参指针传回主函数。(1) “y=1;”。(2)“d=a-i;”。 6. 给定程序MODI1.C中 函数fun的功能是:由形 参给定n个实数,输出平 均值以上(含平均值)的 实数个数。所的平均值为: 195.838745,在平均值以 上的实数个数应为:5。(1) “int j, c=0; double xa=0.0;”。(2)“if (x[j]>=xa)”。 7.例如:当s中的数为: 7654321时,t中的数为: 7531。(1)“*t=0;”(2) “if(d%2!=0)” 8.函数功能是:求出 以下分数序列的前n项 和。 2/1,3/2,5/3,8/5/13/ 8,21/13,…...。和值 通过函数值返回到 main函数。例如,n=5, 则应输出:8.391667。 (1)“fun(int n)”改为 “double fun(int n)”。 (2)“b+=c;”改为“b=c;”。 9.函数fun的功能是: 判断一个整数是否是 素数,若是返回1,否 则返回0。(1)“k++” 改为“k++;”(2) “if(m=k)”改为 “if(m==k)” 10.给定程序MODI1.C 中函数fun的功能是: 从整数1到55之间,选 出能被3整除、且有一 位上的数是5的那些 事,并且把这些数放 在b所指的数组中,这 些数作为函数值返回。 规定,函数中a1放个 位数,a2放十位数。 (1)“a2=k/10;”。(2) “return i;”。 11.给定程序MODI1.C 中函数fun的功能是: 计算小于形参k的最大 的10个能被13或17整 除的自然数之和。K的 值由主函数传入,若K 的值为500.则主函数 为4622。(1) “if((k%13==0)||(k%17 ==0))”。(2)“______” 填“}”。 12.已知一个数列从第 0项开始的前三项分别 是0、0、1以后的各项 都是它相邻的前三项 之和。给定程序 MODI1.C中函数fun的 功能是:计算并输出该 数列前n项的平方根之 和。n的值通过形参传 入。(1)“double fun(int n)”。(2)“return sum;”。 13.函数fun的功能是: 根据整形形参m的值: 计算如下公式的 值……例如:若m中的 值为5,则应输出: 0.536389。(1) “for(i=2; i<=m; i++)”(2) “y-=1.0/(i*i);”。 14.函数的功能是:将 字符串中的字符按逆 序输出,但不改变字符 串中的内容。例如字符 串abcd,则应输出dcba。 (1)“void fun(char *a)”。(2)“printf("%c", *a);”。 15.函数fun的功能是:求 三个数的最小公倍数。 X1=15 x2=11 x3=2(1) 改成“int fun(int x, int y, int z )”。(2)return j 16.函数fun的功能是:根 据整型形参m计算如下 公式的值。若主函数中输 入5,则应输出-0.283333。 (1)“t=t-1.0/i;”。 (2)填空“return t;” 17. 例如,若输入:edcba, 则应输出:abcde。(1) “for( i=strlen( t )-1; i; i- - )” (2)“if(t[j]>t[j+1])” 18.函数fun的功能是: 根据形参m的值 (2<=m<=9),在m行m 列的二维数组中存放 如下所示规律的数据, 由main函数输出。(1) “void fun(int a[][M], int m)”。(2) “a[j][k]=(k+1)*(j+1);”。 19.函数fun的功能是: 先从键盘上输入一个3 行3列矩阵的各个元素

C语言程序改错题

第1题【程序改错】 欧阳学文 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。 */ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; sl = strlen(s); for (i=0; i

/**********FOUND**********/ t[i] = s[sli]; for (i=0; i

第2题【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 */ #include #include /**********FOUND**********/ fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /**********FOUND**********/ s = (double)a / b;

程序改错1

程序改错 1.计算下列分段函数的值,输入x输出y 的值 f(x)= x*2 x<0且x≠-3 sin(x) 0<=x<10 且x≠2且x≠3 x*x+x-1 其他 1)scanf(“%f,&x); 2)y=sin(3*x); 3)printf(“%f\n”,y); 2.输入两个整数n1,n2(n10); 3)in=in/10; 4.从键盘上输入20个元素的值存入以为数组m中,然后将下标为奇数的元素赋值给数组n,最后输出数组n的内容。 1)for(a=0;a<20;a++) 2)if(a%2==1) 3)b++; 4)for(a=0;a<10;a++)

5.从键盘输入10个学生的成绩,统计最高分max,最低分min和平均分avg。 1)float a[8],min,max,avg; 2)scanf(“%f”,&a[i]); 3)max=min=avg=a[0]; 4)if(a[i]

程序改错练习题

程序改错练习题 下面每个程序的划线处有语法或逻辑错误,请找出并改正,使程序符合题意。 1.求1?2?3?4? ?n main() { int sum; 正确:int sum=1; int n,i=1; scanf("%d",n); scanf(“%d”,&n); printf(“\n”); while(ia[j]) if(max

main() { float a,b; int c; float c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); printf("\nSum is %f",c); } 4. x , y两个数中,让x中存较大的数,y存较小的数 #include main( ){ int x , y=200 , z=0; x=180; if ( x

C语言程序改错基本题库电子版本

C语言程序改错基本 题库

北京石油化工学院 12级复习题 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1234n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求 3+4 int a=3,b=4;

main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; } main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

计算机程序改错题,及答案

11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif

程序改错

【程序改错】 1.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。 请改正程序中的错误,使它能得出正确的结果。 #include void fun( char *s ) { int I,j; for(i=j=0; s[i]!='\0'; i++) if(s[i]!='c') /***********FOUND***********/ s[j++]=s[i]; /***********FOUND***********/ s[j]='\0'; } main() { char s[80]; printf("Enter a string: "); gets(s); printf("The original string: "); puts(s); fun(s); printf("The string after deleted : "); puts(s);printf("\n\n"); } 2. 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m) 例如,若m=2000,则应输出0.000160。 请改正程序中的错误,使它能得出正确的结果。 #include #include #include /***********FOUND***********/ double fun (int m) { double y=0, d; int i; /***********FOUND***********/ for(i=100;i<=m;i+=100) {d=(double)i*(double)i; y+=1.0/d; } return(y); } void main() { int n=2000; system("CLS"); printf("\nThe result is %lf\n",fun(n)); } 3. 下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

计算机基础C++程序改错复习题

? 第1题(分)题号:400 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ 《 #define N 20 #include <> int fun(int m) { /**********FOUND**********/ int s=0,i; ; for(i=1;i

s*=i; ) 第2题(分)题号:584 难度:中第1章/*-------------------------------------------------------【程序改错】 --------------------------------------------------------- 下列给定程序中函数fun()的功能是计算1/n!的值。 & 例如:给n输入5,则输出。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构。 , 试题程序: -------------------------------------------------------*/ #include <> #include <> /***********FOUND***********/ ~ int fun(int n) { double result =; if(n==0) return ; while(n>1 && n <170) /***********FOUND***********/ result *=n++ ; … result=1/result; return result; } void main() {

相关文档
最新文档