当前位置:文档之家› 有目录-程序改错部分试题及答案(2015-2016-1)

有目录-程序改错部分试题及答案(2015-2016-1)

目录功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

(1)功能:求如下表达式: (2)功能:判断m是否为素数,若是返回1,否则返回0。

(4)功能:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

(5)功能:求1到20的阶乘的和。

(6)功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

(7)功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

(8)功能:找出大于m的最小素数,并将其作为函数值返回。

(9)功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置. (10)功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中. (11)第1题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------*/#include <stdio.h>#define N 11main(){int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("please enter an integer to insert in the array:\n");/**********FOUND**********/scanf("%d",&number)printf("The original array:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n");/**********FOUND**********/for(i=N-1;i>=0;i--)if(number<=a[i])/**********FOUND**********/a[i]=a[i-1];else{a[i+1]=number;/**********FOUND**********/exit;}if(number<a[0]) a[0]=number;printf("The result array:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}第2题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/#include <stdio.h>main(){int n;double fun(int n); //原题中无形参,错误printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********FOUND**********/while(i=1;i<=n; i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}第3题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/void fun( int n){int i,k=1;if(m<=1) k=0;/**********FOUND**********/for(i=1;i<m;i++)/**********FOUND**********/if(m%i=0) k=0;/**********FOUND**********/return m;}int main(){int m,k=0;for(m=1;m<100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0) printf("\n");}}第4题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

π 1 1 1— = 1 - — + — - — + ...4 35 7------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/#include <stdlib.h>fun(){int i=1;/**********FOUND**********/int s=0,t=1,p=1;/**********FOUND**********/while(fabs(t)<=1e-4){s=s+t;p=-p;i=i+2;t=p/i;}/**********FOUND**********/printf("pi=%d\n",s*4);}main(){fun();}第5题/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:求1到20的阶乘的和。

------------------------------------------------------*/#include <stdio.h>fun(){int n,j;float s=0.0,t=1.0;for(n=1;n<=20;n++){/**********FOUND**********/s=1;for(j=1;j<=n;j++)/**********FOUND**********/t=t*n;/**********FOUND**********/s+t=s;}/**********FOUND**********/printf("jiecheng=%d\n",s);main(){fun();}第6题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

------------------------------------------------------*/#include <stdio.h>fun(){int i;float f1=1,f2=1,f3;/**********FOUND**********/printf("%8d",f1);/**********FOUND**********/for(i=1;i<=20;i++){f3=f1+f2;/**********FOUND**********/f2=f1;/**********FOUND**********/f3=f2;printf("%8.0f",f1);}printf("\n");}main(){fun();}第7题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

------------------------------------------------------*/#include <stdio.h>void fun(){int a[3][3],sum;int i,j;/**********FOUND**********/a=0;for(i=0;i<3;i++)for(j=0;j<3;j++)/**********FOUND**********/scanf("%d",a[i][j]);for(i=0;i<3;i++)/**********FOUND**********/sum=sum+a[i][j];/**********FOUND**********/printf("sum=%f\n",sum);}main(){fun();第8题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:找出大于m的最小素数,并将其作为函数值返回。

相关主题