问题
单项选择题
设变量已正确定义,则以下能正确计算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
解析: 选项A中,f初值设为0。则执行循环体后,所得的乘积值始终为0,不符合题意。选项B中,for循环条件是i<n,则当i为n时即退出循环,所以求得的乘积值是(n-1)!,也不符合题意。选项C中,i的初值为n,且i在每次执行循环体后都增加1,则如果n为大于1的数,程序会陷入死循环。只有选项D符合题意,求得f的值为n*(n-1)*(n-2)*…*2,即n!。