- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言实验报告花样
学号:22201231505236 姓名:李佳琪 班级:12物理班
实验题目
实验名称:函数
实验目的:
实验内容:
10.4有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
#define N 10
void shift(p,x)
float *p;int x;
{float a[N],*q,*o;int i;
o=a;q=p;
for(i=0;ix;i++)
*(o+i)=*(q+N-x+i);
for(p=p+N-1;p=q;p--)
*p=*(p-x);
for(i=0;ix;i++)
*(q+i)=*(o+i);
return;}
main()
{float shuzhu[N],*u,*v;
int 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,a[N+1],*p;
for(i=0,p=a;p=a+N;i++,p++)
*p=i;
p=a+1;k=N;
for(i=0,j=1;k!=1;j++)
{if(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++)
if(a[i]!=0)
printf(The last number is %d\n,a[i]);}
10.7有一字符串,包含n个字符。写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
解:
main ( )
{int m;
char * str1[20], * str2[20];
printf(“input string:”);
gets(str1);
printf(“Which character that begin to copy?”);
scanf(“%d”,m);
if (strlen(str1)m)
printf(“input error!”);
else
{copystr(str1,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 string.h
main ( )
{void sort(char s[ ][ ]);
int i;
char str[10][6];
printf(“Input 10 strings:\n”);
for (i=0;i10;i++)
scanf(“%s”,str[i]);
sort(str);
printf(“Now,the sequence is:\n”);
for (i=0;i10;i++)
printf(“%s\n”,str[i]);
}
void sort(char s[10][6])
{int i,j;
char * p,temp[10];
p=temp;
for (i=0;i9;i++)
for (j=0;j9-i;j++)
if(strcmp(s[j],s[j+1])0)
{strcpy(p,s[j]);
strcpy(s[j],s[+j+1]);
strcpy(s[j+1],p);
}
}
10.15有一个班4个学生,5门课。(1)求第一门课的平均分;(2)找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;(3)找出平均成绩在90分以上或全部课
文档评论(0)