全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

c语言经典练习题100道(六)

发布时间:2022-07-29 17:18:22
发布人:syq

  【程序26】 题目:利用递归方法求5!。

c语言经典练习题

  1. 程序分析:递归公式:fn=fn_1*4!

  2. 程序源代码:

#include "stdio.h"

#include "conio.h"

main(){

  int i;

  int fact();

  for(i=0;i<5;i++)

  printf("\40:%d!=%d\n",i,fact(i));

  getch();}int fact(j)int j;{

  int sum;

  if(j==0)

    sum=1;

  else

    sum=j*fact(j-1);

  return sum;

}

  ——————————————————————————————————————

  【程序27】 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

  1. 程序分析:

  2. 程序源代码:

#include "stdio.h"

#include "conio.h"

main(){

  int i=5;

  void palin(int n);

  printf("\40:");

  palin(i);

  printf("\n");

  getch();}void palin(n)int n;{

  char next;

  if(n<=1)

  {

    next=getchar();

    printf("\n\0:");

    putchar(next);

  }

  else

  {

    next=getchar();

    palin(n-1);

    putchar(next);

  }

}

  ——————————————————————————————————————

  【程序28】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

  1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

  2. 程序源代码:

#include "stdio.h"

#include "conio.h"

age(n){

int n;

  int c;

  if(n==1) c=10;

  else c=age(n-1)+2;

  return(c);

}

main(){

  printf("%d",age(5));

  getch();

}

  ——————————————————————————————————————

  【程序29】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

  1. 程序分析:学会分解出每一位数,如下解释:()

  2. 程序源代码:

#include "stdio.h"

#include "conio.h"

main( ){

  long a,b,c,d,e,x;

  scanf("%ld",&x);

  a=x/10000;/*分解出万位*/

  b=x%10000/1000;/*分解出千位*/

  c=x%1000/100;/*分解出百位*/

  d=x%100/10;/*分解出十位*/

  e=x%10;/*分解出个位*/

  if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);

  else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);

    else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);

      else if (d!=0) printf("there are 2, %ld %ld\n",e,d);

        else if (e!=0) printf(" there are 1,%ld\n",e);

  getch();

}

  ——————————————————————————————————————

  【程序30】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

  1. 程序分析:同29例

  2. 程序源代码:

#include "stdio.h"

#include "conio.h"

main( ){

  long ge,shi,qian,wan,x;

  scanf("%ld",&x);

  wan=x/10000;

  qian=x%10000/1000;

  shi=x%100/10;

  ge=x%10;

  if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/

    printf("this number is a huiwen\n");

  else

    printf("this number is not a huiwen\n");

  getch();

}

  ——————————————————————————————————————

  更多关于物联网培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

相关文章

OKR与自驱力的关系是什么?

OKR与自驱力的关系是什么?

2023-10-14
office是什么软件类型?

office是什么软件类型?

2023-10-14
Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取