下列给定程序中,函数fun()的功能是::求k!(k<13),所有阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更 改程序的结构

admin2010-09-14  19

问题 下列给定程序中,函数fun()的功能是::求k!(k<13),所有阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更
改程序的结构。
   试题程序:
   #include <conio.h>
   #include <stdio.h>
   long fun(int k)
  {
  /*************found**************/
       if k>0
           return (k* fun (k-l));
    /*************found**************/
       else if (k=0)
           return 1;
   }
    main ( )
    {int k=10;
     clrscr ();
     print, ("%d!=%1d\n ", k, fun (k));
   }

选项

答案(1)错误:if k>0 正确:if(k>0) (2)错误:else if(k=O) 正确:else if(k==O)

解析 由数学知识我们可以知道,0和1的阶乘都等于1,if k>O中是一个简单的语法错误,if后面没有“()”说明,在 else if(k=0)中,程序想说明的是“如果k值为0,则函数返回1”,转换成c语言语句就是“else if(k==0)  return 1”。
转载请注明原文地址:https://jikaoti.com/ti/GIkiFFFM
0

相关试题推荐
最新回复(0)