C语言实习报告参考模板.doc

上传人:doc321 文档编号:15004935 上传时间:2022-03-03 格式:DOC 页数:19 大小:312.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语言实用性的理解,在实践中巩固各知识点。C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型和高效率的运算程序,为我们进一步学习C+打下坚实基础。同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而且也让我们发现了一些自己的个人误区以及其他人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效果;通过询问老

2、师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。闲乐-一个人闲。不如大家一块儿乐http:/www.xlw.cc1 / 19二,总体设计: 1,学生成绩排名1,流程图:I=0 再输入一个学生的成绩IaI+I假 aj aj+1赋值真?I=0 输出I11? 假? 结束 真? 2,程序:#includeint main()int a11,i,j,t,b,c,temp1,temp2,temp3; /定义一个数组a11,用以存放学生的成绩printf(从键盘输入10个学生成绩:n);for(i=0;i10;i+)scanf(%d,&ai); /输入10个学生成绩for(i=0;i9;i+)f

3、or(j=0;j9-i;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; /采用冒泡法,将学生成绩按照从高到低进行排序 printf(10个学生成绩数组:n);for(i=0;i10;i+)printf(%5d,ai); printf(n);printf(再输入一个学生的成绩n); scanf(%d,&b); /再输入一个学生的成绩 c=a9;if(bc) /将此成绩按照排序规律插入原学生成绩数组a10=b;else for(i=0;i10;i+) if(aib) temp1=ai;ai=b; for(j=i+1;j11;j+) temp2=aj;aj=temp1;temp1

4、=temp2; break; printf(11个学生成绩数组:n); /输入11个学生成绩 for(i=0;i11;i+) printf(%5d,ai); printf(n); for(i=0;i5;i+) /排好序的成绩单进行反序存放temp3=ai;ai=a10-i;a10-i=temp3; printf(排好序的成绩单进行反序存放为:n); for(i=0;i11;i+) /输出反序存放后的学生成绩数组 printf(%5d,ai); printf(n); return 0;3,运行结果:2,根据条件进行学生成绩排名1,流程图:I=0,i+输入nSort1 sort2I=0,i+I10

5、?假?IaI+I假 aj aj+1赋值真?赋值I由0变到n-1执行n次循环 进行n-1-I次比较 真 ajaI+I假 aj aj+1 输出a0到an-1 Style=97赋值InI=0,i+输入n Sort3假?Style=100假?真?真?I由0变到n-1执行n次循环 进行n-1-I次比较 真 ajaI+I假 aj aj+1输入a or d输出a0到an-12,程序: #includevoid sort1(int a10) /定义函数 int i,j,t;printf(输入10个学生成绩:n); for(i=0;i10;i+)scanf(%d,&ai); /输入n个学生成绩 for(i=0;

6、i10;i+) /冒泡法对n个数字排序for(j=0;j9-i;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(10个学生成绩从高到低排名是:n); for(i=0;i10;i+) /输出结果 printf(%5d,ai); printf(n); void sort2(int a,int n) /定义函数int i,j,t; printf(请输入学生个数n:n); scanf(%d,&n); printf(输入n个学生成绩:n); for(i=0;in;i+)scanf(%d,&ai); for(i=0;in;i+) /冒泡法对n个数字排序for(j=0;jn

7、-i-1;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(n个学生成绩从高到低排名是:n); for(i=0;in;i+) /输出结果 printf(%5d,ai); printf(n);void sort3(int a,int n, char style) char c; getchar(c); printf(请输入style类型:a or dn);style=getchar();printf(请输入学生个数n:n);scanf(%d,&n);printf(输入n个学生成绩:n); int i,j,t; for(i=0;in;i+)scanf(%d,&ai)

8、;if(style=97) printf(对n个数字升序排列为:n);for(i=0;in;i+) /冒泡法对n个数字升序排列 for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t; else if(style=100) printf(对n个数字降序排列为:n);for(i=0;in;i+) /冒泡法对n个数字降序排列 for(j=0;jn-i-1;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(n个学生成绩排名是:n); for(i=0;in;i+) /输出结果 printf(%5d,ai); printf(n);int main() /主函数

9、 printf(sort1:n); /调用sort1函数 int a10;sort1(a);printf(sort2:n); /调用sort2函数int a30000,n;sort2(a,n);printf(sort3:n); /调用sort3函数 int a30000,n;char style;sort3(a,n,style);return 0;3,运行结果: 3,用指针优化学生成绩排名1, 流程图:Sort copy main 2,程序:#include#includevoid sort(int *p) /定义函数sort /将成绩数组按照从高到低进行排序,要求用函数实现int i,j,t

10、;for(i=0;i9;i+)for(j=0;j9-i;j+)if(*(p+j)*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;void copy(char *a,char *b) /定义函数copy for(;*a!=0;a+,b+) / 复制该字符串,用函数实现 *b=*a;*b=0;int main()int i,j,t,stu10,*p; / 定义一个数组stu10存放10个学生的成绩 p=stu;printf(请输入10个数据:n); for(i=0;i10;i+) /从键盘输入数据,用指针实现scanf(%d,p+i);printf(数组st

11、u10的内容为:n);for(i=0;i10;i+) /将数组stu10的内容输出到屏幕上,用指针实现printf(%5d,*(p+i);printf(n);for(i=0;i9;i+) /将成绩数组按照从高到低进行排序,用指针实现for(j=0;j9-i;j+)if(*(p+j)*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;printf(成绩数组按照从高到低进行排序为:n); p=stu; for(i=0;i10;i+)printf(%5d,*(p+i);printf(n);p=stu;sort(p); /调用函数sortprintf(第三步内容放在

12、函数中实现为:n); for(i=0;i10;i+)printf(%5d,*(p+i);printf(n);printf(采用指针方法,输入字符串student score: n);char *a=student score;char b14;copy(a,b); /调用函数copyprintf(%sn,b);return 0;3, 运行结果:4,学生成绩单制作1, 流程图: Return 0 2, 程序:#includeStructStudent /定义结构体char number10;char name10;int score3;float average;student10;int ma

13、in()int i,j,t;for(i=0;i10;i+) /初始化结构体printf(n输入student%d成绩:n,i+1);printf(number:);scanf(%s,studenti.number);printf(name:); /存放10个学生的学号,姓名,三门课的成绩scanf(%s,studenti.name);for(j=0;j3;j+)printf(score %d:,j+1);scanf(%d,&studenti.scorej);studenti.average=(studenti.score0+studenti.score1+studenti.score2)/3.

14、0;printf(average:%f,studenti.average); printf(n); printf(输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:n); /输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩int max=0,max_math=0,max_chinese=0,max_english=0,max_average=0,max_i=0; for(i=0;i10;i+)if(max_mathstudenti.score0)max_math=studenti.score0;max_i=i; printf(number=%s,name=%s,max_math=

15、%dn,studentmax_i.number,studentmax_i.name,studentmax_i.score0); printf(输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:n);for(i=0;i10;i+)if(max_chinesestudenti.score1)max_chinese=studenti.score1;max_i=i; printf(number=%s,name=%s,max_chinese=%dn,studentmax_i.number,studentmax_i.name,studentmax_i.score1); printf(输出中文成绩最高

16、的学生的学号、姓名、以及该门课程的成绩:n);for(i=0;i10;i+)if(max_englishstudenti.score2)max_english=studenti.score0;max_i=i; printf(number=%s,name=%s,max_english=%dn,studentmax_i.number,studentmax_i.name,studentmax_i.score2); printf(输出三门课程的平均分数最高的学生的学号、姓名及其平均分:n); /输出三门课程的平均分数最高的学生的学号、姓名及其平均分 for(i=0;i10;i+)if(max_aver

17、agestudenti.average)max_average=studenti.average;max_i=i; printf(number=%s,name=%s,max_average=%fn,studentmax_i.number,studentmax_i.name,studentmax_i.average); for(i=0;i9;i+) /将10个学生按照平均分数从高到低进行排序for(j=0;j9-i;j+)if(studentj.averagestudentj+1.average)t=studentj.average;studentj.average=studentj+1.average;studentj+1.average=t; printf( number name math Chinese English averagen); for(i=0;i10;i+) /输出排序后的结果 printf(%8s%8s%9d%9d%9d %6.2fn,studenti.number,studenti.name,studenti.score0,studenti.score1,studenti.score2,studenti.average); return 0;3, 运行结果:

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1