编程题参考答案 注意:本答案中部分代码由原题本身提供,读者只需填写没有提供的部分就行了 1、 void fun( char *w,intm)/*可调用funl函数左移字符* fint i for(1=0;<m;i++) fun(w) 2, int fun( STREC *a, STREC *b, int 1, int h) int i,j=0 for(i=0; K<N; 1++) ifa[1].>=l&& ai.s<=h) bli=ali return 3、fun(STUa,STU*s) Int I' s=a[0]; for(i=l; <N; i++) if(a[].S<s->s) 4、 void fun(char*ss int F=l while(ss[i-1)&& ss(D) if(s]>=a&&s]<=z)s]+=A-a 5、 float fun( float h) long i=h*1000
编程题参考答案 注意:本答案中部分代码由原题本身提供,读者只需填写没有提供的部分就行了。 1、void fun(char *w, int m) /*可调用 fun1 函数左移字符 */ {int i; for(i=0;i<m;i++) fun1(w); } 2、int fun( STREC *a,STREC *b,int l, int h ) { int i,j=0; for(i=0;i<N;i++) { if(a[i].s>=l && a[i].s<=h) { b[j]=a[i]; j++; } } return j; } 3、fun( STU a[], STU *s ) { int i; *s=a[0]; for(i=1;i<N;i++) { if(a[i].s<s->s) { *s=a[i]; } } } 4、void fun( char *ss ) { int i=1; while(ss[i-1] && ss[i]) { if(ss[i]>='a' && ss[i]<='z') ss[i]+='A'-'a'; i+=2; } } 5、float fun ( float h ) { long i=h*1000;
if(%10<5) return(i/10)/100.0 else return(1/10+1)/100.0 ble ila=lb=lc=ls=0 c=a/b return s*2 7, int fun(int score[, int m, int below) ntL,j=0, S=0 for(i=0; i<m; i++)s+=score[i for(i=0: i<m: 1++) if(scorei<s) elowliI=score[i] return J 8、 void fun(char*a) /*以下代码仅供参考* int i=0 k. while(a[j==*)计++; while(a[]!=^0)/*以下程序段实现非*字符前移*/ if(a[ kJ!=*) a[i]=a[k]:
if(i%10<5) return (i/10)/100.0; else return (i/10+1)/100.0; } 6、double fun ( double eps) { double i=1,a=1,b=1,c=1,s=0; while(c>=eps) { s+=c; a*=i; b*=2*i+1; c=a/b; i++; } return s*2; } 7、int fun(int score[], int m, int below[]) { int i,j=0,s=0; for(i=0;i<m;i++) s+=score[i]; s/=m; for(i=0;i<m;i++) { if(score[i]<s) { below[j]=score[i]; j++; } } return j; } 8、void fun( char *a ) { /* 以下代码仅供参考 */ int i=0,k; while(a[i]=='*') i++; k=i+1; while(a[i]!='\0') /* 以下程序段实现非*字符前移 */ { if(a[k]!='*') { a[i]=a[k]; i++; }
k++ 9、 void fun(char*a) /*以下代码仅供参考* char p, "q: while(*p=*)/*统计串头*个数n* {n++;p++;} /*向前复制字符串,请填写相应的语句完成其功能* while(p)*q++=*p++ for(n>0,n-)/*在串尾补n个** 10、# include<stdi void fun( char*a, int n /*以下代码仅供参考 while(ak]==*)k++;/k为统计*字符个数* if(k>n /*以下完成将下标为k至串尾的字符前移k-n个位置* while(alDa[i++]=al++ a[=0 11, void fun( int x, int ppl, int*n) for(i=1;i<=x;i+=2) p[*n]=1 (*n)
k++; } a[i+1]='\0'; } 9、void fun( char *a ) { /* 以下代码仅供参考 */ char *p,*q; int n=0; p=a; while(*p=='*') /* 统计串头'*'个数 n */ {n++; p++;} q=a; /* 向前复制字符串,请填写相应的语句完成其功能 */ while(*p) *q++=*p++; for(;n>0;n--) /* 在串尾补 n 个'*' */ *q++='*'; *q='\0'; } 10、#include <stdio.h> void fun( char *a, int n ) { /* 以下代码仅供参考 */ int i=0,j,k=0; while(a[k]=='*') k++; /* k 为统计*字符个数 */ if(k>n) { i=n;j=k; /* 以下完成将下标为 k 至串尾的字符前移 k-n 个位置 */ while(a[j]) a[i++]=a[j++]; a[i]=0; } } 11、void fun ( int x, int pp[], int *n ) { int i; *n=0; for(i=1;i<=x;i+=2) { if(x%i==0) { pp[*n]=i; (*n)++; }
2、 void fun(char while(sin) { if(i%2!=0[]%2=0) tG=s[i tl=O 13、 void fun(inta,intb,long’c) *c=a/10*100+a%10+b/10*10+b%10*1000 14、 double fun(intn) double s=o if(%3=0&&i%7==0)s+= eturn sqrt(s): 15, void fun(int (*s)[10], int *b, int *n, int mm, int nn) 0:1<mm:++ for(=0 j<nn: j++) b*n=s[00: 16、 int fun( STEC a[)
} } 12、void fun(char *s, char t[]) { int i=0,j=0; while(s[i]) { if(i%2!=0 || s[i]%2==0) { t[j]=s[i]; j++; } i++; } t[j]=0; } 13、void fun(int a, int b, long *c) { *c=a/10*100+a%10+b/10*10+b%10*1000; } 14、double fun( int n) { int i; double s=0; for(i=1;i<n;i++) { if(i%3==0 && i%7==0) s+=i; } return sqrt(s); } 15、void fun(int (*s)[10], int *b, int *n, int mm, int nn) { int i,j; *n=0; for(i=0;i<mm;i++) for(j=0;j<nn;j++) { b[*n]=s[i][j]; (*n)++; } } 16、int fun( STREC a[] ) { int i,j;
StEc b for(i=0;i<N-1;i++) for(=i+1:j<N: j++) if(a[is<alil.s) i b=a]; a[i]=a[]; a[l=b: j 17、 double fun( int WIIN) double s=o Int 1. for(i=0; K<N; i++) S+=w[OJG+wN-1iFwI0+w[N-1] S-=w[OJ[O+w[OJ[N-1+wN-1J0+WN-1[N-1]; eturn S/N*4-4); 18, int fun(int *s, int t, int*k) for(i=0; i<t; i++) if(s[]>S[*k])*k= 19、 void funt(char*a) while(a[可) if(a[i]!=*)j=0 else j++ ai-j]=0, 20, int fun(int lim, int aa MAX) /*以下代码仅供参考* int i, j, k=0 /*其中变量k用于统计素数个数* for(i=2; i<=lim; i++) /*以下完成判断a数组中小于或等于lim的素数并统计个数* for(=2 j<1:j++) if(i%j=0)break; if(==i)
STREC b; for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(a[i].s<a[j].s) { b=a[i];a[i]=a[j];a[j]=b;} } 17、double fun ( int w[][N] ) { double s=0; int i; for(i=0;i<N;i++) s+=w[0][i]+w[N-1][i]+w[i][0]+w[i][N-1]; s-=w[0][0]+w[0][N-1]+w[N-1][0]+w[N-1][N-1]; return s/(N*4-4); } 18、int fun(int *s, int t, int *k) { int i; *k=0; for(i=0;i<t;i++) if(s[i]>s[*k]) *k=i; } 19、void fun( char *a ) { int i=0,j=0; while(a[i]) { if(a[i]!='*') j=0; else j++; i++; } a[i-j]=0; } 20、int fun(int lim, int aa[MAX]) { /* 以下代码仅供参考 */ int i,j,k=0; /* 其中变量 k 用于统计素数个数 */ for(i=2;i<=lim;i++) { /* 以下完成判断 aa 数组中小于或等于 lim 的素数并统计个数 */ for(j=2;j<i;j++) if(i%j==0) break; if(j==i)