问题 单项选择题

执行以下的循环后输出的值为( )。 public class Sun { public static void main(String args[ ]) { int m=1000,s=0,n=0; do{ n=n+1; s=s+(int)Math.pow(2,n); }while(s<=m); System.out.println("n="+n+","+"s="+s); } }

A.n=9,s=1000

B.n=8,s=1022

C.n=9,s=1022

D.n=8,s=1000

答案

参考答案:C

解析: 本题考查对do-while循环的理解。本题完成的功能是求当20+21+22+…+2n最少需要多少项时才能满足大于数值m。m=1000,当程序运行到第8次时,循环测试条件仍然为真,所以继续执行1次,当执行到第9次时,s的值已经超过了1000。故本题答案是C。

单项选择题
单项选择题