问题
填空题
下列给定程序中,函数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)); }
答案
参考答案:错误: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”。