?a?:3times letter ?s?:3times。 void fun(char *s)
{ int k[26]={0},n,i,max=0; char ch; while(*s)
{ if( isalpha(*s) ) {
/**********found**********/ ch=tolower(*s); n=ch-'a';
/**********found**********/ k[n]+= 1 ; } s++;
/**********found**********/ if(max for(i=0; i<26;i++) if (k[i]==max) printf(\ \\'%c\\' : %d times\\n\ 47.2改错 函数fun功能是求S的值 例如,当为10时,函数值为:1.533852。 /************found************/ float fun( int k ) { int n; float s, w, p, q; n = 1; s = 1.0; while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q; n++; } /************found************/ return s;} 47.3程序 函数功能:计算并输出下列级数和 例如:当n=10时,函数值为:0.909091。 double fun( int n ) { double s = 0.0 ; int i ; for(i = 1 ; i <= n ; i++) s = s + 1.0 / (i * (i + 1)) ; return s ;} 第四十八套: 48.1填空 函数功能:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数的值返回。例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为22。 int fun(char *s) { int sum=0; while(*s) { /**********found**********/ if( isdigit(*s) ) sum+= *s- 48 ; /**********found**********/ s++; } /**********found**********/ return sum ;} 48.2改错 函数功能:计算小于形参最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。 int fun( int k ) { int m=0, mc=0, j ; while ((k >= 2) && (mc < 10)) { /************found************/ if ((k == 0) || (k == 0)) { m = m+ k; mc++; } k--; } return m; /************found************/} 48.3程序 功能:求小于形参n同时能被3与7整除的所有自然数之和的平方根,作为函数值返回。例如若n为1000时,程序输出应为:s=153.909064。 double fun( int n) { double sum=0.0; int i; for(i=21; i<=n; i++) if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum) ;} 第四十九套: 49.1填空 功能:将形参s所指字符串中的所有ASCII码值小于97的字符存入形参t所指字符组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。 例如,形参s所指的字符串为:Abc@1x56*,程序执行后的t所指的字符数组的字符串应为:A@156*。 int fun(char *s, char *t) { int n=0; while(*s) { if(*s < 97) { /**********found**********/ *(t+n)= *s ; n++; } /**********found**********/ s++ ; } *(t+n)=0; /**********found**********/ return n ;} 49.2改错 功能:由形参给定n个实数,输出平均值,并统计在平均值以上的(平均值)实数个数。 例如n=8时,输入:193.199,195.673,195.757,196.757,196.051,196.092,196.596,196.579,196.763 所得平均值为:195.838745,在平均值以上的实数个数应为:5。 int fun(float x[], int n) { /************found************/ int j, c=0; float xa=0.0; for (j=0; j /************found************/ if (x[j] >= xa) c++; return c;} 49.3程序 函数功能:根据以下公式求p的值,结果由函数数值带回。M与n为两个正整数且要求m>n, 例如:m=12,n=8时,运行结果为495.000000。 long jc(int m) { long s=1; int i ; for(i=1;i<=m;i++) s=s*i ; return s;} float fun(int m, int n) { float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p;} 第五十套: 50.1填空 功能:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,N=3,有下列矩阵: 计算结果为 。 #define N 4 /**********found**********/ void fun(int (*t)[N]) { int i, j; for(i=1; i { for(j=0; j {/**********found**********/ t[i][j] =t[i][j]+t[j][i]; /**********found**********/ t[j][i]=0; } }} 50.2改错功能:计算函数 的值,其中x和y的值不等,z和y的值不等 例如当x的值为9、y的值为11、z的值为15时。函数值为-3.50。 /************found************/ #define FU(m,n) ((m)/(n)) float fun(float a,float b,float c) { float value; value=FU(a+b,a-b)+FU(c+b,c-b); /************found************/ return (value);} 50.3 程序 功能:将字符串中的前导*号全部删除,中间和为的*号不删除。例如字符串中的内容:*******A*BC*DEF*G****,删除后字符串中的内容应当是A*BC*DEF*G****。 void fun( char *a ) { int j=0; char *p = a ; while(*p == '*') p++ ; while(*p) { a[j++] = *p ; p++; } a[j]=0 ;} 51.1:填空 Fun:计算出形参s所指字符串中包含的单词个数,作为函数值返回,为便于统计,规定各单词之间用空格隔开。如形参s所指的字符串为:This is a C language program,函数的返回值为6 。 int fun(char *s) { int n=0, flag=0; while(*s!='\\0') { if(*s!=' ' && flag==0) { n++ ; flag=1;} if (*s==' ') flag= 0 ; s++ ;} return n;} 51.2:改错 Fun:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。如输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64 ,则低于平均分的学生人数为:4(平均分为:75.5625)。 #define N 20 int fun ( float *s, int n, float *aver ) { float ave, t = 0.0 ; int count = 0, k, i ; for ( k = 0 ; k < n ; k++ ) /**************found**************/ t += s[k] ; ave = t / n ; for ( i = 0 ; i < n ; i++ ) if ( s[ i ] < ave ) count++ ; /**************found**************/ *aver = ave ; return count ;} 51.3:设计 Fun:功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。如输入如下整数:876 675 896 101 301 401 980 431 451 777 ,则输出结果为6,980 int fun(int *s, int t, int *k) {int i, pos = 0, max = *s ; for(i = 1 ; i < t ; i++) { if(max < *(s + i)) { max = *(s + i) ; pos = i ;}} *k = pos ;} 52.1:填空 Fun:将N×N矩阵中元素的值按列右移一个位置,右边被移出矩阵的元素绕回左边。如N=3,有下列矩阵: 计算结果为: 1 2 3 3 1 2 4 5 6 6 4 5 7 8 9 9 7 8 #define N 4 void fun(int (*t)[N]) { int i, j, x; /**********found**********/ for(i=0; i { /**********found**********/ x=t[i][N-1] ; for(j=N-1; j>=1; j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][0]=x;}} 52.2:改错 Fun:计算并输出下列级数的前N项之和 ,直到 大于q为止,q的值通过形参传入。 ,如q的值为50.0,则函数值为:49.394948。 double fun( double q ) { int n; double s,t; n = 2; s = 2.0; while (s<=q) {t=s; /************found************/ s=s+(n+1.)/n; n++;} printf(\ /************found************/ return t;} 52.3:设计 Fun:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),如当t=1000时,函数值为1597。 #include { int f0 = 0, f1 = 1, f ;