C语言答案解析 下载本文

内容发布更新时间 : 2024/12/23 9:28:53星期一 下面是文章的全部内容请认真阅读。

result=x/2.0; return result; }

double b(int x) { double result; if(x%2!=0) result=x*x; else result=x*x*x; return result; }

double sum(int n) { int i; double t,y=0; for(i=1;i<=n;i++) { t=a(i)-b(i); y=y+(t*t); } return y; }

void main() { double a( int x); double b(int x); double sum(int n); int n; scanf(\ printf(\} 43、

X2Xn

已知:y?1?X?2?????n, 其中:X = 0.25,n = 1,2,┅,求:

(1) Y值(精确到小数点后第5位) *1.28767 (2) 与(1)匹配的最小的n *7 #include

float power(double x,int n) { double p=1; int i; for(i=1;i<=n;i++) p=p*x;

return p; }

void main() { float power(double x,int n);

double t,x,y=1; int n=1; x=0.25; do { t=power(x,n); y=y+t/n; n++; }while(t/n>1e-5);

printf(\}

44、以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例如:读入后,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。 #include main() {

int a,b,c,t;

printf(\,b,c:\

scanf(\&a,&b,&c); t=a;a=b;b=c;c=t;

printf(\}

45.下面fun函数的功能是从a数组中查找值为y的元素;若找到,返回该元素的下标值,若不存在值为y的元素,返回0;数列放在a数组的a[1]到a[n]中,a[0]元素用来作为临时存储单元。请填空。 int fun(int a[],int y,int n) {int k=0; a[0]=y;k=n;

while( a[0]!=a[k] && k!=0 ) k--; return( k ); }

46、 /*下列程序的功能是求出二阶Fibonacci数列前10之和,1,1,2,3,5,8…。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!3是第四项,5是第五项。)*/ 答案:143 #include

void main() {

long sum=0,a[30]={1,1,2}; int k;

for( k=2;k<10;k++ )

a[k] = a[k-1]+a[k-2];

for( k=1;k<=10;k++ ) //改为: for( k=0;k<10;k++ ) sum += a[k]; printf(\ }

47、[20,160]之间的所有偶数的平方和。答案:694380 #include void main() { int sum=0; int i; for(i=20;i<=160;i++) if(i%2==0) sum=sum+i*i; printf(\}

48、求[10,2000]之间能被2或3或5整除的数之和。答案:1466295 #include void main() { int sum=0; int i; for(i=10;i<=2000;i++) if(i%2==0 || i%3==0 || i%5==0) sum=sum+i; printf(\}

49、求800以内的最大的20个素数之和。答案:14510 #include int prime(int x) {

int k;

for(k=2;k

if(x%k==0) break; if(k==x) return 1; else return 0;

}

void main() { int i,sum=0,n=0; for(i=800;i>0;i--) { if(prime(i)) { sum=sum+i; n++; } if(n==20) break; } printf(\}

50、求当n=60时下式的和:s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n)(按四舍五入保留6位小数)。答案:1.967214 #include void main() { float s=0,s1=0; int i; for(i=1;i<=60;i++) { s1=s1+i; s=s+1.0/s1; } printf(\}

51、编写程序:输入x的值,按照下列公式计算cos(x) cos(x)=1-x2/2!+ x4/4!- x6/6!+... 精确到10-5。 #include main( ) { int i; double a,b,x,y; scanf(\ y=1;a=1;b=1;i=1; do { a=-a*x*x;

}

b=b*2*i*(2*i-1); y=y+a/b; i++;

}while(fabs(a/b)>1e-5); printf(\