第一篇:未来教育版的计算机二级c语言上机题库2012年的
1)【参考答案】 int fun(int a[][M]){ int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j if(max max=a[i][j]; return max;} 2)【参考答案】 double fun(double eps){ double s=1.0,s1=1.0; int n=1; while(s1>=eps) {s1=s1*n/(2*n+1); s=s+s1; n++; } return 2*s;} 3)参考答案】 void fun(int *a, int *n){ int i,j=0; for(i=1;i<=1000;i++) if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; } 4)【参考答案】 void fun(char *a){ int i,j=0; for(i=0;a[i]!=' ';i++) if(a[i]!='*') a[j++]=a[i]; a[j]=' ';} 5)【参考答案】 void fun(char p1[], char p2[]){ int i,j; for(i=0;p1[i]!=' ';i++); for(j=0;p2[j]!=' ';j++) p1[i++]=p2[j]; p1[i]=' ';} 6)【参考答案】 void fun(STREC *a){ int i; a->ave=0.0; for(i=0;i a->ave=a->ave+a->s[i]; a->ave/=N; } 7)【参考答案】 double fun(STREC *h){ double ave=0.0; STREC *p=h->next; while(p!=NULL) { ave=ave+p->s; p=p->next; } return ave/N;} 8)【参考答案】 void fun(int m, int *k, int xx[]){ int i,j,n=0;for(i=4;i { for(j=2;j if(i%j==0)break; if(j } 9)【参考答案】 int fun(char *ss, char c){ int i=0; for(;*ss!=' ';ss++) if(*ss==c) i++;return i;} 10)float fun(float *a , int n){ int i; float av=0.0; for(i=0;i av=av+a[i]; return(av/n); } 12)void fun(char *a){ int i=0; char *p=a; while(*p&&*p=='*') { a[i]=*p; i++; p++; } while(*p) { if(*p!='*') {a[i]=*p;i++;} p++; } a[i]=' ';} 11)【参考答案】 int fun(STREC *a, STREC *b){ int i,j=0,max=a[0].s; for(i=0;i if(max for(i=0;i if(max==a[i].s) b[j++]=a[i]; return j; } 13)void fun(char *tt, int pp[]){ int i; for(i=0;i<26;i++) pp[i]=0; for(;*tt!=' ';tt++) if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; } 14)【参考答案】 void fun(char *a){ while(*a!=' ') a++; a--; while(*a=='*') a--; *(a+1)=' '; } 15)【参考答案】 char *fun(char *s, char *t){ int i,j; for(i=0;s[i]!= ' ';i++); for(j=0;t[j]!= ' ';j++); if(i<=j) return t; else return s;} 16)【参考答案】 STREC fun(STREC *a, char *b){int i; STREC str={“ ”,-1}; for(i=0;i if(strcmp(a[i].num,b)==0) str=a[i]; return str; } 17)【参考答案】 void fun(char *s, char t[]){ int i,j=0; for(i=0;s[i]!=' ';i++) if(i%2==0 && s[i]%2==0) t[j++]=s[i]; t[j]=' '; } 18)double fun(){ double x0,x1;x1=0.0;do { x0=x1;x1=cos(x0); }while(fabs(x0-x1)>=1e-6);return x1;} 19)【参考答案】 void fun(char *a){ int i=0,n=0;char *p;p=a; while(*p=='*'){ n++;p++;} while(*p) { a[i]=*p;i++;p++;} while(n!=0){ a[i]='*';i++;n--;} a[i]=' ';} 20)【参考答案】 int fun(STREC *a, STREC *b){ int i,j; STREC t; for(i=0;i if(*max b[k]=' '; } (37)参考答案】 for(i=1;i {*max=a[i];*d=i;} int i,j=0,min=a[0].s; for(i=0;i if(min>a[i].s) min=a[i].s; for(i=0;i if(min==a[i].s) b[j++]=a[i]; return j;} 21)【参考答案】 double fun(int m){ int i; double s=0.0; for(i=1;i<=m;i++) s=s+log(i); return sqrt(s); } 22)void fun(char *s, char t[]){ int i,j=0,k=strlen(s); for(i=1;i t[j++]=s[i]; t[j]=' ';} 23)【参考答案】 void fun(char *s, char t[]){ int i,j=0,k=strlen(s); for(i=1;i t[j++]=s[i]; t[j]=' ';} 24)void fun(int a, int b, long *c){ *c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;} 25)【参考答案】 void fun(char *a, char *p){ char *t=a; for(;t<=p;t++) if(*t!='*') *(a++)=*t; for(;*t!=' ';t++) *(a++)=*t; *a=' ';} 26)void fun(STREC a[]){ for(j=0;j if(a[j].s int i; double av=0.0; *n=0; for(i=0;i av=av+a[i].s; av=av/N; for(i=0;i if(av<=a[i].s) { b[*n]=a[i];*n=*n+1;} return av; } 28)void fun(int m, int *a , int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j; } 29)void fun(char *a){ char *p=a; while(*p=='*')p++; for(;*p!=' ';p++,a++) *a=*p; *a=' '; } 30)double fun(STREC *h){ double max=h->s; while(h!=NULL) {if(max h=h->next; } return max;}(31)【参考答案】 void fun(int a[],int n, int *max, int *d){ int i; *max=a[0]; *d=0; } (32)【参考答案】 void fun(char *s, char t[]){ int i,j=0,n; n=strlen(s); for(i=0;i if(i%2!=0&&s[i]%2!=0) {t[j]=s[i]; j++; } t[j]=' '; } (33)【参考答案】 void fun(int a[3][3], int b[3][3]){ int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];} (34)【参考答案】 void fun(int(*s)[10],int *b,int *n,int mm,int nn){ int i,j; for(j=0;j for(i=0;i { b[*n]=*(*(s+i)+j); *n=*n+1; } } (35)【参考答案】 void fun(int a, int b, long *c){ *c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;} (36)【参考答案】 void fun(char a[M][N],char *b){ int i,j,k=0; for(i=0;i for(j=0;a[i][j]!=' ';j++) b[k++]=a[i][j]; void fun(char a[], char b[], int n){ int i,k=0; for(i=0;a[i]!=' ';i++) if(i!=n) b[k++]=a[i]; b[k]=' '; } (38)【参考答案】 void fun(int *w, int p, int n){ int x,j,ch; for(x=0;x<=p;x++) { ch=w[0]; for(j=1;j { w[j-1]=w[j]; } w[n-1]=ch; } } (39)【参考答案】 void fun(char(*s)[N],char *b){ int i,j,k=0; for(i=0;i for(j=0;j b[k++]=s[j][i]; b[k]=' ';} (40)【参考答案】 float fun(int n){ int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; s=s+1.0/s1; } return s;} (41)【参考答案】 void fun(char *s, char t[]){ int i,j=0,n; n=strlen(s); for(i=0;i if(s[i]%2==0) { t[j]=s[i]; j++;} t[j]=' '; i++; p++;} a[i]=' '; }} void fun(char *ss) b[j++]=a[i]; {int i;for(i=0;ss[i]!=' ';i++) return j;if(i%2==1&&ss[i]>='a'&&ss[i]<='z') } }(42)【参考答案】 int fun(int a[], int n){ int i,j=1; for(i=1;i if(a[j-1]!=a[i]) a[j++]=a[i]; return j; }(43)【参考答案】 void fun(char *a, char *h,char *p){ int i=0; char *q=a; while(q { a[i]=*q;q++;i++;} while(q { if(*q!='*') { a[i]=*q; i++; } q++; } while(*q) { a[i]=*q;i++;q++;} a[i]=' ';}(44)【参考答案】 void fun(int a, int b, long *c){ *c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;}(45)【参考答案】 void fun(char *a, int n){ int i=0; int k=0; char *p,*t; p=t=a; while(*t=='*') {k++;t++;} if(k>n) { while(*p) { a[i]=*(p+k-n);(46)参考答案】 void fun(int a, int b, long *c){ *c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;}(47)【参考答案】 long fun(char *p){ long n=0; int flag=1; if(*p=='-') {p++;flag=-1;} else if(*p=='+') p++; while(*p!=' ') {n=n*10+*p-'0'; p++; } return n*flag;}(48)【参考答案】 int fun(int t){ int f0 = 0, f1 = 1, f; do { f = f0 + f1; f0 = f1; f1 = f; } while(f < t); return f;}(49)【参考答案】 double fun(STREC *a, STREC *b, int *n){ int i,j=0; double av=0.0; for(i=0;i av=av+a[i].s; av=av/N; for(i=0;i if(a[i].s *n=j; return av; }(50)【参考答案】 ss[i]=ss[i]-32;} (51)【参考答案】 void fun(int a, int b, long *c){ *c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;} (52)【参考答案】 void fun(char *a,int n){ int i=0,k=0; char *p, *t; p=t=a; while(*t) t++; t--; while(*t=='*') {k++;t--;} if(k>n) {while(*p&&p { a[i]=*p; i++;p++; } a[i]=' '; } } (53)【参考答案】 void fun(int a, int b, long *c){ *c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;} (54)【参考答案】 void fun(int a, int b, long *c){ *c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;} (55)【参考答案】 int fun(STREC *a,STREC *b,int l, int h){ int i,j=0; for(i=0;i if(a[i].s>=l&&a[i].s<=h) (56)【参考答案】 void fun(char *s, char t[]){ int i=0; for(;*s!=' ';s++) if(*s%2==1) t[i++]=*s; t[i]=' '; } (57)【参考答案】 fun(STU a[], STU *s){ int i; *s=a[0]; for(i=0;i if(s->s *s=a[i];} (58)【参考答案】 void fun(int a[ ][N], int n){ int i,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=a[i][j]*n;} (59)【参考答案】 double fun(STREC *a, STREC *b, int *n){ int i,j=0; double av=0.0; for(i=0;i av=av+a[i].s; av=av/N; for(i=0;i if(a[i].s *n=j; return av; } (60)【参考答案】 void fun(int tt[M][N],int pp[N]){ int i,j,max;for(j=0;j max=tt[0][j]; for(i=0;i if(tt[i][j]>max) max=tt[i][j]; pp[j]=max; } }(61)【参考答案】 unsigned fun(unsigned w){ int n=1,j,s=1;unsigned t;t=w; while(t>=10){t=t/10;n++;} /*求10的n-1次方*/ for(j=1;j while(i<(n+1)/2){ ch=s[i]; s[i]=s[m]; s[m]=ch;i++;m--;} }(64)【参考答案】 void fun(char *s,int num){ char ch; int i, j; for(i = 1;i < 6;i++) for(j = i + 1;j < 6;j++) { if(*(s + i)< *(s + j)) { ch = *(s + j); *(s + j)= *(s +i); *(s + i)= ch;} } }(63)【参考答案】 void fun(char s[],int c){ int i=0; char *p; p=s; while(*p) { if(*p!=c) { s[i]=*p; i++;} p++; } s[i]=' ';}(65)【参考答案】 int fun(char *str, char *substr){ int i,j=0; for(i=0;str[i+1]!=' ';i++) if(str[i]==substr[0]&&str[i+1]==substr[1]) j++; return j; }(66)【参考答案】 int fun(int n){ int s=0,i; for(i=2;i<=n-1;i++) if(n%i==0) s+=i;return s;}(67)【参考答案】 double fun(int n) { double t,sn=1.0; int i,j; for(i=1;i<=n;i++) { t=1.0; for(j=1;j<=i;j++) t*=j; sn+=1.0/t; } return sn; }(68)【参考答案】 double fun(double x){ double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;int n=1;do { s0=s1; sum+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t; n++; }while(fabs(s1-s0)>=1e-6);return sum; } (69)【参考答案】 double fun(double x[10]){ double x1=0.0,s=0.0; int i; for(i=0;i<10;i++) x1=x1+x[i]; x1=x1/10; for(i=0;i<10;i++) s=s+(x[i]-x1)*(x[i]-x1); return sqrt(s/10); } (70)【参考答案】 double fun(double x[9]) { double sum=0.0;int i,j=1;for(i=0;i<9;i++)if(j<=8) {sum+=sqrt((x[i]+x[i+1])/2.0); j++; } return sum; } (71)【参考答案】 double fun(int n) { int i; double s=0.0; for(i=1;i<=n;i++) s=s+(1.0/(2*i-1)-1.0/(2*i));/*计算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)*/ return s; } (72)【参考答案】 double fun(int n){ double sum=0,tmp=1;int i; for(i=1;i<=n;i++){ tmp=tmp*i; sum+=1.0/tmp; } return sum; } (73)【参考答案】 double fun(int n) { int m,k,i; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } return s; } (74)【参考答案】 double fun(int n) { int m,k,i; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } return s; } 75)【参考答案】 double fun(int n){ int i; double s=0.0,s1=0.0; for(i=1;i<=n;i++) {s1=s1+pow(i,0.5); s=s+s1; } return s;} 76)【参考答案】 int fun(char *s){ int i,j=0; for(i=0;s[i]!=' ';i++) if(s[i]!=' '&&(s[i+1]==' '||s[i+1]==' ')) j++; return j; } 77)【参考答案】 fun(STU a[], STU *s) return(float)t/100; } 82)void fun(int array[3][3]){ int i,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } int fun(char *str) { int i,n=0,fg=1; char *p=str; while(*p) { n++; p++; } 91)【参考答案】 int fun(int score[],int m, int below[]){ int i,j=0; float av=0.0; for(i=0;i av=av+score[i]/m; for(i=0;i if(score[i] for(i=0;i below[j++]=score[i]; { int i; *s=a[0]; for(i=0;i if(s->s>a[i].s) *s=a[i];} 78)【参考答案】 void fun(int a[][N], int m){ int i,j; for(j=0;j for(i=0;i<=j;i++) a[i][j]=a[i][j]*m;} 79)【参考答案】 double fun(int w[][N]){ int i,j,k=0; double av=0.0; for(i=0;i for(j=0;j if(i==0||i==N-1||j==0||j==N-1){av=av+w[i][j]; k++;} return av/k; } 80)【参考答案】 int fun(int a [M][N]) { int i,j,sum=0; for(i=0;i for(j=0;j sum=sum+a[i][j]; return sum; } 81)【参考答案】 float fun(float h) { long t; t=(h*1000+5)/10; /* } 83)【参考答案】 int fun(int lim, int aa[MAX]){ int i,j,k=0; for(i=2;i<=lim;i++) { for(j=2;j if(i%j==0)break; if(j>=i) aa[k++]=i; } return k; } 84)【参考答案】 char *fun(char(*a)[81], int num, char *max) { int i=0; max=a[0]; for(i=0;i if(strlen(max) max=a[i]; return max; } 85)【参考答案】 void fun(char *str) { int i=0; char *p=str; while(*p) { if(*p!=' ') { str[i]=*p;i++; } p++; } str[i]=' '; } 86)【参考答案】 if(str[i]==str[n-1-i]); else { fg=0; break; } return fg; } 87)【参考答案】 void fun(int(*s)[10], int *b, int *n, int mm, int nn){ int i,j,k=0; for(i=0;i for(j=0;j b[k++]=s[i][j]; *n=k; } 88)【参考答案】 void fun(char *s, char t[]) { int i, j = 0; for(i = 0;i < strlen(s);i++) if(!((i % 2)==0 &&(s[i] % 2)))t[j++] = s[i]; t[j] = 0;} 89)【参考答案】 void fun(char *ss) { int i; for(i=0;ss[i]!=' ';i++) if(i%2==1&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; } 90)void fun(int a, int b, long *c) { *c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10); } return j; } 92)【参考答案】 void fun(int x, int pp[], int *n){ int i,j=0; for(i=1;i<=x;i=i+2) if(x%i==0)pp[j++]=i; *n=j; } 93)【参考答案】 void fun(int m,int k,int xx[]){ int i,j,n; for(i=m+1,n=0;n {for(j=2;j if(i%j==0)break; if(j>=i) xx[n++]=i; } } 94)int fun(int *s,int t,int *k){ int i; *k=0; for(i=0;i if(s[*k] return s[*k]; } 95)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;} 96)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);} 97)double fun(int n){ int i; double s=0.0; for(i=1;i<=n;i++) s=s+1.0/(i*(i+1)); return s;} 98)double fun(double x, int n){ int i; double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i; s=s+pow(x,i)/s1; } return s;} 99)void fun(char *w,int m){ int i,j; char t; for(i=1;i<=m;i++) {t=w[0]; for(j=1;w[j]!=' ';j++) w[j-1]=w[j]; w[j-1]=t; } } 100)void fun(int *a, int *b){ int i,j; for(j=0;j b[j]=0; for(i=0;i if(a[i]>=100) b[10]++; else b[a[i]/10]++; double rnd(){ static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((double)r/m);} int fun(char *s){ int n=0;char *p;for(p=s;*p!=' ';p++)if((*p>='0')&&(*p<='9')) n++;return n;} 102 int fun(int *s, int x){ int i;for(i=0;i if(x==s[i])return i;return-1;} 103void fun(char *a , char *s){ while(*s!=' '){ *a=*s; a++; s++;} *a=' ';} long fun(char *s) { int i,sum=0,len; len=strlen(s); for(i=0;i { sum=sum*10+*s-48; s++; } return sum;} double fun(double a[ ] , int n) { double sum=0,max,min;int i; max=min=a[0]; for(i=0;i { sum=sum+a[i]; if(max if(min>a[i])min=a[i]; } sum=sum-max-min; return(sum/(n-2));} 全国计算机二级C语言考试上机题型总汇 (一)关于“******”问题 1、将字符串中的前导*号全部删除,中间和后面的*号不删除。void fun(char *a){ char *p=a;while(*p= =’*’)p++;for(;*p!=’ ’;p++,a++)*a=*p;*a=’ ’;} 2、只删中间* int i;for(i=0;a[i]= =’*’;i++)for(;h 3、只删尾* while(*a!=’ ’)a++;a--;while(*a= =’*’)a--;*(a+1)=’ ’; 4、只留前* int i , j=0;for(i=0;a=’*’;i++);j=i;for(;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’ ’; 5、只留中间* int i,j=0;for(i=h;i第二篇:计算机二级C语言上机题型总结