}
170. 已知学生的记录由学号和学习成绩构成,N名
学生的数据已存入a结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 已给出函数的首部,请完成该函数。
fun( STU a[], STU *s ) { int i; *s=a[0];
for(i=0;i
171. 请编一个函数 fun ,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为 y 的元素。数组元素中的值和 y 的值由主函数通过键盘读入。 void fun ( int bb[ ], int *n, int y ) {int i,j=0;
for(i=0;i<*n;i++) if(bb[i]!=y)
bb[j++]=bb[i]; *n=j; }
172. 请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入 (规定h中的值为正数)。
例如:h 值为 8.32433, 则函数返回 8.32; 值为 8.32533, 则函数返回 8.33。 float fun ( float h ) { long num; h=h+0.005; h=h*100; num=h;
h=num/100.0; return h; }
173. 请编一个函数fun(int *a, int n, int *odd, int
*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和8。
fun ( int *a, int n, int *odd, int *even ) {int i;
*odd=*even=0; for(i=0;i *even+=a[i]; } 174. 请编写一个函数,用来删除字符串中的所有空格。 例如,输入\, 则输出为 \。 int fun(char *str) { int i,j=0; for(i=0;str[i];i++) if(str[i]!=' ') str[j++]=str[i]; str[j]='\\0'; } 175. 请编写函数fun,函数的功能是:判断字符串是否为回文? 若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 int fun(char *str) {int i,n=strlen(str); for(i=0;i return(0); } 176. 编写函数fun,函数的功能是:将M行N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 AAAABBBBBBBCC。 void fun(char a[M][N], char *b) {int i,j,k=0; for(i=0;i for(j=0;a[i][j]!='\\0';j++) b[k++]=a[i][j]; b[k]='\\0'; } 55 55 55 55。 void fun(int (*s)[10], int *b, int *n, int mm, int nn) {int i,j,k=0; for(i=0;i 177. 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按列的顺序依次放到一维数组中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 void fun(int (*s)[10], int *b, int *n, int mm, int nn) { int i,j,k=0; for(j=0;j 178. 请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,字符串数组中的M个字符串为: AAAA BBBBBBB CC 则合并后的字符串的内容应是: 179. 请编写函数fun,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。 void fun(int *w, int p, int n) {int i,j,t; for(i=0;i<=p;i++) { t=w[0]; for(j=0;j 180. 请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后字符串中的内容应该是:DEFGHIJKABC。 void fun(char *w, int m) {int i,j,n=strlen(w); char t; for(i=0;i 181. 请编写函数fun,函数的功能是:将M 行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSH。 void fun(char (*s)[N], char *b) {int i,j,k=0; for(i=0;i 182. 请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 int fun(int a[], int n) { int i,j,t,k=0; for(i=0;i for(j=i+1;j return(n); } 183. 请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余 依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。 void fun( int *a, int *b) { int i; for(i=0;i<=10;i++) b[i]=0; for(i=0;i b[a[i]/10]++; } 184. 请编写函数fun,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 int fun( char *s) {int i=0,flag=1,n=0; while(s[i]){ if((flag==1) && (s[i]!=32)) {n++;flag=0;} if(s[i]==32) flag=1; i++; } return n; } 185. 请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。 double fun(double x[9]) { int i; double sum,ave,s=0; for(i=0;i<8;i++) { sum=x[i]+x[i+1]; ave=sum/2; s=s+sqrt(ave); } return(s); } 186. 请编写函数fun,其功能是:计算并输出下列多项式的值: 请编写函数fun,其功能是:计算并输出下列多项式的值: 1 1 1 S=(1 - ─) +…+ (── - ──) 2 2n-1 2n 例如,在主函数中从键盘给n输入8后, s=s+1.0/i; return(s); } 189. 请编写函数fun,其功能是:计算并输出下列多项式的值: S = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n! 例如,在主函数中从键盘给n输入15,则输出为:s=2.718282。 输出为:s=0.662872。 double fun(int n) { int i,t=1; double s=0; for(i=1;i<=2*n;i++) { s=s+1.0/i*t; t=-t; } return(s); } 187. 请编写函数fun,其功能是:计算并输出下列多项式的值: 1 1 S = 1 + ── + … + ───── 1+2 1+2+3+…50 例如,在主函数中从键盘给n输入50后,输出为:s=1.960784。 double fun(int n) { int i; double s=0,t=0; for(i=1;i<=n;i++) {s=s+i; t=t+1.0/s; } return(t); } 188. 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。 double fun(int n) { int i; double s=0; for(i=1;i<=n;i++) if(i%5==0||i%9==0) double fun(int n) { int i; double f=1,s=1; for(i=1;i<=n;i++) {f=f*i; s=s+1.0/f; } return(s); } 190. 请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值, 直到|S(n)-S(n-1)|<0.000001为止。 例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。 double fun(double x) {int i=1; double s=1,f=1,t; do{t=s; f=f*(0.5-i+1)*x/i; s=s+f; i++; }while(fabs(s-t)>=0.000001); return(s); } 191. 191 请编写函数fun,其功能是:计算并输出给定10个数的方差: ┌ 1 10 ┐0.5 S=│ ─ ∑ (Xk-X')^2 │ └ 10 k=1 ┘ 1 10 其中X'= ─ ∑ Xk 10 k=1 例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。 double fun(double x[10]) { int i; double s=0,ave,sum=0; for(i=0;i<10;i++) s=s+x[i]; ave=s/10; for(i=0;i<10;i++) sum=sum+(x[i]-ave)*(x[i]-ave); ave=sum/10; s=sqrt(ave); return(s); } 192. 请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。 double fun(int n) { int i,j; double s=0; for(i=3;i<=n;i++) {for(j=2;j=i) s=s+sqrt(i); } return(s); } 193. 请编写函数fun,其功能是:计算并输出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+(1+2^0.5+3^0.5+……+n^0.5) 例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。 double fun(int n) {int i; double s=0,t=0; for(i=1;i<=n;i++) { s=s+sqrt(i); t=t+s; } return(t); }
相关推荐: