C语言课程设计上机报告

上传人:1777****777 文档编号:37103699 上传时间:2021-11-02 格式:DOC 页数:19 大小:256.54KB
收藏 版权申诉 举报 下载
C语言课程设计上机报告_第1页
第1页 / 共19页
C语言课程设计上机报告_第2页
第2页 / 共19页
C语言课程设计上机报告_第3页
第3页 / 共19页
资源描述:

《C语言课程设计上机报告》由会员分享,可在线阅读,更多相关《C语言课程设计上机报告(19页珍藏版)》请在装配图网上搜索。

1、 C语言课程设计学 院: 机械与电子信息学部 专 业:机械设计制造及其自动化 班 级: 机械一班 学 号: 姓 名: 指导教师: 2011年6月目 录第一章 选择和循环程序设计第二章 数组第三章 函数第四章 指针第五章 课程设计总结第一章 选择和循环程序设计1、输入变量x的值,计算y的值。 x+1 x1 x+2 1=x2 y = x+3 2=x=3【算法分析】(用文字或流程图进行描述) 用if语句检查x的值,根据x的值域决定y值。由于y的可能值不是两个而是四个,因此不可只用就一个简单的if语句来实现,可先后用4个独立的if语句处理:输入x若x1,则y=x+1若1=x2,则y=x+2若2=x=3

2、,则y=x+4输出y【源程序代码】#includeint main() float x,y; scanf(%f,&x); if(x=1&x=2&x3) y=x+3; else y=x+4; printf(x=%f,y=%fn,x,y); return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、猜数游戏。由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到猜对为止。计算机记录人猜的次数,以此可以反映出猜数者“猜”的水平。【算法分析】(用文字或流程图进行描述)对此,可以先定义一个数值,然后再输入猜

3、想值,把猜想的值与定义的数值比较,通过比较给出提示信息,可用while语句处理,若猜想值与定义值不等,则始终循环输入判断,直到猜想值正确,并积累输入次数。【源程序代码】#includeint main() float x,n=88.0; int i=1; scanf(%f,&x); doif(xn) printf(猜想值太大,请重新输入:n); scanf(%f,&x); i+; while(x!=n); printf(Good!%f,i=%dn,x,i); return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】3、若一个口袋中放有12个球,其中有

4、3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配。【算法分析】(用文字或流程图进行描述)可以用循环嵌套来处理,取出的8个球中,如黑色和红色的球都取出来了,那黑球至少得取出两个,直到取出的球的总数为8时,停止取球,最后输出总数即可【源程序代码】#includevoid main()int i,j,p,m=0,sum=8;for(i=0;i=3;i+)for(j=0;j=3;j+)for(p=2;p=6;p+)if(sum=i+j+p) m+;printf(搭配总数为:%dn,m);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第二章

5、 数组1、某班有10名学生参加全国计算机等级考试,编写一个程序求该班学生考试成绩的平均分和高于平均分的人数。【算法分析】(用文字或流程图进行描述)使用一个一维数组,输入10个学生的成绩。使用函数,求平均数、【源程序代码】#includeint main()int i,a10,n=0;float aver,sum=0.0; printf(please enter ten number:n); for(i=0;i10;i+) scanf(%d,&ai); sum=sum+ai; aver=sum/10; printf(平均成绩%.2fn,aver); for(i=0;iaver) n+; prin

6、tf(超过平均成绩人数%dn,n); return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放在另一数组中并输出。【算法分析】(用文字或流程图进行描述)确定两个数组,使用for循环语句嵌套、【源程序代码】#includeint main()int i,j,a30,b6,aver6,sum6=0; for(i=0;i30;i+)ai=2*(i+1); for(i=0;i5;i+) sum0=sum0+ai; aver0=sum0/5; for(i=5

7、;i10;i+) sum1=sum1+ai; aver1=sum1/5; for(i=10;i15;i+) sum2=sum2+ai; aver2=sum2/5;for(i=15;i20;i+) sum3=sum3+ai; aver3=sum3/5; for(i=20;i25;i+) sum4=sum4+ai; aver4=sum4/5; for(i=25;i30;i+) sum5=sum5+ai; aver5=sum5/5; for(j=0,i=0;j5,i5;i+,j+) bj=averi; printf(%dn,bj);return 0;【编译示图】(示图中要有0 error,0 war

8、ning的提示)【运行结果示图】第三章 函数1、有一个一维数组score,内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。【算法分析】(用文字或流程图进行描述)调用一个函数可以得到一个函数的返回值,题目希望得到3个结果,故可以使用全局变量来达到要求、【源程序代码】#include#define MAX 10void deal(int *a,int b)int i;int sum,max,min,temp;min=max=sum=a0;for(i=1;ib;i+)temp=ai;if(tempmax) max=temp;sum+=temp

9、;printf(the max num is: %dn,max);printf(the min num is: %dn,min);printf(the average is: %dn,sum/b);void main()int scoreMAX=86,89,98,79,90,45,75,56,88,56;deal(score,MAX);【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】2、输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。【算法分析】(用文字或流程图进行描述)此题包含了多种情况,使用case语句。包含各种情况,一一列举编

10、程。【源程序代码】#includeint main(void) int month,year,day,sum,i=0; printf(Input the year, the month and the day:n); scanf(%d %d %d,&year,&month,&day); switch(month) case 12: i=i+30; case 11: i=i+31; case 10: i=i+30; case 9: i=i+31; case 8: i=i+31; case 7: i=i+30; case 6: i=i+31; case 5: i=i+30; case 4: i=i

11、+31; case 3: i=i+28; case 2: i=i+31; case 1: ; default: ; sum=i+day; if(year%4=0&year%100!=0)|(year%400=0)&(month2) sum=sum+1; printf(the day is the %d day in %d yearn,sum,year); 【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】3、用函数法求N*N的对角线的和。其中的N是用户通过键盘输入的任意值。【算法分析】(用文字或流程图进行描述) 因为n的值不能确定,声明一个能足够容量n的数组,然

12、后通过输入n的值来确定输出数组,要求的是对角线之和,只需要在i= =j时,即可求得对角线之和。【源程序代码】#includeint main()int a1010=0,i,j,sum=0,n; printf(输入n值:n); scanf(%d,&n); printf(输入数组:n); for(i=0;in;i+) for(j=0;jn;j+) scanf(%d,&aij); for(i=0;in;i+)for(j=0;jn;j+) if(i=j) sum=sum+aij;printf(对角线之和为:%dn,sum);return 0;【编译示图】(示图中要有0 error,0 warning的

13、提示) 【运行结果示图】 第四章 指针1、已知一个整型数组a5,其各元素值为4,6,8,10,12。使用指针法求该数组元素之积。【算法分析】(用文字或流程图进行描述) 题目的要求是用指针法求积,所以要先使得指针变量p指向a数组的首元素,最后通过*p来求数值数值之积。【源程序代码】#includeint main()int a5=4,6,8,10,12;int m=1,*p; for(p=a;p(a+5);p+)m=m*(*p); printf(%dn,m);return 0;【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】 2、编写两个排序函数,要求一个函数完

14、成从小到大排序,一个函数完成从大到小排序,并编写主函数完成: 输入n个数; 组织调用排序函数对n个数按从大到小排序并输出; 组织调用排序函数对n个数按从小到大排序并输出;【算法分析】(用文字或流程图进行描述) 在主函数中定义数组a存放10个整数,定义int *型指针变量p指向a0。定义两个函数sort分别使得数组a中的元素按从大到小和从小到大的顺序排列。在主函数调用sort函数,用指针变量p作实参。Sort函数的形参用数组名。用选择法进行排序,最后的返回main函数,输出结果。【源程序代码】#includeint main() void sort1(int x,int n); void sor

15、t2(int x,int n); int i,*p,a10; p=a; printf(输入你想输入的数组:); for(i=0;i10;i+) scanf(%d,p+); p=a; sort1(p,10); for(p=a,i=0;i10;i+) printf(%d ,*p); p+; printf(n); p=a; sort2(p,10); for(p=a,i=0;i10;i+) printf(%d ,*p); p+; printf(n); return 0; void sort1(int x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i;for(j=i+

16、1;jxk)k=j; if(k!=i) t=xi;xi=xk;xk=t; void sort2(int x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(xjxk)k=j; if(k!=i) t=xi;xi=xk;xk=t; 【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第五章 课程设计总结经过一个学期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些数组不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。同时还要感谢我的C语言老师在学习过程中对于我们的帮助

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!