二级C语言 程序改错题

找出错误,只改 found 下一行,答案点击按钮展开

61程序改错题:递归求阶乘(2 处错误)

函数 rfact 用递归求 n 的阶乘。请改正 found 标记处的 2 处错误。

#include <stdio.h>
long rfact(int n)
{
/**********found**********/
    if(n = 1) return 1;
/**********found**********/
    return n * rfact(n);
}
int main()
{
    printf("%ld\n", rfact(5));
    return 0;
}
参考答案
第1处: if(n == 1) return 1;
第2处: return n * rfact(n - 1);
解析

第1处应判断 n==1(= 是赋值恒为真,直接返回 1);第2处递归应传 n-1(传 n 不收敛会栈溢出)。rfact(5) 应输出 120。

试题及答案仅供练习参考,不保证完全准确,正式考试请以NCRE官方教材及官方内容为准。

©2026 NCRE二级题库 版权所有