程序改错复习题.docx
- 文档编号:12262211
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:14
- 大小:17.29KB
程序改错复习题.docx
《程序改错复习题.docx》由会员分享,可在线阅读,更多相关《程序改错复习题.docx(14页珍藏版)》请在冰点文库上搜索。
程序改错复习题
1.功能:
为一维数组输入15个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。
#include
main()
{
inta[15];
voidinput(int*arr,intn);
voidoutput(int*arr,intn);
voidmax_min(int*arr,intn);
input(a,15);
max_min(a,15);
output(a,15);
}
voidinput(int*arr,intn)
{
int*p,i;
p=arr;
printf("pleaseenter15integers:
\n");
for(i=0;i /**********FOUND**********/ scanf("%d",p); } voidmax_min(int*arr,intn) { int*min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********FOUND**********/ if(*p<*max) max=p; elseif(*p<*min)min=p; t=*arr;*arr=*min;*min=t; /**********FOUND**********/ if(max=arr)max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } voidoutput(int*arr,intn) { int*p,i; p=arr; printf("Thechangedarrayis: \n"); /**********FOUND**********/ while(i=0;i printf("%3d",*p++); printf("\n"); } 『答案』 1scanf("%d",p++);或scanf("%d",&arr[i]);或scanf("%d",p+i);或scanf("%d",arr+i); 2if(*p>*max)或if(*max<*p) 3if(max==arr) 4for(i=0;i 2.功能: 在一个已按降序排列的数组中插入一个数,插入后,数组元素仍按降序排列。 #include #defineN11 main() { inti,number,a[N]={156,149,15,12,9,8,6,4,2,1}; printf("pleaseenteranintegertoinsertinthearray: \n"); /**********FOUND**********/ scanf("%d",&number) printf("Theoriginalarray: \n"); for(i=0;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("Theresultarray: \n"); for(i=0;i printf("%5d",a[i]); printf("\n"); } 『答案』 1scanf("%d",&number); 2for(i=N-2;i>=0;i--)或for(i=N-2;0<=i;i--) 3a[i+1]=a[i]; 4break; 3.功能: 求如下表达式: 111 S=1+——+———+......+——————— 1+21+2+31+2+3+......+n #include main() { intn; doublefun(intn); printf("Pleaseinputanumber: "); /**********FOUND**********/ print("%d",n); printf("%10.6f\n",fun(n)); } /**********FOUND**********/ fun(intn) { inti,j,t; doubles; s=0; /**********FOUND**********/ while(i=1;i<=n;i++); { t=0; for(j=1;j<=i;j++) t=t+j; /**********FOUND**********/ s=s+1/t; } returns; } 『答案』 1scanf("%d",&n); 2doublefun(intn) 3for(i=1;i<=n;i++)或for(i=1;n>=i;i++)或for(i=1;i 4s+=1.0/t;或s=s+1.0/(float)t;或s=s+1.0/t;或s+=1.0/(float)t;或s+=1.0/(double)t;或s=s+1.0/(double)t; 4.功能: 输入一行英文文本,将每一个单词的第一个字母变成小写。 #include #include #include /**********FOUND**********/ fun(charp) { intk=0; /**********FOUND**********/ dowhile(*p=='\0') { if(k==0&&*p! ='') { *p=tolower(*p); /**********FOUND**********/ k=0; } elseif(*p! ='') k=1; else k=0; /**********FOUND**********/ *p+; } } main() { charstr[81]; printf("pleaseinputaEnglishtextline: "); gets(str); printf("Theoriginaltextlineis: "); puts(str); fun(str); printf("Thenewtextlineis: "); puts(str); } 『答案』 1fun(char*p)或fun(charp[])或voidfun(charp[])或voidfun(char*p) 2while(*p! ='\0')或while(*p) 3k=1; 4p++;或p=1+p;或++p;或p=p+1;或p+=1; 5.功能: 用下面的和式求圆周率的近似值。 直到最后一项的绝对值小于等于0.000001。 π111 —=1-—+—-—+... 4357 #include /**********FOUND**********/ #include fun() { inti=1; /**********FOUND**********/ ints=0,t=1,p=1; /**********FOUND**********/ while(fabs(t)<=1e-6) { s=s+t; p=-p; i=i+2; t=p/i; } /**********FOUND**********/ printf("pi=%d\n",s*4); } main() { fun(); } 『答案』 1#include"math.h"或#include 2floats=0,t=1,p=1;或floats=0,p=1,t=1;或floatp=1,s=0,t=1;或floatp=1,t=1,s=0;或floatt=1,p=1,s=0;或floatt=1,s=0,p=1; 3while(fabs(t)>1e-6)或while(0.000001 4printf("pi=%f\n",s*4); 6.功能: 输出Fabonacci数列的前25项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于25。 #include fun() { inti; floatf1=1,f2=1,f3; /**********FOUND**********/ printf("%8d",f1); /**********FOUND**********/ for(i=1;i<=25;i++) { f3=f1+f2; /**********FOUND**********/ f2=f1; /**********FOUND**********/ f3=f2; printf("%8.0f",f1); } printf("\n"); } main() { fun(); } 『答案』 1printf("%8.0f",f1);或printf("%f",f1);或printf("%8f",f1); 2for(i=1;i<25;i++)或for(i=1;25>i;i++)或for(i=2;i<=25;i++)或for(i=2;25>=i;i++)或for(i=1;i<=24;i++)或for(i=1;24>=i;i++) 3f1=f2; 4f2=f3; 7.功能: 根据整型形参n的值,计算如下公式的值。 111 t=1-——-——-...-—— 2x23x3nxn 例如: 若n=5,则应输出: 0.536389 #include doublefun(intn) { doubley=1.0; inti; /**********FOUND**********/ for(i=2;i /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ returnn; } main() { intn=5; printf("\ntheresultis%lf\n",fun(n)); } 『答案』 1for(i=2;i<=n;i++)或for(i=2;n>=i;i++)或for(i=2;i 2y-=1.0/(i*i);或y=y-1.0/(i*i);或y-=1.0/(float)(i*i);或y=y-1.0/(float)(i*i);或y=y-1.0/i/i;或y=y-1.0/(float)i/(float)i;或y=y-1/(double)(i*i);或y-=1/(double)(i*i); 3returny;或return(y);或return(y); 8.功能: 实现交换两个整数的值。 例如: 给a和b分别输入5和9,输出为a=9b=5 #include /**********FOUND**********/ voidfun(inta,b) { intt; /**********FOUND**********/ t=a; /**********FOUND**********/ a=b; /**********FOUND**********/ b=t; } main() { inta,b; printf("entera,b: ");scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%db=%d\n",a,b); } 『答案』 1voidfun(int*a,int*b)或fun(int*a,int*b) 2t=*a; 3*a=*b; 4*b=t; 9.功能: 根据以下公式求π值,并作为函数值返回。 例如: 给指定精度的变量eps输入0.000001时,应当输出Pi=3.141590。 π1121231234 —=1+—+—x—+—x—x—+—x—x—x—+... 23353573579 #include doublefun(doubleeps) { doubles,t; intn=1; s=0.0; t=1; /**********FOUND**********/ while(t<=eps) { s+=t; /**********FOUND**********/ t=n/(2*n+1)*t; n++; } /**********FOUND**********/ returns; } main() { doublex; scanf("%lf",&x); printf("\neps=%lf,Pi=%lf\n\n",x,fun(x)); } 『答案』 1while(t>eps)或while(eps 2t=t*n/(2*n+1);或t=1.0*n/(2*n+1)*t;或t=n/(2*n+1.0)*t;或t=n/(2.0*n+1)*t;或t=n/(2.0*n+1.0)*t;或t=1.0*n/(2.0*n+1.0)*t; 3return2*s;或return(2*s);或return(2*s);或return(s*2);或return(s*2); 10.功能: 计算数组元素中值为负数的平均值(不包括0)。 #include doublefun(ints[]) { /**********FOUND**********/ intsum=0.0; intc=0,i=0; /**********FOUND**********/ while(s[i]=0) { if(s[i]<0) { sum+=s[i]; c++; } i++; } /**********FOUND**********/ sum\=c; /**********FOUND**********/ returnc; } main() { intx[1000];inti=0; do { scanf("%d",&x[i]);} while(x[i++]! =0); printf("%f\n",fun(x)); } 『答案』 1doublesum=0.0;或doublesum=0; 2while(s[i]! =0)或while(! s[i]==0)或while(! 0==s[i])或while(s[i]) 3sum/=c;或sum=sum/c; 4returnsum;或return(sum);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 改错 复习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)