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