A-A+

有以下程序段: int n t=1 s=0; scanf(\% &n); do{ s=s+

2022-08-05 20:11:04 问答库 阅读 171 次

问题详情

有以下程序段: int n,t=1,s=0; scanf("%",&n); do{ s=s+t; t=t-2;} while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是()。
A.任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
解析:要使程序段不陷入死循环,必须存在终止循环的条件“t=n”,由于t的初始值为1,且每执行一次循环都会使t的值减2,故执行本程序后t有可能的最大值为-1,然后,每循环一次就减2,所以键盘输入的n的值必须是t的值之一,即为任意负奇数。

考点:程序