问题 填空题

下列给定程序中,函数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”。

单项选择题
单项选择题