C语言程序设计 实训报告
姓名: 班级: 学号:
C语言程序设计实训报告 共12页 第1页
题目使用printf()和sacnf()函数实现输入一个字符,输出其后面的1 第四个字符,如:输入a,输出e。当输入w,x,y,z时,可报错 #include main() { char c; printf(\"请输入1个字符\\n\"); scanf(\"%c\ if(c=='w') printf(\"输入错误\\n\"); else if(c=='x') printf(\"输入错误\\n\"); else if(c=='y') 程 printf(\"输入错误\\n\"); else if(c=='z') else printf(\"c=%c\\n\} 序 printf(\"输入错误\\n\"); 代 码 C语言程序设计实训报告 共12页 第2页编写一个程序,从键盘输入一个数n,实现以下功能: 1、计算从1到n的和; 2、计算从1到n在奇数和 题目2 3、计算从1到n在偶数和 4、计算从1到n能被3整除的数的和 5、计算从1到n不能被7整除在数的和 程 序 代 码 #include main() { int n,i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; printf(\"please input n:\"); scanf(\"%d\ for(i=0;i<=n;i++) sum1=sum1+i; printf(\"从1到n的和为:%d\\n\ for(i=1;i<=n;i=i+2) sum2=sum2+i; printf(\"从1到n的奇数和为:%d\\n\ for(i=0;i<=n;i=i+2) sum3=sum3+i; printf(\"从1到n的偶数和为:%d\\n\ for(i=0;i<=n;i=i+3) sum4=sum4+i; printf(\"从1到n能被3整除的数的和为:%d\\n\ for(i=0;i<=n;i=i+7) sum5=sum5+i; printf(\"从1到n不能被7整除的数的和为:%d\\n\}C语言程序设计实训报告 共12页 第3页
自定义一个3×4的二维数组,并实现以下功能 1、按照行列输出数组 2、把数组元素行元素和列元素互换,并存到一个新的数组中(参考例5.5) 题目3 3、寻找并输出数组中最大和最小的元素,并输出其所在的行和列。 格式为: 最大值XX在第X行第X列 最小之XX在第X行第X列 4、对数组求和 程 序 代 码 #include main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},row=0,colum=0,max,min,sum=0; int b[4][3],i,j; printf(\"数组a:\\n\"); for(i=0;i<=2;i++) { for(j=0;j<=3;j++) { printf(\"%5d\ b[j][i]=a[i][j]; } printf(\"\\n\"); } printf(\"数组b:\\n\"); for(i=0;i<=3;i++) { for(j=0;j<=2;j++) { printf(\"%5d\ } printf(\"\\n\"); max=a[0][0]; } for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>=max) C语言程序设计实训报告 共12页 第4页{ max=a[i][j]; row=i; colum=j; } printf(\"最大值为%d在第%d行第%d列\\n\ min=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]<=min) { min=a[i][j]; row=i; colum=j; } printf(\"最小值为%d在第%d行第%d列\\n\ for(i=0;i<=2;i++) for(j=0;j<=3;j++) sum+=a[i][j]; printf(\"数组和为%d\\n\} 判断两个字符串是否可以连接在一起,可以的话连接并显示,不能使题目4 用strcat函数。不可以的话请给出提示信息。 程 序 代 码 #include main() { int i,length1,length2; char str1[25],str2[25]; printf(\"请输入字符串1,少于25个字符\\n\"); scanf(\"%s\ printf(\"请输入字符串2,少于25个字符\\n\"); C语言程序设计实训报告 共12页 第5页scanf(\"%s\ length1=0; while(str1[length1]!='\\0') { length1+=1; } printf(\"字符串1的内容为:%s,长度为:%d\\n\ length2=0; while(str2[length2]!='\\0') { length2+=1; } printf(\"字符串2的内容为:%s,长度为:%d\\n\ if((length1+length2+1)>25) { printf(\"2个字符串的总长度为%d,超过了字符串1的允许长度,不能连接!\\n\ } else { for(i=0;i题目用冒泡法对一维数组排序,数组长度为10,数组中的数据从键盘输入 6 #include main() { int a,b,sum,max,*pb=&b,*ps=&sum,*pm=NULL; *ps=0; printf(\"请输入10个整数:\"); for(a=0;a<10;a++) { scanf(\"%d\ *ps=*ps+*pb; if(pm==NULL) { pm=&max; *pm=*pb; } else { if(*pb>*pm) { *pm=*pb; } } } printf(\"10个整数的和为%d\\n其中最大值为%d\\n\} 程 序 代 码 C语言程序设计实训报告 共12页 第7页程 序 代 码 #include main() { int i,j; float a[10],t; printf(\"输入一组长度为10的数组:\"); for(i=0;i<10;i++) scanf(\"%f\ for(i=0;i<9-i;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf(\"数组从小到大的顺序为:\\n\"); for(i=0;i<10;i++) printf(\"%7.1f\ printf(\"\\n\"); if(a[j]>a[j+1]) { t=a[j+1]; a[j+1]=a[j]; a[j]=t; } printf(\"数组从大到小的顺序为:\\n\"); for(i=9;i>=0;i--) printf(\"%7.1f\ printf(\"\\n\"); } C语言程序设计实训报告 共12页 第8页题目7 一个程序,实现对全班某课程的成绩进行统计,假定全班共8人,实现以下功能: 1、从键盘输入成绩,对于错误成绩(小于0或者大于100)给出警告并重新输入 2、计算全班平均分,使用冒泡法查找最低分和最高分,并显示。显示如下: 平均分:XXX分 最高分:XXX分 最低分:XXX分 3、计算各分数段的比例,包括,<60,60~69,70~79,80~89,90~99段。显示如下: 分数段 人数 比例 <60 XX人 XX% 60~69 XX人 XX% 70~79 XX人 XX% 80~89 XX人 XX% 90~99 XX人 XX% C语言程序设计实训报告 共12页 第9页
#include main() { int i,j; float a[8],t,sum=0,x=0,y=0,z=0,p=0,q=0; printf(\"请输入成绩并用空格键隔开:\\n\"); for(i=0;i<8;i++) { scanf(\"%f\ if(a[i]<0) { printf(\"输入数据小于0,错误,请重新输入\\n\"); scanf(\"%f\ } else if(a[i]>100) { 程 printf(\"输入数据超过100,错误,请重新输入序 \\n\"); 代 scanf(\"%f\码 } sum+=a[i]; if(a[i]<60) x+=1; else if(a[i]<70) y+=1; else if(a[i]<80) z+=1; else if(a[i]<90) p+=1; else if(a[i]<100) q+=1; } for(i=0;i<7;i++) for(j=0;j<7-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf(\"平均分: %5.2f分 最高分: %5.2f分 最低分: %5.2f分\\n\C语言程序设计实训报告 共12页 第10页printf(\"分数段 人数 比例\\n\"); printf(\"<60 %1.0f人 \\n\printf(\"60~69 %1.0f人 \\n\printf(\"70~79 %1.0f人 \\n\printf(\"80~89 %1.0f人 \\n\printf(\"90~99 %1.0f人 \\n\} %5.2f% %5.2f% %5.2f% %5.2f% %5.2f%,所谓“水仙花数”是指一个题目打印出1~100内的所有的“水仙花数”8 三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方 程 序 代 码 #include main() { int i,a,b,c,m; printf(\"输出1~1000的所有水仙花数为:\"); for(i=100;i<900;i++) { a=i/100; b=i/10%10; c=i%10; m=a*a*a+b*b*b+c*c*c; if(i==m) { printf(\" %d\ } } 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落题目下,求它在第10次落地时,共经过多少米?列出每一次的弹起高度 10 C语言程序设计实训报告 共12页 第11页#include main() 序 { int i; 代 float n,h=0; n=100; 码 for(i=1;i<11;i++) { n=n/2; printf(\"第%d次弹跳起的高度是:%6f米\\n\ h=n*2+h; } printf(\"第十次落地时共经过%6f米\\n\} 程 实训心得 经过一星期的C语言实训,我对C语言有了更深一步的了解认识,也对上学期学到的知识进行了巩固。在学习过程中老是出现编程序的错误,但是经过一次次的修改,最终还是得到了正确的C语言程序。通过自己与同学的合作编写程序,最终把学到的理论知识转化为基本技能。 这次实训提高了我们对学习的热情,虽然有些同学在玩游戏,但是在作业方面他们是毫无放松的。实训中我体会到了老师对教学的方法是对的,只有不断的练习才能更好的掌握C语言。在练习的过程中虽有一丝对不懂的抱怨,但是我们的收获告诉了我是值得的。我也从中体会到了平时不注意的小问题能带来的后果,切切实实的体会到了C语言的魅力。 在实训中,我还深刻体会到自己的基础还是很薄弱,而且许多知识都要参考课本才能做出来。对于以后,我将会关注一下优秀的教材和代码。遇到什么问题时可以上网查询或者是跟同学讨论,尽量的弄出解题的多道方案。 C语言程序设计实训报告 共12页 第12页