#include<stdio.h> int f(int n) {static int s=1; while(n)s*=n--; return s; } main() {int i,j; i=f

admin2010-04-24  10

问题 #include<stdio.h>
   int f(int n)
   {static int s=1;
   while(n)s*=n--;
   return s;
   }
   main()
   {int i,j;
   i=f(3);j=f(5);
   printf("The output is:\n");
   printf("i=%d j=%d\n",i,j);
   }

选项

答案The output is: i=6 j=720

解析 #include<stdio.h>
   int f(int n)
   {static int s=1;/*s被定义为静态变量,函数f()退出时其值被保留,且再次进入该函数时不再被初始化,该变量所使用的值为最近一次凋函数f()时所得到的值。*/
   while(n)s*=n--;
   return s;
   }
   main()
   {int i,j;
   i=f(3);/*第…次凋用f(),s被初始化为1,运算过程中s的值被改变为6,所以i=6*/
   j=f(5);/*第二次调用f(),s不再被初始化而是以值6参与本次运算,故j的值为6×5×4×3×2×1=720*/
   printf("The output is:\n");
   printf("i=%d j=%d\n",i,j);
   }
转载请注明原文地址:https://jikaoti.com/ti/sGtaFFFM
0

随机试题
最新回复(0)