版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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+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语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年智能医疗设备软件许可协议2篇
- 二零二四年度影视制作合同范本6篇
- 房屋租赁代理合同(2024版)7篇
- 2024年汽车销售独家代理合同3篇
- 房屋抵押贷款合同纠纷(2024版)2篇
- 2024年期货中介业务合作合同
- 2024年环保墙纸购销协议2篇
- 天然气管道铺设合同范本(2024年版)
- 2024年度物流配送与信息化服务合同
- 2024版全新版权许可使用合同3篇
- 反恐怖宣传教育进校园主题班会
- 山东师范大学语言学概论期末考试复习题
- 小学科学教师专业技能大赛实施方案
- 《预防校园霸凌+呵护青春远航 》主题班会课件
- 中外政治思想史-形成性测试三-国开(HB)-参考资料
- 数学(基础模块)中职数学课程全套教学课件
- 四川航空介绍
- 感恩父母励志学习主题班会
- 电加热设备安全检查表
- 如何应对压力下的时间管理
- (2024版)小学六年级数学空间与图形培养立体思维
评论
0/150
提交评论