问题 单项选择题

有以下程序段:
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的值之一,即为任意负奇数。

选择题
单项选择题