《C语言程序设计》实验报告七
《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中的元素排序?自己定义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个字符串从大到小排序后输出?
三?源程序清单
7.1#include "stdio.h"
int search(int list[20],int n,int x,int *a)
{
int i,j=0,k,idex=0;
for(i=0;i
if(list[i]==x)
{a[j++]=i;
idex=1;}
k=j;
if(idex==0)
return(-1);
else
return(k);
}
main()
{
int list[20],a[80],n,x,i,k;
scanf("%d",&n);
printf("输入%d个整数\n",n);
for(i=0;i
scanf("%d",&list[i]);
printf("输入任意元素x\n");
scanf("%d",&x);
k=search( list, n, x,a);
if(k==-1)
printf("-1\n");
else
for(i=0;i
printf("%3d",a[i]);
}
7.2#include "stdio.h"
void sort(int a[],int n)
{
int *p,j,i,t,min,k;
p=a;
for(i=0;i
{
min=i;
for(j=i+1;j
{
if(a[min]>a[j])
min=j;
}
t=a[i];
a[i]=a[min];
a[min]=t;
}
for(k=0;k
printf("%3d",a[k]);
}
main()
{
int a[20],i,n;
printf("输入n<20\n") ;
scanf("%d",&n);
printf("输入%d个整数\n",n);
for(i=0;i
scanf("%d",&a[i]);
sort(a,n);
}
7.3#include "stdio.h"
#include "string.h"
void fun(char (*c)[20],int n)
{
int i,max=0;
for(i=0;i<4;i++)
if(strlen(c[max])
max=i+1;
printf("%s",c[max]);
}
main()
{
char c[5][20];
int i;
for(i=0;i<5;i++)
gets(c[i]);
fun(c,5);
}
7.4 #include "stdio.h"
#include "string.h"
void delchar(char *s, char c)
{
int i,n;
n=strlen(s);
for(i=0;i
{
if(s[i]==c)
contin