问题
单项选择题
设变量已正确定义,则以下能正确计算f=n!的程序段是【 】。
A.F=0: for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++) f*=i;
C.f=1; for(i=n;i>1;i++)f*=i;
D.f=-1; for(i=n;i>=2;i--)f*=i;
答案
参考答案:D
解析:n!=n*(n-1)*……*2*1,由于选项A中f的初值为0,所以循环n次后,f值依然为0,故选项A错误:选项B中循环的终止条件是"i<n",即只执行i-1次循环,得到的f值为(n-1)*……*2*1的值,故选项B错误;选项C中,当n>1时,由于初值"i=n"是符合条件"i>1"的,且增量为+1,故循环中永远不会出现不满足条件"i>1"的值,所以出现死循环。