




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。1.求1234nmain(){longintsum;intn,i=1;scanf("%d",n);printf(“\n”);while(i<n){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+4inta=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<b)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;j<5;j++)第五行改为:scanf(“%d”,&a[j]);第七行改为:for(j=0;j<5;j++)第八行改为:if(max<a[j])第十三行改为: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<b)swap(q1,q2);第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<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=%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,sumi=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<n-1;i++)for(j=n-1;j>i;j--)if(data[j]<data[j-1]){temp=a[j];a[j]=a[j-1];a[j-1]=temp;} main(){intdata[10]; *p=data; printf("Pleaseinput10numbers:\n");for(i=0;i<NUM;i++,p++)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,输出ymain(){intx,y;printf(“\nInputx:\n”);scanf(“%d”,x);if(x<0)y=x-1;elseif(x>=0||x<=10)y=2x-1;elsey=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<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:%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,sumi=1;while(i<=100){sum=sum*i;i++;}printf(“%c”,sum)}一个小于1000的正整数每位上的数字是多少。#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%s\n",i,j,k);}25、输入三角形的三边长,求三角形的面积。#include<math.h>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.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",&a,&b,&c,&s);printf("area=%7.2f\n",&area)}ﻩ26、求和1!+2!+3!+4!+……+20!。main(){floats=0,t=0;intn;for(n=0;n<20;n++){t=t+n;s=s*t;}printf("1!+2!+3!+4!+……+20!=%d\n",s);}*27、下面程序实现的功能是求两整数的最小公倍数。#include"stdio.h"main(){intm,n,result1;resultprint(“inputtwointegers:\n”);scaf(“%d%d”,m,n);&m,&nresult=m<n?n:m;while((result%m!=0)||(result%n==0))!=result++;printf(“Theleastcommonmultipleofmandnis%d\n”,&result);result}28.下列程序实现按分数从高到低的顺序输出,划线处存在错误,请予以更正.#include<stdio.h>#defineARR_SIZE40voidSort(floatscore[],longnum[],intn)main(){floatscore[ARR_SIZE];ﻩintn,i;ﻩlongnum[ARR_SIZE];ﻩprintf("Pleaseentertotalnumber:"); scanf("%d\n",n); printf("Pleaseenterthenumberandscore:\n"); for(i=0;i<n;i++)ﻩ{scanf("%ld%f",&num[i],&score[i]);}ﻩSort(score,num,n); printf("Sortedresults:\n"); for(i=0;i<n;i++)ﻩ{printf("%ld\t%4.0f\n",num[i],score[i]);}}voidSort(score,num,n){inti,j; floattemp1; longtemp2;ﻩfor(i=0;i<n-1;i++) {for(j=i;j<=n;j++) {if(score[j]<score[i]) {temp1=score[j];ﻩﻩﻩﻩscore[j]=score[i];ﻩ score[i]=temp1;ﻩﻩtemp2=num[j]; ﻩﻩ num[j]=num[i]; ﻩﻩﻩnum[i]=temp2;ﻩ}ﻩ } }}把用户输入的数据累加,直到输入零为止,输出累加的结果。#include<stdio.h>main(){inttsum=0,d;printf("Enteraserialofnumbersendedby0:\n");while(1){scanf("%d",d);对的:scanf("%d",&d);if(d=0)break;对的:d==0sum+=d;}printf("sum=%f\n",sum);对的:printf("sum=%d\n",sum);}30、求1+2+3+4++n(n<100)#include<stdio.h>fun(n);对的:main(){intp,n;scanf("%d",&n);p=intfun(n);对的:printf("p=%d",p);} intfun(intm){inttotal;对的:inti=1;while(i<=m){total=total+i;i++;}return;对的:}32.求一个3×3矩阵的主对角线元素之和main(){inta[3][3];intsum;inti,j;printf(“Enterdata:\n”);for(i=0;i<3;i++)for(j=0,j<3,j++)scanf(“%f”,&a[i][j]);for(i=0;i<3;i++)for(j=0,j<=3;j++)if(i=j)sum+=a[i][j];printf(“sum=%5d\n”,sum);}33.摄氏温度C=(5/9)(F-32),求华氏温度F=100时相应的摄氏温度。#include<stdoi.h>voidmain(void){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部门账务流程管理制度
- 齿轮产品追溯管理制度
- 车间安全培训管理制度
- 食品生产各项管理制度
- 营销公司接待管理制度
- 装修厂房设备管理制度
- 2025年职工工作计划(29篇)
- 生物质热电联产项目前景分析与可行性评估
- 教育强国建设的路径与战略解析
- 刀具行业未来发展趋势与市场机遇分析
- 公司差旅费报销单
- QC汇报:超前止水后浇带施工
- 软件供应链安全解决方案项目初步(概要)设计
- 云南天安化工有限公司67.5万吨(P2O5)年湿法磷酸初级净化研发及应用环境影响报告书
- (完整版)不锈钢管弯管器的使用方法及操作流程
- 基于PLC的小区排水控制系统设计毕业论文
- 高风险供应商管理程序(经典-专业-建议收藏)
- 振动试验报告
- 起重工岗位风险告知书
- 线切割机工操作规程
- 【基于近五年数据的鸿星尔克财务报表分析15000字】
评论
0/150
提交评论