{a=*q; i++; q++;} a=‘\\0’;}
84: 第84题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 答案:
void fun(int a,int b,long *c)
{c=(b/10)*1000+(a)*100+(b)*10+a/10;}
85: 第85题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 答案:
double fun(strec *h) {double aver=0.0; while(h!=null) {aver+=h->s; hy=h->next;} aver/=n; return aver;}
86: 第86题 请编写函数fun,计算并输出给定10个数的方差。 答案:
double fun(double x[10]) {int i,j;
double s=0.0,s1=0.0; for(i=0;i<10;i++) s1+=x; s1/=10;
for(j=0;j<10;j++) s+=(x[j]-s1)*(x[j]-s1); s/=10; s=pow(s,0.5); return s;}
36
87: 第87题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。 答案:
void fun(int a,int b,long *c)
{*c=(a/10)*1000+(a)*10+(b)*100+b/10;}
88: 第88题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数亚时,不得使用c语言提供的字符串函数。 答案:
void fun(char *a) {int i=0; char *p=a;
while(*p&&*p==‘*’) {a=*p; i++; p++;} while(*p) {if(*p!=‘*’) {a=*p; i++;} p++;} a=‘\\0’;}
89: 第89题 学生的记录是由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 答案:
double fun(strec *a,strec *b,int *n) {double aver=0.0; int i,j=0; for(i=0;i<n;i++) aver+=a.s; aver/=n;
for(i=0;i<n;i++) if(a.s)>=aver}
37
{*(b+j)=a; j++;} *n=j;
return aver;}
90: 第90题 请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n). 答案:
sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n). double fun(int n) {int i; double sn=0.0; for(i=1;i<=n;i++)
sn+=(1.0/(2*i-1)-1.0/(2*i)); return sn;}
91: 第91题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。 答案:
void fun(int a, int b, long *c) {
*c=(a)*1000+(b)*100+(a/10)*10+b/10; }
92: 第92题 请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。 答案:
double fun(int m) { int I;
double s=0.0, log(double x); for(i=1;i<=m;i++) s=s+log(i); s=sqrt(s);
38
return s; }
93: 第93题 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 S=1+x+x(2)/2!+x(3)/3!+…x(n)/n! 答案:
double fun(double x, int n) {
double s=1.0, p=1.0; int I,j,t;
for(i=1;i<=n;i++) { t=1;
for(j=1;j<=i;j++) t=t*j; p=p*x; s=s+p/t; }
return s; }
94: 第94题 规定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。 答案:
void fun(char *a) { int i=0; char *p=a;
while(*p&&*p==‘*’) p++; while(*p) { a[i]=*p; i++; p++; }
a[i]=‘\\0’; }
39
95: 第95题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。 答案:
void fun(char *a, int n) {
int i=0,k=0; char *t=a; while(*t==‘*’) { k++; t++; } t=a; if(k>n) t=a+k-n; while( *t) { a[i]=*t; i++; t++; }
a[i]=‘\\0’; }
96: 第96题 请编写函数fun,其功能使:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 答案:
double fun(double x[9]) {
double sum=0.0; int I,j=1; for(i=0;i<9;i++) if(j<=8) {
sum+=sqrt((x[i]+x[i+1])/2.0); j++; }
40