有以下程序段: int n,t=1,S=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是( )。

admin2011-06-13  21

问题 有以下程序段:    int n,t=1,S=0;    scanf("%d",&n);    do{s=s+t;t=t-2;}while(t!=n);    为使此程序段不陷入死循环,从键盘输入的数据应该是(       )。

选项 A、任意正奇数
B、任意负偶数
C、任意正偶数
D、任意负奇数

答案D

解析 为了使程序不陷入死循环,则while的条件不能一直为真。t的初值为1,循环体中语句t=t-2使t变为负奇数-1、-3、-5…,而while的循环条件是t不等于n,若从键盘输入的数据为A、B、C三项时,则t永远不等于n,即循环条件一直为真,程序陷入死循环。只有输入负奇数时,t会在某个时候等于n,使得while条件不成立,终止循环。
转载请注明原文地址:https://kaotiyun.com/show/AkPp777K
0

最新回复(0)