问题:
[单选] 设变量已正确定义,则以下能正确计算f=n!的程序是( )。A . f=0;for(i=1;i<=n:i+十)f*=i;
B . f=1for(i=1:i<n;i十+)f*=i;
C . f=l:for(i=n;i>1;i十+)f*=i;
D . f=1:for(i=n;j>=2;j--)f*=i;
参考答案:D
参考解析:
D。【解析】由n!的数字定义可知n!一n*(n一1)*(n~2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以l,2,3,…,n,最后计算得到f—n!=0,所以选项A不正确。在选项B中,f的初值为l,在for循环语句中,f依次乘以l,2,3,…,(n一1),最后计算得到f一(n一1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n一1,n一2,…,2,最后计算得到f—n!,所以选项D正确。