浙江省计算机等级二级考试(C语言)机考题库 下载本文

else if (______2________) /*统计数字个数*/ // a[i]>=’0’&&a[i]<=’9’ n[1]++; else n[2]++; }

for(i=0;i<3;i++) printf(\ } 46.求数列之和。

#include #include void main()

{ FILE *p; float s=1,t=1,i=3; p=fopen(\while(fabs(1/t) >= 1e-5)

{t=-t* (i-1)*i; s=s+1/t; i+=2; }

fprintf(p,\ fclose(p); }

运行结果:0.841471 47.计算多项式之和。

#include float f(float,float*,int); void main()

{ float b[5]={1.1,2.2,3.3,4.4,5.5}; printf(\ } float f( _______1________ ) // float x, float *a, int n { float y=a[0],t=1; int i;

for(i=1;i

48.求平均值,并将大于平均值的元素进行求和。

#include

void main() { FILE *p; int i;

float a[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0; p=fopen(\for(i=0;i<10;i++)

v=v+a[i];

v/=10;

for(sum=0,i=0;i<10;i++) if(a[i]>=v) sum=sum+a[i];

fprintf(p ,\ fclose(p); } 运行结果:33.58000

49.统计在圆内的点的个数。

#include #include void main()

{ FILE *p; int i,k=0; float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33}; for(i=0;i<10;i++)

if(pow(x[i]-1,2)+pow(y[i]+0.5,2)<=25) k++;

p=fopen(\ fprintf(p,\ fclose(p); } 运行结果:3

50.计算素数个数,及素数之和。

#include int cnt,sum; void JSValue() { int i,j,half;

for(i=500;i<=800;i++) {half=i/2;

for(j=2;j<=half;j++) if(i%j==0) break;

if(j>half) {cnt++;sum+=i;} } } void main()

{ FILE *p;

p=fopen(\ JSValue(); fprintf(p,\ fclose(p); } 运行结果:44,28542

51.求Fibonacci数列问题。

#include int JSValue(int t) { int F[40];int i; F[0]=0;F[1]=1; for(i=2;;i++)

{ F[i]=F[i-1]+F[i-2]; if(F[i]>t) break; } return F[i]; } void main()

{ FILE *p; p=fopen(\

fprintf(p,\ fclose(p); }

运行结果:1597, 4181

52.求最大值、最小值问题。

方法二: int f1, f2, i; f1=f2=1; for(i=2;;i++) { f1=f1+f2; f2=f1+f2; if(f1>t || f2>t) break; } if (f1>t && f2>t) return f1; if (f1t) return f2;

#include void main()

{ float x,max,min; int i; /******** 1 *******/ for(i=0;i<=10;i++) { // for(i=0;i<10;i++) scanf(\

/******* 2 ********/ if(i=1) { max=x;min=x;} // if(i= =0) if(x>max) max=x; if(x

#include void main() { int m,n,k;

while(scanf(\ // n<=0 || m<=0 for(_____2_____; n%k!=0||m%k!=0; k--); // k=m (或 k=n均可) printf(\ } 54.求多项式和的问题。

#include #include void main()

{ float x,eps,s=1,t=1,i=1; scanf(\ do { /***** 1 *****/ t=-t*x/++i; // t=-t*x/i++; s+=t;

/***** 2 *****/

} while(fabs(t)

55.字符串ASCII码值相加。

#include void main()

{ FILE *p; int s=0,i=0;

char *a=\ p=fopen(“Design2.dat”,”w”); for(i=0;a[i]!=’\\0’;i++)

s+=a[i];

fprintf(p,”%d”,s); fclose(p); }

56.矩阵计算问题。

将数组a的没1行均除以该行上的对角元素(第一行同除以a[o][o], #include void main()

{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; p=fopen(“Design1.dat”,”w”); for(i=0;i<3;i++)

for(j=0;j<3;j++) a[i][j]/=a[i][i]; for(int i=0;i<3;i++) {

for(int j=0;j<3;j++) fprintf(p,\ fprintf(p,\ } fclose(p); }

57.穷举法求解百鸡问题。

#include void main() { FILE *p;

int cock,hen,chick; p=fopen(“Design2,dat”,”w”);

for(cock=0;cock<=20;cock++) /*公鸡的数目作为外层循环的循环变量*/

for(hen=0;hen<=33;hen++) /*母鸡的数目作为内层循环的循环变量*/ { chick=100-cock-hen; /*用总鸡数方程计算小鸡的数目*/

if(chick%3==0 && 5*cock+3*hen+chick/3==100) /*如果满足总钱数,找到合理的解*/ fprintf(p,“%d,%d,%d”,cock,hen,chick); } fclose(p); }