单选题
下列程序运行后的输出结果为( )。 public class Test { public static void main (String args[]) { int i,j,p,s; s=0; for (i=1;i<=4; i++) { p=1; for(j=1;j<=i:j++) p=p*j; s=s+p; } System.out.println(s); } }
A、
46
B、
33
C、
30
D、
40
【正确答案】
B
【答案解析】
[解析] 本题考查for语句的嵌套使用。第一个for语句完成对内嵌for语句的循环控制,第二个for语句控制变量j在不大于i变量的情况下计算p=p*j。注意,每执行一次第一个for循环,p都会重新赋值为1,然后与j值相乘,直到j=i为止。事实上,第二个for循环每循环一遍,p的最终结果就是i的阶乘值,由第一个for循环决定了i的取值只能为1、2、3、4,因此最终s的值为1!+2!+3!+4!=1+2+6+24=33。故选项B为正确答案。
提交答案
关闭