有以下程序  #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-10-24  27

问题 有以下程序
 #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的值)。第1轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9-……。故本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/GXkp777K
0

最新回复(0)