编程题参考答案 注意:本答案中部分代码由原题本身提供,读者只需填写没有提供的部分就行了 1、 void fun( char *w,intm)/*可调用funl函数左移字符* fint i for(1=0;=l&& ai.ss) 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=l && a[i].ss) { *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=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、# includen /*以下完成将下标为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 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;iS[*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;is[*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)
eturn k. 21, void fun(int m, int k, int xx) /*以下代码仅供参考* Int l,=l, t=m+1 /*以下完成判断素数,并存放到数组xx中* for(=2;inext while(p) if(as)a=p->S p=p->next 23, double fun( STReC *a, STREC*, int*n) double s=0: for(i=0, K <N; 1++) S/=N- n=0 for(i=0; K<N; i++)
{ aa[k]=i; k++; } } return k; } 21、void fun(int m, int k, int xx[]) { /* 以下代码仅供参考 */ int i, j=1, t=m+1; while(jnext; while(p) { if(as) a=p->s; p=p->next; } return a; } 23、double fun( STREC *a, STREC *b, int *n ) { int i; double s=0; for(i=0;i<N;i++) s+=a[i].s; s/=N; *n=0; for(i=0;i<N;i++)
if(a[叮,s>s) b*n=ai eturn s. 24、 int fun(inta[M[N) int ls=o for(i=0; K<N; i++) S+=a[0J[+a[M-1i for(Fl; K <M-1; 1++) =a[[0J+aJ(N-1 return s 25, void fun(char *s, char tD) int i=0. j=0; while(si) if(i%2==1&&s[]%2=1) tl=s[i J++ tl=O 26, fun(char( a)81, int num, char **max /*以下代码仅供参考* int L k=0len, maxlen;,/k为a数组中最长串所在元素的下标,初始为0, maxlen为其串 长考 maxlen=strlen(a(k) for(i1; i<num; i++) /*以下完成查找最长串* len=strlen(aiD) if( maxlen<len) maxlen=len
if(a[i].s>s) { b[*n]=a[i]; (*n)++; } return s; } 24、int fun ( int a[M][N] ) { int i,s=0; for(i=0;i<N;i++) s+=a[0][i]+a[M-1][i]; for(i=1;i<M-1;i++) s+=a[i][0]+a[i][N-1]; return s; } 25、void fun(char *s, char t[]) { int i=0,j=0; while(s[i]) { if(i%2==1 && s[i]%2==1) { t[j]=s[i]; j++; } } t[j]=0; } 26、fun(char(*a)[81],int num,char **max) { /* 以下代码仅供参考 */ int i,k=0,len, maxlen; /* k 为 a 数组中最长串所在元素的下标,初始为 0,maxlen 为其串 长 */ maxlen=strlen(a[k]); for(i=1;i<num;i++) { /* 以下完成查找最长串 */ len=strlen(a[i]); if(maxlen<len) { k=i; maxlen=len; }
max-a 27、 int fun(char*str) while(str[]j++ for(i=0;i=j/2)return else return 0 28, int fun(int a[, int n for(i=l; iz)
} *max=a[k]; } 27、int fun(char *str) { int i,j=0; while(str[j]) j++; for(i=0;i=j/2) return 1; else return 0; } 28、int fun(int a[], int n) { int i,j=0; for(i=1;ia[*d]) *d=i; *max=a[*d]; } 30、int fun( char *s) { int i=0,j=0,f=1; while(s[i]) { if(s[i]'z') {
if()j++; f=0 f=1; 31 for(=L j<N j++) a[][]1*=m 32, void fun(char S[INI, char*b) for(i=0,i<N计+)/*请填写相应语句完成其功能* for(=0; j<M: j++) bn=soli bn]=10 33 int fun( STREC *a, STREC *b) int 1, j=0, s=alol if(a]ss)=a(i]s; if(ai.S-==S) bll=a]: eturn
if(f) j++; f=0; } else f=1; i++; } return j+1; } 31、int fun ( int a[][N], int m ) { int i,j; for(i=0;i<N;i++) for(j=i;j<N;j++) a[i][j]*=m; } 32、void fun(char s[][N], char *b) { int i,j,n=0; for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */ { for(j=0;j<M;j++) { b[n]=s[j][i]; n++; } } b[n]='\0'; } 33、int fun( STREC *a, STREC *b ) { int i,j=0,s=a[0].s; for(i=1;i<N;i++) if(a[i].s<s) s=a[i].s; for(i=0;i<N;i++) if(a[i].s==s) { b[j]=a[i]; j++; } return j;
34,double fun(doublex,int n) Int I for(i=1;s)s-a[oJd] if(a[lli>s)s=a[1[]; eturn s 37、 long fun(char*p) /*以下代码仅供参考*
} 34、double fun(double x , int n) { int i; double a=1,b=1,s=1; for(i=1;is) s=a[0][i]; if(a[1][i]>s) s=a[1][i]; } return s; } 37、long fun ( char *p) { /* 以下代码仅供参考 */