C语言程序改错基本题库.docVIP

  • 91
  • 0
  • 约8.99千字
  • 约 12页
  • 2018-11-16 发布于江苏
  • 举报
C语言程序改错基本题库

PAGE PAGE 11 北京石油化工学院 12级复习题 程序改错 一、 下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1234n   main() { long int sum; int n,i=1; scanf(%d,n); printf(“\n”); while(in) { sum=sum*i; i++; } printf(sum=%d,sum); } 2.求一个数组中最大值及其下标。 main( ) { int max,j,m; int a[5]; for(j=1;j=5;j++) scanf(“%d”,a); max=a[0]; for(j=1;j=5;j++) if(maxa[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(ab) swap(*q1,*q2); printf(\n%d,%d\n,q1,q2); } 前五题答案: 1.sum应初始化 即加入sum=1 第四行改为:scanf(“%d”,n); 第六行改为:while(i=n) 第十行改为:printf(sum=%ld,sum); 2. 第四行改为:for(j=0;j5;j++) 第五行改为:scanf(“%d”,a[j]); 第七行改为:for(j=0;j5;j++) 第八行改为:if(maxa[j]) 第十三行改为:printf(“下标:%d\n最大值:%d”, m,max) 3. 第三行改为:int c; 第五行改为:printf(“c=%d”,c); 4. 第一行改为:float sum(float x, float y ); 第四行改为:return(z); 第八行:float c; 第十一行:printf(\nSum is %f,c); 5. 第2、3行:{ int t; t=*p1;*p1=*p2;*p2=t; 第9行:q1=a,q2=b; 第10行:if(ab) swap(q1,q2); 第11行:printf(\n%d,%d\n,*q1,*q2); 6. 程序读入20个整数,统计非负数个数,并计算非负数之和. #include “stdio.h” main() { int i, a[20], s , count ; s=count=1; s=count=0; for( i=1; i20; i- -) for(i=0;i20;i--) scanf(“%d”, a[i] ); scanf(“%d”,a[i]); for(i=0;i20;i++) { if(a[i]0) break; continue; s +=a[i]; count++; } printf(“s=%f count=%f\n”, s, count); } printf(“s=%d count=%d\n”,s,count); 7. x , y两个数中,让x中存较大的数,y存较小的数 #includestdio.h main( ) { int x , y=200 , z=0; x=180; if ( xy) z=x; x=y; y=z; { z=x;x=y;y=z;} printf(“x=%d,y=%d\n”,x,y); } printf(“x=%d,y=%d\n”,x,y); } 8. 从键盘输入整数x的值,并输出y的值. main() { float x,y;

文档评论(0)

1亿VIP精品文档

相关文档