以下程序拟实现计算s=1 + 2*2 + 3*3 + … + n*n +…,直到s>1000为止。 #include <stdio.h> main( ) { int s,n; s=1; n=1; do { n=n+1;

admin2021-02-25  9

问题 以下程序拟实现计算s=1 + 2*2 + 3*3 + … + n*n +…,直到s>1000为止。
#include   <stdio.h>
main( )
{  int  s,n;
   s=1;
   n=1;
   do
   { n=n+1;    s=s+n*n;  }
   while(s>1000);
   printf("s=%d\n",s);
}
程序运行后,不能得到正确结果,以下修改方案正确的是

选项 A、把while(s>1000);  改为 while(s<=1000);
B、把 s=1; 改为 s=0;
C、把 n=1; 改为 n=0;
D、把 n=n+1; 改为 n=n*n;

答案A

解析 题目中程序不能实现预期功能是因为while的循环条件错误,选项B,把 s=1, 改为 s=0,最终的结果s=4,与题目原意不同,选项C,把 n=1; 改为 n=0; 最终的结果s=2,与题目原意不同,选项D, 把 n=n+1; 改为 n=n*n; 最终的结果s=2,与题目原意不同,选项A, 正确的修改了while循环条件,可以得到正确结果。故答案为A选项.
转载请注明原文地址:https://jikaoti.com/ti/UJz0FFFM
0

随机试题
最新回复(0)