问题 单项选择题

设变量已正确定义,则以下能正确计算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,即只执行n-1次循环,得到的f值为(n-1)*…*2*1的结果,故选项B)错误;在选项C)中,当n>1时,由于初值i=n符合条件i>1,且增量为+1,故循环中永远不会出现不满足条件i>1的值,出现死循环。

问答题
单项选择题