《C语言实验报告格式.doc》由会员分享,可在线阅读,更多相关《C语言实验报告格式.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学号:236 姓名:李佳琪 班级:12物理班 实验题目一、 实验名称:函数二、 实验目的:三、 实验内容:10.4有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。 #define N 10 void shift(p,x) float *p;int x; float aN,*q,*o;int i; o=a;q=p; for(i=0;i=q;p-) *p=*(p-x); for(i=0;ix;i+) *(q+i)=*(o+i); return; main() float shuzhuN,*u,*v; int
2、 h,i;u=v=shuzhu; scanf(%f,&h); for(;uv+N;u+) scanf(%f,u); shift(v,h); for(u=v;uv+N;u+) printf(%.2f ,*u); printf(n); 10.5有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。 #define N 5 main() int i,j,k,aN+1,*p; for(i=0,p=a;p(a+N) p=a+1; if(*p!=0) i+; if(i-3)=0) *p=0;i=0;k-; p+; for(i=1;i=N;i+
3、) if(ai!=0) printf(The last number is %dn,ai); 10.7有一字符串,包含n个字符。写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。解:main ( )int m; char * str120, * str220; printf(“input string:”); gets(str1); printf(“Which character that begin to copy?”); scanf(“%d”,&m); if (strlen(str1)m) printf(“input error!”); else copystr(st
4、r1,str2,m);printf(“result:%s”,str2); copystr(char * p1,char * p2,int m) /* 字符串部分复制函数 */int n; n=0; while (nm-1) n+;p1+;while (* p1!=0) * p2= * p1;p1+;p2+; * p2=0;10.11在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后在主函数输出这10个已排好序的字符串。解:# include main ( )void sort(char s ); int i; char str106; printf(“Input 10 string
5、s:n”); for (i=0;i10;i+) scanf(“%s”,stri); sort(str); printf(“Now,the sequence is:n”); for (i=0;i10;i+) printf(“%sn”,stri);void sort(char s106)int i,j; char * p,temp10; p=temp; for (i=0;i9;i+) for (j=0;j0) strcpy(p,sj); strcpy(sj,s+j+1); strcpy(sj+1,p); 10.15有一个班4个学生,5门课。(1)求第一门课的平均分;(2)找出有两门以上课程不及格的
6、学生,输出他们的学号和全部课程成绩及平均成绩;(3)找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编3个函数实现上3个要求。解:main ( ) int i,j,* pnum,num4; float score45,aver4,* psco,* pave; char course510,* pcou; printf(“Input course:n”); pcou=course0; for (i=0;i5;i+)scanf(“%s”,coursei); printf(“Input NO. and scores:n”); printf(“NO.”); for (i=0;i5;i+)
7、printf(“,%s”,coursei); printf(“n”); psco=&score00; pnum=&num0; for (i=0;i4;i+)scanf (“%d”,pnum+i); for (j=0;j5;j+) scanf(“,%f”,psco+5*i+j); pave=&aver0; printf(“nn”); avsco(psco,pave); avcourl(pcou,psco); printf(“nn”); fali2(pcou,pnum,psco,pave); printf(“nn”); good(pcou,pnum,psco,pave); avsco(float
8、* psco,float * pave); int I,j; float sum,average; for (i=0;is2,则输出正值;如果s1s2,则输出负值。解:main ( )int m; char str120,str220,* p1,* p2; printf(“Input two strings:n”); scanf(“%s”,str1); scanf(“%s”,str2); p1=&str10; p2=&str20; m=strcmp(p1,p2); printf(“result:%d,n”,m);strcmp(char * p1,char * p2) int i; i=0; w
9、hile (* (p1+i)=* (p2+i)if (* (p1+i+)=0) return(0); return (* (p1+i)-* (p2+i); 10.18编写一个程序,打入月份号,输出该月的英文月名。例如,输入”3”,则输出”March”,要求用指针数组处理。解:main ( )char * month_name13=“illegal month”,”January”,February”,”March”,”April”,”May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”; int n; printf(“Input month:n”); scanf(“%d”,&n); if (n=1) printf(“It is %s.”,* (month_name+n); else printf(“It is wrong.”);
限制150内