1、求出平均分,并由函数值返回。例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。double fun( STREC *h ) STREC *p=h-next; while(p!=NULL) ave=ave+p-s; p=p- return ave/N;4. 编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出:46891012141516。void fun( int m, int *k, int xx ) int i,j,n=0; for(i=4;m;i+) /*找出大于1小于整数m的非
2、素数*/ for(j=2;ji; if(i%j=0) break; if(jai.s) min=ai.s; /*找出最小值*/ if(min=ai.s) bj+=ai; /*找出成绩与min相等的学生的记录,存入结构体b中*/ return j;9. 编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a45,b12,调用该函数后c2415。void fun(int a, int b, long *c)*c=a%10+(b/10)*10+(a/10
3、)*100+(b%10)*1000;10. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。*A*BC*DEF*G*,删除后字符串中的内容应当是:A*BC*DEF*G*编写函数时,不得使用C语言提供的字符串函数。char *p=a; while(*p=) p+; /*指针p指向字符串第一个字母*/*p!p+,a+) *a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/ *a= /*在字符串最后加上字符串结束标识*/11. 函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外
4、,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246void fun(char *s, char t) int i,j=0;si! if(i%2=0 & si%2=0) /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/ tj+=si; tj= /*在字符串最后加上结束标
5、识*/12. 编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)x0的一个实根。迭代步骤如下:(1)取x1初值为0.0;(2)x0x1,将x1的值赋给x0;(3)x1cos(x0),求出一个新的x1;(4)若x0x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2);(5)所求x1就是方程cos(x)x0的一个实根,作为函数值返回。程序将输出结果Root0.739086。double fun()double x0,x1;x1=0.0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)=1e-6);return x1;13. 学生的记录由学号和
6、成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。void fun( STREC a ) int i,j; STREC t; for(i=1;i+) /*用冒泡法进行排序,进行N1次比较*/N-1;j+) /*在每一次比较中要进行N1次两两比较*/ if(aj.saj+1.s) t=aj;aj=aj+1;aj+1=t; /*按分数的高低排列学生的记录,高分在前*/14. 学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中
7、,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回double fun( STREC *a, STREC *b, int *n ) double av=0.0; *n=0; av=av+ai.s; av=av/N; /*求平均值*/ i+) if(av2)。 例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。 double fun(double a , int n) double sum=0,max,min;int i; max=min=a0;n; sum=sum+ai; if(maxai)max=a
8、i;ai)min=ai; sum=sum-max-min; return(sum/(n-2);19. 规定输入的字符串中只包含字母和*号。将字符串中的前导*号全部移到字符串的尾部。,移动后,字符串中的内容应当是:A*BC*DEF*G*int i=0,n=0;char *p;p=a;while (*p=) /*判断*p是否是*号,并统计*号的个数*/ n+;p+;while(*p) /*将前导*号后的字符传递给a*/ ai=*p;while(n!=0)ai=n-;20. 学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:21. 编写函数fun,其功
9、能是计算:s作为函数值返回。 在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。 例如,若m的值为20,则fun函数值为6.506583。double fun( int m ) double s=0.0;=m; s=s+log(i); /*计算sln(1)ln(2)ln(3)ln(m)*/ return sqrt(s); /*对s求平方根并返回*/22. 规定输入的字符串中只包含字母和*号。只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号
10、的个数。A*BC*DEF*Gvoid fun( char *a, int n,int h,int e )int i,j=0; for(i=h;n-e;i+) /*第一个字母和最后一个字母之间的字符全不删除*/ aj+=ai; aj=23. 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为ABCDEFGHIJK时,在t所指数组中的内容应是:BDFHJint i,j=0,k=strlen(s); /*k为字符串的长度*/ k;i=i+2) /*将s所指字符串中下标为奇数的字符存入t所指字符串中*/24. 编写函数fun,其
11、功能是:25. 假定输入的字符串中只包含字母和*号。除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。例如,字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容应当是ABCDEFG*。void fun( char *a, char *p )char *t=a;t while(h!=NULL) /*通过循环找到最高分数*/ if(maxs) max=h- h=h- return max;31. 请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据
12、个数,max存放最大值,index存放最大值所在元素的下标。void fun(int a,int n, int *max, int *d) *max=a0; *d=0;i+) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*maxai) *max=ai;*d=i;32. 编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串的内容为:ABCDEFG12345,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要
13、删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为:135 int i,j=0,n; n=strlen(s); if(i%2!=0&si%2! tj=si; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j+; /*最后加上结束标识符*/33. 编写函数fun,其功能是:实现BAA,即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为: void fun ( int a33, int b33)3; bij=aij+aji;/*把矩阵a加上a的转置,存放在矩阵b中*/34. 请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55void fun(int (*s)10,int *b,int *n,int mm,int nn)nn;j+) /*将二维数组中的数据按列的顺序依次放入一维数组中*/mm; b*n=
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2