《《C语言程序设计》实验报告(七.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告(七.doc(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实验报告开课实验室:实训楼B-203 2012 年4月23日年级专业班2011级计算机科学与技术姓名范琳颖成绩课程名称C语言实验项目名 称指针指导教师李峰一、 实验目的1、熟练掌握指针的概念2、熟练掌握变量的指针3、熟练掌握数组的指针4、熟练掌握字符串的指针5、熟练掌握函数的指针6、熟练掌握指针数组7、熟练掌握二级指针二、实验内容7.1:查找整数,定义一个函数 search(int list,int n,int x),在数组list中查找元素 x,若找到则返回相应下标,否则返回-1。 7.2:排序,定义函数void sort(int a,int n),用选择法对数组a中的元素排序
2、。自己定义main函数,并在其中调用sort函数。7.3:找最长的字符串输入5个字符串,输出其中最长的字符串。7.4:删除字符,编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。自己定义main函数,并在其中调用delchar(s,c)函数。7.5:字符串复制分别用字符数组和字符指针定义函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。7.6:字符串连接,分别用字符数组和字符指针实现函数strcat(s,t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。7.7:字符串排序, 将5个字符串从大到小排序后输出。三、源
3、程序清单7.1#include stdio.hint search(int list20,int n,int x,int *a)int i,j=0,k,idex=0;for(i=0;in;i+) if(listi=x) aj+=i; idex=1;k=j; if(idex=0)return(-1);elsereturn(k);main() int list20,a80,n,x,i,k; scanf(%d,&n); printf(输入%d个整数n,n); for(i=0;in;i+) scanf(%d,&listi); printf(输入任意元素xn); scanf(%d,&x); k=sear
4、ch( list, n, x,a); if(k=-1) printf(-1n); else for(i=0;ik;i+) printf(%3d,ai);7.2#include stdio.hvoid sort(int a,int n)int *p,j,i,t,min,k;p=a;for(i=0;in-1;i+)min=i;for(j=i+1;jaj)min=j;t=ai;ai=amin;amin=t;for(k=0;kn;k+)printf(%3d,ak);main() int a20,i,n; printf(输入n20n) ; scanf(%d,&n); printf(输入%d个整数n,n)
5、; for(i=0;in;i+) scanf(%d,&ai); sort(a,n);7.3#include stdio.h#include string.hvoid fun(char (*c)20,int n)int i,max=0; for(i=0;i4;i+) if(strlen(cmax)strlen(ci+1) max=i+1; printf(%s,cmax); main() char c520; int i; for(i=0;i5;i+) gets(ci); fun(c,5); 7.4 #include stdio.h#include string.hvoid delchar(cha
6、r *s, char c)int i,n;n=strlen(s);for(i=0;in;i+)if(si=c)continue;else printf(%c,si);void main() char c1100,c; gets(c1); scanf(%c,&c); delchar(c1,c);7.5#include stdio.h#include string.hvoid strcmpy(char *s,char *t,int m)char *c;int i=m-1; c=t+i; strcpy(s,c); printf(%s,s);void main() char c1100,c2100;
7、int m; gets(c2); scanf(%d,&m); strcmpy(c1,c2,m); 7.6#include stdio.h#include string.hchar stract(char *s,char *t)char *pEnd;int n1,n2;n1=strlen(s);n2=strlen(t);pEnd=s+n1;for(;*t!=0;pEnd+,t+) *pEnd=*t; *pEnd=0; s=pEnd-n1-n2-1; return(s);void main() char c1100,c2100; gets(c1); gets(c2); stract(c1,c2);
8、 printf(%s,c1);7.7#include stdio.h#include void main() char c520,cs100; char *p=cs; int i,j,max; for(i=0;i5;i+) scanf(%s,ci); for(i=0;i4;i+) max=i; for(j=i+1;j0) max=j; if(max!=i) strcpy(p,ci); strcpy(ci,cmax); strcpy(cmax,p); for(i=0;i5;i+) printf(%sn,ci);四、测试数据及测试结果(手写)1.输入4 1 2 3 4 3输出 22 输入 4 3 5 2 7 2 3 5 73 输入 a ab abc abcd abcde 输出 abcde4 输入 hearch 输出 hearh5 输入 abcde 3 输出 cde6 输入 abcde abc 输出 abcdeabc7 输入 is you me he she 输出you sheme is he五、实验结果分析(手写)1在调用数组时必须一起调用上数组长度;2在编写时分清地址和元素;3再输入多个字符串时最好用二维数组。教师评价