有以下程序  #include <stdio.h>  #include <math.h>  main()  {   int s;float n,t,pai;   t=1,pai=0,n=1.0,s=1;  while(fabs(t)>1.0e-6)  

admin2022-04-01  24

问题 有以下程序
 #include <stdio.h>
 #include <math.h>
 main()
 {
   int s;float n,t,pai;
   t=1,pai=0,n=1.0,s=1;
 while(fabs(t)>1.0e-6)
   {
     pai+=t;
     n+=2;s=-s;t=s/n;
   }
   printf("total=%f\n",pai);
 }
 程序所计算的是(          )。

选项 A、1-1/2!+1/3!-1/5!+1/7!-…
B、1+1/3+1/5+1/7+1/9-…
C、1+1/2+1/3+1/4+1/5-…
D、1-1/3+1/5-1/7+1/9-…

答案D

解析 main()函数首先定义整型变量s,初值为1,定义float类型的n、t、pai,其中n初值1.0,t初值为1,pai初值为0;while循环判断t的绝对值(fabs()为求float类型值的绝对值)是否大于1.0*10-6,若t的绝地址大于1.0*10-6,那么,执行下列语句:pai+=t;n+=2;s=﹣s;t=s/n;所以每轮循环pai累加s/n(其中s是上一轮s的项反数,n是上一轮n累加2的值),第一轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9……,本题答案为D。
转载请注明原文地址:https://jikaoti.com/ti/0bd0FFFM
0

最新回复(0)