c语言实训报告_第1页
c语言实训报告_第2页
c语言实训报告_第3页
c语言实训报告_第4页
c语言实训报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计实训报告共12页第12页C语言程序设计实训报告姓名:班级:学号:题目1使用printf()和sacnf()函数实现输入一个字符,输出其后面的第四个字符,如:输入a,输出e。当输入w,x,y,z时,可报错程序代码#include<stdio.h>main(){ charc; printf("请输入1个字符\n"); scanf("%c",&c);if(c=='w') printf("输入错误\n"); elseif(c=='x') printf("输入错误\n"); elseif(c=='y') printf("输入错误\n"); elseif(c=='z') printf("输入错误\n"); else printf("c=%c\n",c+4);}题目2编写一个程序,从键盘输入一个数n,实现以下功能:1、计算从1到n的和;2、计算从1到n在奇数和3、计算从1到n在偶数和4、计算从1到n能被3整除的数的和5、计算从1到n不能被7整除在数的和程序代码#include<stdio.h>main(){ intn,i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; printf("pleaseinputn:"); scanf("%d",&n); for(i=0;i<=n;i++) sum1=sum1+i; printf("从1到n的和为:%d\n",sum1);for(i=1;i<=n;i=i+2) sum2=sum2+i; printf("从1到n的奇数和为:%d\n",sum2); for(i=0;i<=n;i=i+2) sum3=sum3+i; printf("从1到n的偶数和为:%d\n",sum3);for(i=0;i<=n;i=i+3) sum4=sum4+i; printf("从1到n能被3整除的数的和为:%d\n",sum4); for(i=0;i<=n;i=i+7) sum5=sum5+i; printf("从1到n不能被7整除的数的和为:%d\n",sum1-sum5);}题目3自定义一个3×4的二维数组,并实现以下功能1、按照行列输出数组2、把数组元素行元素和列元素互换,并存到一个新的数组中(参考例5.5)3、寻找并输出数组中最大和最小的元素,并输出其所在的行和列。格式为:最大值XX在第X行第X列最小之XX在第X行第X列4、对数组求和程序代码#include<stdio.h>main(){ inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},row=0,colum=0,max,min,sum=0; intb[4][3],i,j; printf("数组a:\n"); for(i=0;i<=2;i++) { for(j=0;j<=3;j++) { printf("%5d",a[i][j]); 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",b[i][j]); } printf("\n"); max=a[0][0]; } for(i=0;i<=2;i++) for(j=0;j<=3;j++)if(a[i][j]>=max) { max=a[i][j]; row=i; colum=j; } printf("最大值为%d在第%d行第%d列\n",max,row,colum); 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",min,row,colum); for(i=0;i<=2;i++) for(j=0;j<=3;j++) sum+=a[i][j]; printf("数组和为%d\n",sum);}题目4判断两个字符串是否可以连接在一起,可以的话连接并显示,不能使用strcat函数。不可以的话请给出提示信息。程序代码#include<stdio.h>main(){ inti,length1,length2; charstr1[25],str2[25]; printf("请输入字符串1,少于25个字符\n");scanf("%s",str1); printf("请输入字符串2,少于25个字符\n"); scanf("%s",str2); length1=0; while(str1[length1]!='\0') { length1+=1; } printf("字符串1的内容为:%s,长度为:%d\n",str1,length1); length2=0; while(str2[length2]!='\0') { length2+=1; } printf("字符串2的内容为:%s,长度为:%d\n",str2,length2); if((length1+length2+1)>25) { printf("2个字符串的总长度为%d,超过了字符串1的允许长度,不能连接!\n",length1+length2); } else { for(i=0;i<length2;i++) { str1[length1+i]=str2[i]; } str1[length1+i]='\0'; printf("连接后的字符串为:%s\n",str1); }}题目5编写程序程序,实现以下功能:1、使用for循环和指针实现10个数的从键盘输入、求和2、在实现1的程序上做修改,用指针实现同时找出10个数中的最大值程序代码#include<stdio.h>main(){ inta,b,sum,max,*pb=&b,*ps=&sum,*pm=NULL; *ps=0; printf("请输入10个整数:"); for(a=0;a<10;a++) { scanf("%d",pb); *ps=*ps+*pb; if(pm==NULL) { pm=&max; *pm=*pb; } else { if(*pb>*pm) { *pm=*pb; } } } printf("10个整数的和为%d\n其中最大值为%d\n",*ps,*pm);}题目6用冒泡法对一维数组排序,数组长度为10,数组中的数据从键盘输入程序代码#include<stdio.h>main(){ inti,j; floata[10],t; printf("输入一组长度为10的数组:"); for(i=0;i<10;i++) scanf("%f",&a[i]); 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",a[i]); 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",a[i]); printf("\n");}题目7一个程序,实现对全班某课程的成绩进行统计,假定全班共8人,实现以下功能:1、从键盘输入成绩,对于错误成绩(小于0或者大于100)给出警告并重新输入2、计算全班平均分,使用冒泡法查找最低分和最高分,并显示。显示如下:平均分:XXX分最高分:XXX分最低分:XXX分3、计算各分数段的比例,包括,<60,60~69,70~79,80~89,90~99段。显示如下:分数段人数比例<60XX人XX%60~69XX人XX%70~79XX人XX%80~89XX人XX%90~99XX人XX%程序代码#include<stdio.h>main(){inti,j;floata[8],t,sum=0,x=0,y=0,z=0,p=0,q=0;printf("请输入成绩并用空格键隔开:\n");for(i=0;i<8;i++){ scanf("%f",&a[i]);if(a[i]<0) { printf("输入数据小于0,错误,请重新输入\n"); scanf("%f",&a[i]); } elseif(a[i]>100) { printf("输入数据超过100,错误,请重新输入\n"); scanf("%f",&a[i]); } sum+=a[i]; if(a[i]<60)x+=1;elseif(a[i]<70)y+=1; elseif(a[i]<80)z+=1; elseif(a[i]<90)p+=1; elseif(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",sum/8,a[7],a[0]);printf("分数段人数比例\n");printf("<60%1.0f人%5.2f%\n",x,x/8*100); printf("60~69%1.0f人%5.2f%\n",y,y/8*100);printf("70~79%1.0f人%5.2f%\n",z,z/8*10);printf("80~89%1.0f人%5.2f%\n",p,p/8*100);printf("90~99%1.0f人%5.2f%\n",q,q/8*100);}题目8打印出1~100内的所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方程序代码#include<stdio.h>main(){ inti,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",i); } }题目10一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?列出每一次的弹起高度程序代码#include<stdio.h>main(){ inti; floatn,h=0; n=100; for(i=1;i<11;i++) { n=n/2; printf("第%d次弹跳起的高度是:%6f米\n",i,n); h=n*2+h; } printf("第十次落地时共经过%6f米\n",h+100);}实训心得经过一星期的C语言实训,我对C语言有了更深一步的了解认识,也对上学期学到的知识进行了巩固。在学习过程中老是出现编程序的错误,但是经过一次次的修改,最终还是得到了正确的C语言程序。通过自己与同学的合作编写程序,最终把学到的理论知识转化为基本技能。这

温馨提示

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

评论

0/150

提交评论