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

上传人:b****2 文档编号:1390138 上传时间:2022-10-21 格式:DOCX 页数:16 大小:30.75KB
下载 相关 举报
C语言程序改错基本题库.docx_第1页
第1页 / 共16页
C语言程序改错基本题库.docx_第2页
第2页 / 共16页
C语言程序改错基本题库.docx_第3页
第3页 / 共16页
C语言程序改错基本题库.docx_第4页
第4页 / 共16页
C语言程序改错基本题库.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《C语言程序改错基本题库.docx》由会员分享,可在线阅读,更多相关《C语言程序改错基本题库.docx(16页珍藏版)》请在冰豆网上搜索。

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

C语言程序改错基本题库

北京石油化工学院12级复习题

 

程序改错

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

1.求1234n

  main()

{longintsum;

intn,i=1;

scanf("%d",n);

printf(“\n”);

while(i

{sum=sum*i;

i++;

}

printf("sum=%d",sum);

}

2.求一个数组中最大值及其下标。

main()

{intmax,j,m;

inta[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

inta=3,b=4;

main()

{inta,c;

c=a+b;

printf(“c=%d”);

}

4.用一个函数求两个数之和。

sum(x,y)

{floatz;

z=x+y;

return;

}

main()

{floata,b;

intc;

scanf("%f,%f",&a,&b);

c=sum(a,b);

printf("\nSumis%f",sum);

}

5.用指针作函数参数,对输入的两个整数按大小顺序输出。

swap(int*p1,*p2)

{int*p;

*p=*p1;*p1=*p2;*p2=*p;

}

main()

{inta,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.第三行改为:

intc;

第五行改为:

printf(“c=%d”,c);

4.第一行改为:

floatsum(floatx,floaty);

第四行改为:

return(z);

第八行:

floatc;

第十一行:

printf("\nSumis%f",c);

5.第2、3行:

{intt;

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()

{

inti,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=%fcount=%f\n”,s,count);

}

printf(“s=%dcount=%d\n”,s,count);

7.x,y两个数中,让x中存较大的数,y存较小的数

#include

main()

{

intx,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()

{floatx,y;正确的:

intx;floaty;

scanf(“%d”,&x);

y=3.5+x;

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

}

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

Main()

{inti,sum

i=1;

While(i<=100)

{sum=sum*i;

i++;

}

printf(“%c”,sum)

}

10、求一个4×4矩阵的对角线元素之和

main()

{inta[4][4],sum=0;

inti,j;

printf(“Enterdata:

\n”);

for(i=0;i<=4;I++)

for(j=0,j<=4;j++)

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

for(i=0;i<4;I++)

for(j=0;j<4;j++)

sum=sum+a[i][j];

printf(“sum=%5d\n”,sum);

}

12.求1+2+3+4+……n的值。

  main()

{longintsum;

intn,i=1;

scanf("d",&n);

printf(“\n”);

while(i>n)

{sum=sum*i;

i++;

}

printf("sum=%d",sum);

}

*13.调用起泡法函数排序

voidsort(inta[],n);

{inti,j,temp,*p;

for(i=0;i

for(j=n-1;j>i;j--)

if(data[j]

{temp=a[j];

a[j]=a[j-1];

a[j-1]=temp;}

main()

{intdata[10];

*p=data;

printf("Pleaseinput10numbers:

\n");

for(i=0;i

scanf("%d",&p);

p=&data[0];

sort(data[10],10);

printf("\ntheresultofsort:

\n");

for(i=0;i<10;i++)

printf("%d",data[i]);

}

15.编程计算下面分段函数,输入x,输出y

main()

{intx,y;

printf(“\nInputx:

\n”);

scanf(“%d”,x);

if(x<0)

y=x-1;

elseif(x>=0||x<=10)

y=2x-1;

else

y=3x-1;

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

}

16.求100~300间能被3整除的数的和。

main()

{intn;

longsum;

for(n=100;n<=300;n++)

{

if(n%3=0)

sum=sum*n;

}

printf(“%ld”,sum);

}

17.用函数实现两个整数的交换。

swap(int*p1,int*p2)

{int*p;

p=p1;

p1=p2;

p2=p;

}

main()

{inta,b;

printf(“\nInputa,b:

”);

scanf(“%d,%d”,&a,&b);

swap(&a,&b);

printf(“\n%d,%d”,a,b);

}

18.实现华氏温度转换为摄氏温度,公式为:

c=*(f-32),要求输出结果取2位小数。

main()

{intc,f;

printf("Pleaseenterf:

");

scanf("%f",&f);

c=5/9*(f-32);

printf("f=%f,c=%f",c,f);}

19.下面程序的功能是计算n!

main()

{inti,n;

ints;

printf("Pleaseentern:

");

scanf("%d",n);

for(i=1;i<=n;i++);

s=*i;

printf("%d!

=%d",i,s);}

20.编程计算12+32+52+…+92,要求输出中间计算结果。

main()

{inti,sum=0;

for(i=1;i<=9;i+2)

sum+=i;printf("sum=%d",sum);

}

21.求表达式的值

#include

#include

intfun(intx,inty);

main()

{inta,b;floatf;

scanf(“%d,%d”,a,b);

if(ab>0)

{f=fun(a,b);printf("Theresultis:

%d\n",&f)}

elseprintf(“error!

”);}

fun(x,y)

{floatresult;

result=sqrt(a+b);

return;

}

22、通过函数调用,求两个数之差

sub(x,y)

{floatz;

z=x-y;

return;

}

main()

{floata,b;

intc;

scanf(“%f,%f”,&a,&b);

c=sub(a,b);

printf(“\nSubis%f”,sub);

}

23、求1到100的累加和.

main()

{inti,sum

i=1;

while(i<=100)

{sum=sum*i;

i++;

}

printf(“%c”,sum)

}

24、一个小于1000的正整数每位上的数字是多少。

#include"stdio.h"

main()

{intn,i,j,k;

printf("Inputanumbern(0

\n");

scanf("%d",n);

if(n<=0||n>=1000)

{printf("error");exit(0);}

k=n%10.0;

j=(n%100)/10;

i=n/100;

printf("%s%s%s\n",i,j,k);

}

25、输入三角形的三边长,求三角形的面积。

#include

main()

{floata,b,c,s,area;

scan("%d,%d,%d",a,b,c);

s=1.0/2*(a+b+c);

area=sqrt(s(s-a)(s-b)(s-c));

printf("a=%7.2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1