2022年改错题 .pdf
1/*下列给定程序中 ,函数 fun的功能是 :将十进制正整数 m转换成进制数 ,并按位输出。例如,若输入 8和2,则应输出 1000(即十进制数 8转换成二进制表示是1000)。请改正函数 fun中的错误 ,使它能得出正确的结果。注意 :不要改动 main函数,不得增行或删行 ,也不得更改程序的结构。试题程序 :*/#include #include /*ERROR*/void fun(int m,int k); void fun(int m,int k) int aa20, i; for(i=0;m;i+) /*ERROR*/aai=m/k; aai=m%k;m/=k; for(;i;i-)/*ERROR*/printf(%d,aai); printf(“%d ”,aai-1);int main() int b,n; printf(nPlease enter a number and a base:n); scanf(%d%d,&n,&b); fun(n,b); printf(n ); return 0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 2/*数列中 ,第一项为 3,后一项都比前一项的值增5。下列给定程序中 ,函数fun的功能是 :计算前 项的累计和。在累加过程中把那些被4除后余 2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当 n的值为 20时,该数列为 3,8,13,18,23,28,93,98。符合此条件的累加值应为 42,126,366,570,1010。请改正程序中的错误,使它能得出正确的结果。注意 :不要改动 main函数,不得增行或删行 ,也不得更改程序的结构。试题程序 : */#include #define N 20int fun(int n, int a)/*ERROR*/ int i,j,k,sum; int i,j=0,k,sum; sum=0; for(k=3,i=0;in;i+,k+=5) sum=sum+k;/*ERROR*/ if(sum%4=2) if(sum%4=2) aj+=sum; /*ERROR*/ return j-1; return j+;int main()int aN,d,n,i;printf(nEnter n(4=n=50): );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - scanf(%d,&n); d=fun(n,a); printf(nnThe result :n ); for(i=0;id;i+) printf(%6d ,ai);printf(nn );return 0;3/*下列给定程序中 ,函数 fun的功能是 :计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y) 的值。其中 x和y不相等 ,z和y不等。例如 ,当x的值为 9,y的值为 11,z的值为 15时,函数值为 -3.50。请改正程序中的错误,使它能得出正确的结果。注意 :不要改动 main函数,不得增行或删行 ,也不得更改程序的结构。试题程序 :*/#include #include #include /*ERROR*/#define FU(m,n) (m/n) #define FU(m,n) (m)/(n)float fun(float a,float b,float c) float value; value=FU(a+b,a-b)+FU(c+b,c-b);/*ERROR*/ return(Value); return (value);void main() float x,y,z,sum; printf(Input x y z: );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - scanf(%f%f%f,&x,&y,&z); printf(x=%f,y=%f,z=%fn ,x,y,z); if(x=y|y=z) printf(Data error! n );exit(0); sum=fun(x,y,z); printf(The result is:%5.2fn ,sum);4/*下列给定程序中 ,函数 fun的功能是 :按如下递归公式求函数值。例如 ,当给n输入5时,函数值为 18;当给n输入3时,函数值为 14。请改正程序中的错误,使它能得出正确的结果。注意 :不要改动 main函数,不得增行或删行 ,也不得更改程序的结构。试题程序 : */#include /*ERROR*/int fun(n) int fun(int n) int c;/*ERROR*/ if(n=1) if(n=1)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - c=10; elsec=fun(n-1)+2; return(c);void main() int n; printf(Enter n: ); scanf(%d,&n); printf(The result: %dnn ,fun(n);5/*下列给定程序中 ,函数 fun的功能是 :用递归算法计算斐波拉契级数列中第n项的值。从第一项起 ,斐波拉契级数序列为1,1,2,3,5,8,13,21,例如,若给 n输入7,该项的斐波拉契级数值为13。请改正程序中的错误,使它能得出正确的结果。注意 :不要改动 main函数,不得增行或删行 ,也不得更改程序的结构。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 试题程序 :*/#include long fun(int g)/*ERROR*/ switch(g); switch(g) case 0:return 0;/*ERROR*/ case 1; case 2:return 1; case 1: case 2:return 1; return (fun(g-1)+fun(g-2);void main() long fib; int n; printf(Input n:); scanf(%d,&n); printf(n=%dn,n); fib=fun(n); printf(fib=%dnn,fib);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -