C语言程序改错基本题库完整

  • 格式:doc
  • 大小:67.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

石油化工学院12级复习题

程序改错

一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1234n

main()

{ long int sum;

int n,i=1;

scanf("%d",n);

printf(“\n”);

while(i

{ 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(max>a[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

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;j<5;j++)

第五行改为:scanf(“%d”,&a[j]);

第七行改为:for(j=0;j<5;j++)

第八行改为:if(max

第十三行改为: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(a

第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; i<20; i- -) for(i=0;i<20;i--)

scanf(“%d”, a[i] );scanf(“%d”,&a[i]);

for(i=0;i<20;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存较小的数

#include

main( )

{

int x , y=200 , z=0;

x=180;

if ( x

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; 正确的: int x; float y;

scanf(“%d”,&x);

y=3.5+x;

printf(“y=%d”); printf(“y=%f”,y);

}

9. 从1加到100,并输出.

Main ( )