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

admin2010-09-05  31

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

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

答案D

解析 因为变量t的初始值等于1,经过第一次d。 while循环中,执行t=t-2这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,再执行t=t-2这条语句一次,所以变量t的值为-3,接着再判断关系表达式t!=n是否成立,如果关系表达式成立,执行第三次循环,否则退出循环。由此可知,所以只要输入变量n的值为负奇数,则一定会使t==n成立,则退出do while循环。
转载请注明原文地址:https://kaotiyun.com/show/HwWp777K
0

最新回复(0)