当前位置: 首页 > news >正文

嵌入式开发学习日志Day11

一、函数的递归调用

        在调用一个函数的过程中,又出现直接或者间接的调用函数本身,称之为函数的递归调用;

函数的递归调用是使用大量的内存空间完成程序进行的;

1.间接调用

        2.直接调用

   注意: 上图仅为示意,不可以这样使用;这样使用会导致栈区空间被填满,之后数据无法入栈,程序崩溃

eg:(1)输入一个数,打印该数的菲伯利亚数列

程序:

 

         (2)输入一个n,求n的阶乘;

程序:

         (3)求第n个数的菲伯利亚数列的值;

程序:

        (4)汉诺塔问题:

n:1步骤盘号
11AC

n:2步骤盘号
11AB
22AC
31AB

n:3步骤盘号
11AC
22AB
31CB
43AC
51BA
62BC
71AC

程序:

 

二、 数组作为函数参数

         数组传递两个参数:数组名(数组首元素地址)  和    数组长度

        数组名中传递的为数组的首元素地址,所以,当数组名作为实参时,被调用函数可以修改主调函数的值;

 eg:

        (1)求一个数组中所有元素的和;

 程序:

        (2) 求一个数组中的最大值;

程序:

(3)逆序输出一个数组;

程序:

(4) 用二分查找法查找数组中的元素;

 程序:

 (5)将小写字符转换为大写字符,函数部分;

程序:

(6) 输出字符串的函数部分;

程序:

(7) 几种string的函数部分;

程序:

         (8)将字符数组中的值但需输出;

程序:

 三、课后练习

1、编写程序实现int atoi(char s[]),实现字符串转整型;

程序:

运行结果:

2、编写程序实现void itoa(char s[], int n);实现整型转字符串; 

程序:

运行结果:

 3、用函数实现选择,冒泡和插入法排序。

 (1)选择排序法

程序:

(2)冒泡排序:

程序:

(3)插入排序:

程序:

 

运行结果:

 

相关文章:

  • 【403 Error】Atcoder Beginner Contest 403 题解
  • Redo log,Undo log和binlog
  • 系统思考提升培训效能
  • 培养一个输出型的爱好
  • 【Git】项目多个分支开发、维护与优化处理 ing
  • miniconda在ARM64位芯片上面的安装
  • Windows应用-屏幕截图
  • 解决 shadui组件库Popover 点击后会消失
  • 【蓝桥杯省赛真题58】Scratch画台扇 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解
  • 人工智能与机器学习:Python从零实现K-Means 算法
  • frp内网穿透的基础使用
  • 疫苗接种体系进入“全生命周期”时代:公共卫生治理再提速
  • Lustre/Scade 语言时序算子与形式化验证的联系
  • 多元函数微分之传统方法和全微分法
  • 电子监管码预检剔除装置提示盒尺寸过短
  • php 需要学会哪些技术栈,掌握哪些框架
  • 架构风格对比
  • new的使用
  • 泰山派常用命令
  • ICH CTD中ISS的关键内容与作用
  • 上汽集团一季度净利润30.2亿元,同比增长11.4%
  • 中行一季度净赚超543亿降2.9%,利息净收入降逾4%
  • 工行一季度净赚841亿元降3.99%,营收降3.22%
  • 阿里千问3系列发布并开源:称成本大幅下降,性能超越DeepSeek-R1
  • 湖南华容县通报“大垱湖水质受污染”,爆料者:现场已在灌清水
  • 太好玩了!坐进大卫·霍克尼的敞篷车穿越他画笔下的四季