C语言课程设计上机报告.doc

上传人:laozhun 文档编号:2384862 上传时间:2023-02-17 格式:DOC 页数:19 大小:214.50KB
返回 下载 相关 举报
C语言课程设计上机报告.doc_第1页
第1页 / 共19页
C语言课程设计上机报告.doc_第2页
第2页 / 共19页
C语言课程设计上机报告.doc_第3页
第3页 / 共19页
C语言课程设计上机报告.doc_第4页
第4页 / 共19页
C语言课程设计上机报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C语言课程设计上机报告.doc》由会员分享,可在线阅读,更多相关《C语言课程设计上机报告.doc(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语言老师在学习过程中对于我们的帮助

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号