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

问题 以下程序拟实现计算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://kaotiyun.com/show/nZtp777K
0

最新回复(0)