1、11.输入字符*A*BC*DEF*G* 输出*ABCDEFGvoid fun( char *a )/*以下代码仅供参考*/int i=0,k;while(ai=*) i+;k=i;while(ai!=0)/* 以下程序段实现非*字符前移 */if (ai!=*) ak+=ai;i+;ak=0;2. 函数功能为分别统计形参 t 所指二维数组中字母A 和 C 的个数void fun(char (*t)M,int*a,int*c)int i,j;*a=0;*c=0;for(i=0;i999) k=4;else if(n99) k=3;else if(n9) k=2;else k=1;return k
2、;4.在形参指针所指的 4 个整数中找出最大值和最小值,最大的放在 a 中,最小的放在 d 中void fun(int *a,int *b,int *c,int *d)int t;if(*a=m) p=s;elsep=t;return p;.7.字符串 ABCDEFG123456,最后内容为 246void fun(char *s, char t)int i, j=0;for(i=0; i=temp) if(k=0) /判断已有的素数个数是否已经满足 sum 个xxr+=temp; /将素数 temp 存入数组selectk-; /将题目中要求的素数个数减 1elsebreak;10.N 名学
3、生数据已在主函数中放入结构体数组 s 中,函数功能把最低的学生数据放在 b 所指的数组中int fun(STREC *a, STREC *b)int i, j=0, min=a0.s;for(i=0; iai.s)j=0; bj+=ai; min=ai.s;else if(min=ai.s)bj+=ai;return j;11.计算 n 门课的平均分 如90.5,72,80,61.5,55,平均分为 71.8float fun (float *a , int n)int i;float ave=0.0;for(i=0; i=areturn j;21. N名学生的成绩已在主函数中放入一个带头节点
4、的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。double fun(STREC *h)STREC *p=h-next; /* 由于头结点中没有存放数据 */double av=0.0; /* 对计算成绩平均值的变量进行初始化 */int n=0;while(p!=NULL) /* 判断链表是否结束 */av=av+p-s; /* 对成绩进行累加 */p=p-next; /* 到下一个结点位置 */n+; /* 人数加1 */av /=n; /* 计算成
5、绩平均值 */return av; /* 返回成绩平均值 */22. 计算并输出当 x=0.000001) /*绝对值是否满足条件*/xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/n+=1;sn+=xn; /*sn累加上xn*/return(sn);23. 学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回double fun(STREC *a, STREC *b, int
6、*n)double t=0;int i;*n=0;for(i=0; it)b(*n)+= ai;return t;24.请编写一个函数用来求出数组的最大元素在数组中的下标并存放在 k 所指向的存储单元中。例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为 6,980。void fun(int *s, int t, int *k)int i, pos=0, max=*s;for(i=1; iai.s) /* 如果最低分min仍大于当前分 */j=i; /* 记住位置 */min=ai.s; /* 把当前分赋值给min */*s=aj;2
7、8. 计算并输出 n(包括 n)以内所有能被 5 或 9 整除的自然数的倒数之和。例如,若主函数中从键盘给 n 输入 20 后,则输出为S 0.583333。double fun(int n)int i;double sum=0.0;for(i=1; in) /对统计的“*“号数目大于给定的“*“号总数nwhile(*preturn x1;36. 请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为“CEAedca“,排序后输出为“CedcEAa“。void fun(char *s,int num)char t;int i,j;
8、for(i=1;i=a j-)bi+=sj;strcpy(s, b);44. 请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“Efg“,则应输出“aBc4EFg“。void fun (char *ss)int i;for(i=1; i=ak=i;*max=ak;50. 请编写函数 fun,该函数的功能是:计算并输出S1(12 0.5)(12 0.53 0.5)(12 0.53 0.5n 0.5)的值。例如,若主函数从键盘给 n 输入 20 后,则输出为S534.188884。double fun(int
9、 n)int i;double fac=1.0;double sum=1.0;for(i=2;iscorei)belowj+=scorei;return j;56. 请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标void fun(int a, int n , int *max, int *d)int i;*max=a0;*d=0; /* 把数组的第1个元素值赋值给最大值变量*max */for(i=1; in。!()pn例如:m
10、12,n8 时,运行结果为495.000000。float fun(int m, int n)float result,temp=1.0;int i;for(i=1;in)t=a+k-n;while(*t)ai=*t;i+;t+;ai=0;61. 请编写函数 fun,其功能是:移动字符串中的内容,移动的规则是把第 1m 个字符,平移到字符串的最后,把第 m1 到最后的字符移到字符串的前部。例如,字符串中原有的内容为“ABCDEFGHIJK“,m 的值为 3,移动后,字符串中的内容应该是“DEFGHIJKABC“。void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一
11、个位置 */int i; char t;t=w0;for(i=0;i(i/2)aak+=i;return k;66. 请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234“,则函数把它转换为整数值1234。long fun (char *p)long s=0,t;int i=0,j,n=strlen(p),k,s1;/求得字符串长度nif(p0=-)i+;for(j=i;j=eps)/精度判断pi+=s; /pi存放累加和t=n/(2*n+1); /每一项s*=t; /累积n+;pi=pi*2; /求得值ret
12、urn pi; 68. 函数 fun 的功能是:将 s 所指字符串中下标为偶数同时 ASCII 值为奇数的字符删除,s 所指串中剩余的字符形成的新串放在 t 所指的数组中。例如,若 s 所指字符串中的内容为“ABCDEFG12345“,其中字符 C 的 ASCII 码值为奇数,在数组中的下标为偶数,因此必须删除;而字符 1 的 ASCII 码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后 t 所指的数组中的内容应是“BDF12345“。void fun(char *s, char t)int i, j=0;for(i=0; ittji)min=ttji;k=j;ppi=tt
13、ki;72. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFG*。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a, char *h,char *p)int j=0;char *q=a;while(*qa-ave /=N;74. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是
14、:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFG。void fun(char *a)int i=0;char *p=a;while(*pi+;p+;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0;75.请编写函数 fun,其功能是:计算并输出下列多项式的值,S(11/2)(1/31/4)(1/(2n1)1/2n)例如,若主函数从键盘给 n 输入 8 后,则输出为S0.662872。double fun(int n)int i;d
15、ouble sum=0.0;if (n1STREC *p;p=h-next;while(p)if(p-smax)max=p-s;p=p-next;return max;82. 编写函数 fun,其功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。例如,若程序执行时输入字符串为“turbo c and borland c“从键盘上输入字符 n,则输出为“turbo c ad borlad c“如果输入的字符在字符串中不存在,则字符串照原样输出。void fun(char s,char c)char *p=s;int i=0;while(*p)if(*p !=c)si+=*p;p+
16、;si=0;83.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为W W W WS S S SH H H H则字符串中的内容应是:WSHWSHWSHWSH。void fun(char sN, char *b)int i,j,n=0;/* 请填写相应语句完成其功能 */13for(i=0; i=l s=s+p*s1; s1=s1*10; t=t/10; return s;101. 请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回1。int fun( int *s, in
17、t x) int i=0;while(si!=x double s=0.0, t;for (i=0; i aj) t = ai; ai = aj; aj = t;for (i=1; i=0;i-) a=a*10+(si-0); return a;107.请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n2) 。例如,若输入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
18、n)int i, j; double s=0.0, t;for (i=0; i aj) t = ai; ai = aj; aj = t; for (i=1; in-1; i+)s += ai;return s/(n-2); 108. 请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回1。int fun( int *s, int x)int i=0;while(si!=x if(i=N)return(-1);else return(i);109. 请编一个函数 float fun(double h),该函数的功能是:使变量 h 中的值保留两位小数,
19、并对第三位进行四舍五入(规定 h 中的值为正数)。例如,若h 值为1234.567,则函数返回1234.570000;若h值为 1234.564,则函数返回1234.560000。float fun ( float h )int n = (int)(h*100+0.5); 16return n/100.0;110. 请编写函数 fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为 61。int fun ( int aMN )int sum=0,i,j; for(i=0;iM;i+) for(j=0;jN;j+) if(i=0)|(j=0)|(i=M-1)|(j=N-1) sum+=aij; return sum;