1请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
int fun (int a[ ][M])
{
int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j
if(max
max=a[i][j];
return max;
}
2编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
double fun( double eps)
{
double s=1.0,s1=1.0;
int n=1;
while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/
{ s1=s1]s=s+s1; /*求和*/
n++;
}
return 2]
3编写函数fun,其功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
void fun(int *a,int *n)
{
int i,j=0;
for(i=1;i
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j; /*传回满足条件的数的个数*/
}
4规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。
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′; /*最后加上字符串结束符′\0′*/
}
5编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
例如,分别输入下面两个字符串:
FirstString--
SecondString
程序输出:
FirstString--SecondString
void fun(char p1[],char p2[])
{
int i,j;
for(i=0;p1[i]!=′\0′;i++); /*求出的i为p1字符串的总长度,包括结束标记符*/
for(j=0;p2[j]!=′\0′;j++)
p1[i++]=p2[j]; /*将p2字符串连在p1字符串后面*/
p1[i]=′\0′; /*在字符串最后加上结束标记符*/
}
6某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
void fun(STREC *a)
{
int i;
a->ave=0.0;
for(i=0;i
a->ave=a->ave+a->s[i];
/*求各门成绩的总和*/
a->ave=a->ave/N; /*求平均分*/
}
7 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。
double fun(STREC *h)
{
double av=0.0;
STREC *p=h->next; /*p直接指向"头结点"的下一个结点,即第一个成绩*/
while(p!=NULL)
{ av=av+p->s; /*求总分数*/
p=p->next;
}
return av/N; /*返回平均值*/
}
8编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。
void fun(int m, int *k, int xx[])
{
int i,j,n=0;
for(i=4;i
{ for(j=2;j