问题
单项选择题
下列程序运行后的输出结果为( )。 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为正确答案。