1、出2xM整型二维数组中最大元素的值,并将此值返回调用函数。
int fun (int a[][M])
{
int i,j,max=a[0][0];
  for(i=0;i<2;i++)
    for(j=0;j<M;j++)
        if(max<a[i][j])
          max=a[i][j];
  return max;}
2、根据以下公式求π值。
double  fun ( double  eps)
{ double s=0.0,s1=1.0;
  int n=0;
  while(s1>=eps)         
{ s=s+s1;
  s1=s1*n/(2*n+1);     
      n++;
    }
  return 2*s;
}
3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
void  fun (int *a, int *n)
{  int i,j=0;
  for(i=1;i<=1000;i++) 
    if((i%7==0||i%11==0)&&i%77!=0)
        a[j++]=i;
        *n=j;
}
4、删除字符串中所有*号。
void  fun( char *a )
{  int i,j=0;
  for(i=0;a[i]!='\0';i++)
    if(a[i]!='*')
        a[j++]=a[i];
  a[j]='\0';
}
5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。
void fun(char p1[], char p2[])
{
  int i,j;
  for(i=0;p1[i]!='\0';i++)  ; 
  for(j=0;p2[j]!='\0';j++)
          p1[i++]=p2[j];
  p1[i]='\0';}
6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。
void  fun(STREC *a)
c 字符串转数组{ int i;
  a->ave=0.0;
  for(i=0;i<N;i++)
    a->ave=a->ave+a->s[i]; 
  a->ave/=N;  }
7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求
出平均分,并由函数值返回
double  fun( STREC *h  )
{ double ave=0.0;
  STREC *p=h->next;
  while(p!=NULL)
    { ave=ave+p->s;
      p=p->next;
    }
  return ave/N;}
8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。
void fun( int m, int *k, int xx[] )
{    int i,j,n=0;
    for(i=4;i<m;i++)   
    {  for(j=2;j<i;j++)
            if(i%j==0) break;
            if(j<i) xx[n++]=i;
    }
    *k=n;     
}
9、求ss所指字符串中指定字符的个数,并返回此值。
int fun(char *ss, char c)
{ int i=0;
  for(;*ss!='\0';ss++)
    if(*ss==c)
        i++;
  return i;
}
10、计算n门课程的平均分,结果作为函数值返回。
float  fun ( float  *a ,  int  n )
{  int i;
  float av=0.0;
  for(i=0; i<n;i++) 
      av=av+a[i];
  return(av/n); 
}
11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的放在b所指的数组中。注意:分数最高的学生也许不止一个,函数返回分数最高的学生的人数。
int  fun( STREC  *a, STREC *b )
{  int i,j=0,max=a[0].s;
  for(i=0;i<N;i++)
    if(max<a[i].s) max=a[i].s;
  for(i=0;i<N;i++)
    if(max==a[i].s)
          b[j++]=a[i]; 
  return j;  }
12、除了字符串前导的*号之外,将串中其他*号所有删除。
void  fun( char *a )
{ int i=0;
  char *p=a;
  while(*p&&*p=='*')
  {  a[i]=*p;
      i++;
      p++;
  }
  while(*p)
  {  if(*p!='*')
      {a[i]=*p;i++;}
      p++;
  }
  a[i]='\0';
}
13、记录在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。
void fun(char *tt, int pp[])
{ int i;
  for(i=0;i<26;i++)
    pp[i]=0; 
  for(;*tt!='\0';tt++)
    if(*tt>='a'&&*tt<='z') 
        pp[*tt-'a']++; 
}
14、将字符串尾部的*号所有删除,前面和中间的*号不动。
void  fun( char *a )
{  while(*a!='\0')
        a++;
    a--;         
    while(*a=='*')
          a--;   
    *(a+1)='\0'; }
15、比较字符串的长度,函数返回较长的字符串,假如相同,则返回第一个字符串。
char  *fun ( char *s,  char *t)
{  int i,j;
  for(i=0;s[i]!= '\0';i++); 
  for(j=0;t[j]!= '\0';j++);
  if(i<=j) 
    return t;   
  else
    return s;}
16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的,指定的学号在主函数中输入。若没到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。
STREC  fun( STREC  *a, char *b )
{int i;
  STREC str={"\0",-1}; 
  for(i=0;i<N;i++)
    if(strcmp(a[i].num,b)==0) 
    str=a[i];
  return str; 
}
17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的所有删除字符串中剩余的字符所形成的新串放在t数组中。 void fun(char *s, char t[])
{
  int i,j=0;
  for(i=0;s[i]!='\0';i++)
    if(i%2==0  &&  s[i]%2==0)
        t[j++]=s[i];
t[j]='\0';     
}
18、运用下面的简朴迭代方法求方程cos(x)-x=0的一个实根s
double fun()       
{  double x0,x1;                   
x1=0.0;       
do
{
x0=x1;     
x1=cos(x0); 
}while(fabs(x0-x1)>=1e-6);     
return x1;       
}
19、将字符串中的前导*号所有移到字符串尾部。
void  fun( char *a )
{  int i=0,n=0;
char *p;
p=a;
while (*p=='*')  /*判断*p是否是*号,并记录*号的个数*/ 
{
n++;p++;
}
while(*p)      /*将前导*号后的字符传递给a*/     
{
a[i]=*p;i++;p++;
}
while(n!=0)
{
a[i]='*';i++;n--;
}
a[i]='\0';}
20、N名学生的数据已放入主函数中的结构体数组中,把分数最低的放入b所指的数组中。
int  fun( STREC  *a, STREC *b )
{int i,j=0,min=a[0].s;
  for(i=0;i<N;i++)
    if(min>a[i].s)
        min=a[i].s;              /*出最小值*/
  for(i=0;i<N;i++)
    if(min==a[i].s)
        b[j++]=a[i];  /*出成绩与min相等的学生的记录,存入结构体b中*/
  return j;
}
21、计算
double  fun(  int  m )
{  int i;
  double s=0.0;
  for(i=1;i<=m;i++)
    s=s+log(i); 
  return sqrt(s); 
}
22、只删除字符前导和尾部的*号,串中字母间的*号都不删除。
void  fun( char *a, int n,int h,int e )
{  int i,j=0;
  for(i=h;i<n-e;i++) 
    a[j++]=a[i];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。