问题 单项选择题

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

名词解释
多项选择题