问题 单项选择题

设变量已正确定义,则下列能正确计算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

解析: 要正确计算函数f=n!,由n!的数学定义可知n!=n*(n-1)*(n-2)*……*1。在选项A)中,由于f的初值为0,在for循环语句中, f依次乘以1,2,3,……,n。最后计算f=n!=O,所以选项A)不正确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1,2,3,……,(n-1)。最后计算得到f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1, n+2,……,所以选项C)不正确。在选项D)中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,……,2。最后计算f=n!,所以选项D)正确。

填空题
单项选择题 A1型题