A-A+
有下列程序段: int n t=1 S=0; scanf(%d &n); do{s=s+
问题详情
有下列程序段: int n,t=1,S=0; scanf("%d",&n); do{s=s+t;t=t-2;while(t!=n); 为使此程序段不陷入循环,从键盘输入的数据应该是()。
A. 任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t=t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。