若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A.for(i=1,p=1;i<=5;i++) p*=i; B.i=1;p=1;while(i<=5){p*=i; i++;}C.for(i=1;i<=5;i++){ p=1; p*=i;} D.i=1;p=1;do{p*=i; i++; }while(i<=5);
A、for(i=1,p=1;i<=5;i++) p*=i;
B、i=1;p=1;while(i<=5){p*=i; i++;}
C、for(i=1;i<=5;i++){ p=1; p*=i;}
D、i=1;p=1;do{p*=i; i++; }while(i<=5);
查看答案
正确答案
试题解析
选项C中,当i=1时,执行{ p=1; p*=i;},此时得到p的值为1;接下来判断i=2,执行{ p=1; p*=i;},此时p重新赋值为1,然后执行p*=i,得到p=2;当i=3时,此时p又重新赋值为1,把刚才所求的积覆盖了,在以后的每次循环中,p都会重新赋值1。所以,不能实现求和1*2*3*4*5(即5!)的功能。