c语言初阶之函数

1.函数是什么?

2.函数的分类 库函数 要求有会掌握一些库函数的模拟实现,及查询库函数的功能和头文件的能力

                      自定义函数 要求会根据题目要求自己自定义一些函数

从本案例中可以看出,传值调用并不能改变实参的值,而传址调用是可以改变实参的值。

 3.函数的实参和形参:形参是实参临时拷贝 

具体有关实参和形参在空间中的开辟,详情请见后续博客推出的函数栈帧相关的内容。

4.函数的传值调用和传址调用:传值调用并不能改变实参的值,而传址调用是可以改变实参的值。

相关练习:

习题1:

 

习题2:

习题3:

习题4:

5.函数的嵌套调用和链式访问

函数可以互相调用,也即是嵌套调用。

但是函数不能嵌套定义。

 

 函数的链式访问

strlen函数的返回值做printf函数的参数,像这样就叫做函数的链式访问。

相关习题讲解:

 在讲解之前,要注意一点,printf函数的返回值是打印字符的个数。

最里层的printf函数打印出43,返回值为2,作为第二个printf函数的参数。

第二个printf函数打印出2,返回值1,作为第一个printf函数的参数。

第一个printf函数再打印出1。 

6.函数的声明和定义

 

函数的声明:

1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数
声明决定不了。
2. 函数的声明一般出现在函数的使用之前。要满足 先声明后使用
3. 函数的声明一般要放在头文件中的

函数的定义:

指函数的具体实现,交待函数的功能实现。

7.函数递归和迭代(非递归)

存在递归的两个条件:1.存在条件限制,满足限制条件,就不再发生递归 2.条件变量会发生改变,每次调用递归时会越来越接近限制条件

//习题

1.//接受一个整型值(无符号),按照顺序打印它的每一位。
//例如:
//输入:1234,输出 1 2 3 4

2.//编写函数不允许创建临时变量,求字符串的长度。

 

3.//n的阶乘。(不考虑溢出)

递归实现:

 迭代实现:

 

4.//求第n个斐波那契数。(不考虑溢出)

递归实现:

 迭代实现:

 

5. // 汉诺塔问题
规则、思路及规律
使用递归实现

 

 

6. // 青蛙跳台阶问题

思路一:找规律

一阶台阶方法一种

两阶台阶方法两种

三阶台阶方法三种

四阶台阶方法五种

五阶台阶方法八种

六阶台阶方法十三种

类似于斐波那契数列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值