当前位置:   article > 正文

2023年湖北省专升本C语言程序设计大题真题解析(武汉东湖学院)_武汉东湖学院专升本题目

武汉东湖学院专升本题目

        2023年湖北省的专升本考试已于5月7日举行,有很多小伙伴希望看看自己是否作对,也有很多学弟学妹想要看看题目到底难不难,那么我们今天就来看一道真题。

        题目:

        求5的阶乘。这一题来自湖北省的一所民办院校,一起来做做看吧。

  1. #include<stdio.h>
  2. //使用递归函数,来求阶乘是最简单的一种方法,这里定义的fun函数写在主函数之上就不用再在主函数中声明了
  3. int fun(int x){
  4. /*递归函数的思想是给它一个数,让它按照某种规律找到最底层的答案,然后再将最底层的答案往上回溯
  5. 每回溯一层就得到一个新答案。直到回溯到最开始的那一层得到我们所需要的答案。*/
  6. int f; //定义一个变量f用来作为阶乘的返回值
  7. if(x < 0){ //当x小于0的时候,x的阶乘是没有结果的
  8. printf("x is less than zero,it hasn't factorial");
  9. }else if(x == 0 || x == 1){ //当x=0或者x=1的时候,x的阶乘是1
  10. f = 1;
  11. }else{ /*当x>1的时候,我们就是用递归函数,即该函数自己调用自己,因为我们上面说到1的阶乘等于1,那么当它递归到1的时候,
  12. 它就拿到了最底层的阶乘的那个答案,此时它开始往上回溯,回溯到2的时候就等于2*1,回溯到3的时候就等于3*(2*1)回溯
  13. 到4的时候就等于4*(3*(2*1)),回溯到5的时候就等于5*(4*(3*(2*!))),也就是说,要想知道5的阶乘是多少,
  14. 就必须知道4的阶乘是多少,要想知道4的阶乘是多少就必须知道3的阶乘,要想知道3的阶乘就必须知道2的阶乘,要想知道2的
  15. 阶乘就必须知道1的阶乘,因此x=1的这个if条件必不可少,这里写了三种情况,实际上是打算写一个求n的阶乘的模板,
  16. 用该模板来求5的阶乘*/
  17. f = x*fun(x-1);
  18. }
  19. return f;
  20. }
  21. int main(){
  22. int num;
  23. printf("请输入你想求的阶乘:");
  24. scanf("%d",&num);
  25. printf("\n%d的阶乘是%d",num,fun(num));
  26. return 0;
  27. }

        此题,在谭浩强C语言程序设计第五版中第七章的函数中有详细讲过。它涉及到我们函数中最经典的用法,递归函数。递归函数的思想可以精炼为四个字,“递归”和“回溯”。 弄懂这四个字,那么递归函数也不是什么难事啦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/415243
推荐阅读
相关标签
  

闽ICP备14008679号