C语言程序改错基本题库完整_第1页
C语言程序改错基本题库完整_第2页
C语言程序改错基本题库完整_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。1.求1234nmain()(longintsum;intn,i=1;scanf("%d",n);printf(n”);while(i<n)(sum=sum*i;i+;pri2.求一个数组中最大值及其下标。4. main()(intmax,j,m;inta5;for(j=1;j<=5;j+)scanf(%d",a);max=a0;for(j=1;j<=5;j+)if(max>aj)(max=aj;m=j;pri*3.求3+4i

2、nta=3,b=4;main()(inta,c;c=a+b;printf(C=%d");用一个函数求两个数之和。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(&q

3、uot;%d,%d”,&a,&b);&q1=a,&q2=b;if(a<b)swap(*q1,*q2);printf("n%d,%dn",q1,q2);1. 前五题答案:sum应初始化第四行改为:第六行改为:第十行改为:第四行改为:第五行改为:第七行改为:第八行改为:第十三行改为:第三行改为:第五行改为:第一行改为:第四行改为:即加入sum=1scanf("%d,&n);while(i<=n)printf("sum=%ld",sum);for(j=0;j<5;j+)scanf(%d”,&a

4、mp;aj);for(j=0;j<5;j+)if(max<aj)printf(下标:%dn最大值:%d”,m,max)intc;printf(c=%d”,c);floatsum(floatx,floaty);return(z);第八行:floatc;第行:printf("nSumis%f",c);第2、3行:intt;t=*p1;*p1=*p2;*p2=t;第9行:q1=&a,q2=&b;第10行:if(a<b)swap(q1,q2);第11行:printf("n%d,%dn",*q1,*q2);5. 程序读入20个整数

5、,统计非负数个数,并计算非负数之和#include"stdio.h”main()inti,a20,s,count;s=count=1;s=count=0;for(i=1;i<20;i-)for(i=0;i<20;i-)scanf("%dai);scanf(一.d_L&aj)_;.一for(i=0;i<20;i+)if(ai<0)break;continue;s+=ai;count+;printf("sf=%n”,s,count);.printf(一一s=%dcount=%dn一”,sco.u.nt);.6. x,y两个数中,让x中存

6、较大的数,y存较小的数#include<stdio.h>main()intx,y=200,z=0;x=180;if(x<y)z=x;_x=y_y=z_z=x;x=y;y=z;printf(x=%d,y=%dn”,&x,&y);printf(x=%d,y=%dn:',x,y)_;.7. 从键盘输入整数x的值,并输出y的值.main()intx;floaty;printf(y=%f”,y);floatx,y;正确的:scanf(%d",&x);y=3.5+x;printf(y=%d");8. 从1加到100,并输出.Main()

7、(inti,sumi=1;While(i<=100)(sum=sum13.调用起泡法函数排序voidsort(inta,n);(inti,j,temp,*p;for(i=0;i<n-1;i+)for(j=n-1;j>i;j-)if(dataj<dataj-1)(temp=aj;i;i+;printf("%6',sum)10、求一个4X4矩阵的对角线元素之和main()(inta44,sum=0;inti,j;printf(Enterdata:n");for(i=0;i<=4;I+)for(j=0,j<=4;j+)scanf(%d&

8、quot;,&aij);for(i=0;i<4;I+)for(j=0;j<4;j+)sum=sum+aij;printf(sum=%5dn”,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);aj=aj-1;aj-1=temp;main()(intdata10;*p=data;printf("Pleaseinput10numbers:n&

9、quot;);for(i=0;i<NUM;i+,p+)scanf("%d",&p);p=&data0;sort(data10,10);printf("ntheresultofsort:n");for(i=0;i<10;i+)printf("%d”,datai);编程计算下面分段函数,输入x,输出ymain()(intx,y;printf("n");scanf("%d',x);if(x<0)y=x-1;elseif(x>=0|x<=10)y=2x-1;elsey=

10、3x-1;printf(“y=%d);:15. 求100300间能被3整除的数的和。16. main()(intn;longsum;for(n=100;n<=300;n+)(if(n%3=0)sum=sum*n;printf(Id%",sum);用函数实现两个整数的交换。swap(int*p1,int*p2)(int*p;p=p1;p1=p2;p2=p;main()(inta,b;printf(nInputa,b:");scanf("%d,%d,&a)&bswap(&a,&b);printf(n%d,%d”,a,b);17.

11、实现华氏温度转换为摄氏温度,公式为:c=*(f-32),要求输出结果取2位小数。main()(intc,f;printf("Pleaseenterf:");scanf("%f",&f);c=5/9*(f-32);18. printf("f=%f,c=%f",c,f);下面程序的功能是计算n!。main()19. (inti,n;ints;printf("Pleaseentern:");scanf("%d”,n);for(i=1;i<=n;i+);s=*i;printf("%d!=%

12、d”,i,s);编程计算12+32+52+92,要求输出中间计算结果。main()(inti,sum=0;for(i=1:i<=9:i+2)sum+=i:printf("sum=%d”、sum);求表达式的值#include<stdio.h>#include<math.h>intfun(intx,inty);main()inta,b;floatf;scanf("%d,%d,a,b);if(ab>0)f=fun(a,b);printf("Theresultis:%dn”,&f)elseprintf("error!

13、");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,sumi=1;while(i<=100)sum=sum*i:i+;printf("%C,sum)24、一个小于100。的正整数每位上的数字是多少。#

14、include"stdio.h"main()intn,i,j,k;printf("Inputanumbern(0<n<1000):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%sn”,i,j,k);25、输入三角形的三边长,求三角形的面积。#include<math.h>main()(floata,b,c,s,ar

15、ea;scan("%d,%d,%d”,a,b,c);s=1.0/2for(n=0;n<20;n+)(t=t+n;s=s*t;printf("1!+2!+3!+4!+20!=%dn",s);inti,j;floattemp1;longtemp2;for(i=0;i<n-1;i+)for(j=i;j<=n;j+)if(scorej<scorei)tempi=scorej;scorej=scorei;scorei=tempi;temp2=numj;numj=numi;numi=temp2;把用户输入的数据累加,直到输入零为止,输出累加的结果。#i

16、nclude<stdio.h>main()inttsum=0,d;printf("Enteraserialofnumbersendedby0:n");(a+b+c);area=sqrt(s(s-a)(s-b)(s-c);printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn",&a,&b,&c,&s);printf("area=%7.2fn”,&area)26、求和1!+2!+3!+4!+20!。main()(floats=0,t=0;intn;(intm,n,res

17、ult1;print("inputtwointegers:);scaf("%!',m,n);result=m<n?n:m;while(result%m!=0)|(result%n=0)result&m,&n!=result+;printf("Theleastcommonmultipleofmandnis%d&result);result28. 下列程序实现按分数从高到低的顺序输出,划线处存在错误,请予以更正#include<stdio.h>#defineARR_SIZE40voidSort(floatscore,l

18、ongnum,intn)main()floatscoreARR_SIZE;intn,i;longnumARR_SIZE;printf("Pleaseentertotalnumber:");scanf("%dn”,n);printf("Pleaseenterthenumberandscore:n");for(i=0;i<n;i+)scanf("%ld%f",&numi,&scorei);Sort(score,num,n);printf("Sortedresults:n");for(i=

19、0;i<n;i+)printf("%ldt%4.0fn",numi,scorei);voidSort(score,num,n)while(1)(scanf("%d",d);if(d=0)break;sum+=d;printf("sum=%fn”,sum);正确:scanf("%d",&d);正确:d=0正确:printf("sum=%dn”,sum);30、求1+2+3+4+n(n<100)#include<stdio.h>fun(n);正确:main()(intp,n;scanf(

20、"%d”,&n);p=intfun(n);正确:printf("p=%d”,p);intfun(intm)(inttotal;正确:inti=1;while(i<=m)(total=total+i;i+;return;正确:32.求一个3X3矩阵的主对角线元素之和main()(inta33;intsum;inti,j;printf(Enterdata:n");for(i=0;i<3;i+)for(j=0,j<3,j+)scanf(%f”,&aij);for(i=0;i<3;i+)for(j=0,j<=3;j+)if(i=j)sum+=aij;printf(Sum=%5dn”,sum);33.摄氏温度C=(5/9)(F-32),求华氏温度F=100时对应的摄氏温度#include<stdoi.h>voidmain(void)intcelsius;fahr;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=d,celsius=%dn",fahr,celsius);二、下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论