以下程序拟实现计算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(

admin2021-07-09  18

问题 以下程序拟实现计算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、把n=n+1;改为n=n*n;
B、把s=1;改为s=0;
C、把n=1;改为n=0;
D、把while(s>1000);改为while(s<=1000);

答案D

解析 题意中,需要求得n平方和并赋给s,直到s大于1000为止。题目的程序中使用do…while()循环来实现,每次循环都是将n自增1后求平方,再累加给s,while循环条件是当s大于1000时,才继续循环,所以本题程序的运行结果是1+2*2=5,不是正确结果,需要将while的循环条件:s>1000修改为s<=1000,含义是:当s<=1000时继续循环,否则s>1000后终止循环,本题答案为D。
转载请注明原文地址:https://kaotiyun.com/show/xOtp777K
0

最新回复(0)