C语言函数复习全解析:参数、无参、嵌套与递归

news2024/11/23 17:13:47

C语言复习

函数篇

文中包括调用有参函数和无参函数、函数的嵌套和递归。首先,通过一道
例题介绍了有参函数的概念和用法,即定义一个函数,接受特定参数并返回结果。接着,讲解了无参函数,即执行函数时不需要返回数值,只执行特定操作。然后,介绍了函数的嵌套,即在一个函数内部调用另一个函数。最后,讲解了函数的递归,即函数调用自身的过程,通过递归函数可以解决一些复杂问题。通过实例详细解释了函数的定义、调用和解释方
法,以及函数在编程中的实际应用。

有参函数的定义与应用
1.有参函数是要求输入参数的函数,通过输入参数来
执行特定操作。
2.通过输入四个数字的例子,展示了如何编写一个程
序来比较和输出前两个数中最大的数,后两个数中最
大的数以及四个数中最大的数
3.使用了三个if else语句来比较不同数组中的元素
找到最大值。

无参函数的调用

无参函数类似,需要在调用
前声明函数名,在调用后解释函数的作用。
无参函数的调用
1.无参函数不返回任何值,主要用于执行特定操作而
不返回结果。
2.通过输出特定文本的例子,展示了如何调用无参函
数来实现特定功能。
3.无参函数的调用方法与有

函数的嵌套和函数的递归
函数的嵌套调用
1.函数可以嵌套调用其他函数,这种调用方式称为函
数的嵌套调用。
2.通过输入四个整数并找出最大值的例子,展示了如
何使用嵌套函数来解决问题
3.嵌套函数调用的方法是在外层函数中声明要调用的
内层函数,并在内层函数中执行相应

已经给出了函数篇的大纲和部分内容的描述。接下来,将为提供更详细的解释和一些代码示例,以帮助更好地理解和复习C语言中的函数。

有参函数的定义与应用

有参函数是带有参数的函数,这些参数在函数调用时传递,并用于函数内部的计算或操作。

示例:比较四个数字并找出最大值。

c

#include <stdio.h>  
  
// 比较两个数,返回最大值  
int max(int a, int b) {  
    return (a > b) ? a : b;  
}  
  
// 比较四个数,返回最大值  
int max_of_four(int a, int b, int c, int d) {  
    int max1 = max(a, b);  
    int max2 = max(c, d);  
    return max(max1, max2);  
}  
  
int main() {  
    int a = 1, b = 2, c = 3, d = 4;  
    printf("The maximum value among %d, %d, %d, and %d is %d\n", a, b, c, d, max_of_four(a, b, c, d));  
    return 0;  
}

无参函数的调用

无 参函数不接受任何参数,通常用于执行某些特定的操作或任务。

示例:输出一条欢迎消息。

#include <stdio.h>  
  
// 无参函数,输出欢迎消息  
void print_welcome() {  
    printf("Welcome to the program!\n");  
}  
  
int main() {  
    print_welcome();  // 调用无参函数  
    return 0;  
}

函数的嵌套调用

函数的嵌套调用指的是在一个函数中调用另一个函数。

示例:使用嵌套函数调用来找出四个数中的最大值(与前面的示例相似,但结构不同)。

 
 

c复制代码

#include <stdio.h>  
  
int max(int a, int b) {  
    return (a > b) ? a : b;  
}  
  
int max_of_two_pairs(int a, int b, int c, int d) {  
    int max_ab = max(a, b);  
    int max_cd = max(c, d);  
    return max(max_ab, max_cd);  // 嵌套调用max函数  
}  
  
int main() {  
    int a = 1, b = 5, c = 3, d = 7;  
    printf("The maximum value is %d\n", max_of_two_pairs(a, b, c, d));  
    return 0;  
}

递归是函数自己调用自己的过程。递归函数常用于解决可以分解为更小相似问题的问题。

示例:计算阶乘。

 
 
#include <stdio.h>  
  
// 递归函数计算阶乘  
long long factorial(int n) {  
    if (n == 0 || n == 1) {  
        return 1;  
    } else {  
        return n * factorial(n - 1);  // 递归调用自己  
    }  
}  
  
int main() {  
    int number = 5;  // 可以更改此值来计算不同数的阶乘  
    printf("Factorial of %d is %lld\n", number, factorial(number));  
    return 0;  
}

咱们下期见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1714774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】Kubernetes----PersistentVolume(PV)与PersistentVolumeClaim(PVC)详解

目录 引言 一、存储卷 &#xff08;一&#xff09;存储卷定义 &#xff08;二&#xff09;存储卷的作用 1.数据持久化 2.数据共享 3.解耦 4.灵活性 &#xff08;三&#xff09;存储卷的分类 1.emptyDir存储卷 1.1 定义 1.2 特点 1.3 示例 2.hostPath存储卷 2.1 …

RabbitMQ详情

一.MQ简介 什么是MQ MQ本质是队列&#xff0c;FIFO先入先出&#xff0c;队列中存放的内容是message&#xff08;消息&#xff09;&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中是常见的上下游“逻辑解耦物理解耦”的消息通信服务。 主…

Wpf 使用 Prism 实战开发Day28

首页汇总方块点击导航功能 点击首页汇总方块的时候&#xff0c;跳转到对应的数据页面 step1: 在IndexViewModel 中&#xff0c;给TaskBar 里面Target 属性&#xff0c;赋上要跳转的页面 step2: 创建导航事件命令和方法实现 step3: 实现导航的逻辑。通过取到 IRegionManager 的…

ClickHouse 与其他数仓架构的对比——Clickhouse 架构篇(四)

文章目录 前言ClickHouse与Hive的对比计算引擎的差异ClickHouse比Hive查询速度快的原因 ClickHouse与HBase的对比HBase的存储系统与ClickHouse的异同HBase的适用场景及ClickHouse不适合的原因 ClickHouse与Kylin的对比Kylin的架构Kylin解决性能问题的思路Kylin方案的缺陷ClickH…

信息学奥赛初赛天天练-15-阅读程序-深入解析二进制原码、反码、补码,位运算技巧,以及lowbit的神奇应用

更多资源请关注纽扣编程微信公众号 1 2021 CSP-J 阅读程序1 阅读程序&#xff08;程序输入不超过数组或字符串定义的范围&#xff1b;判断题正确填 √&#xff0c;错误填&#xff1b;除特 殊说明外&#xff0c;判断题 1.5 分&#xff0c;选择题 3 分&#xff09; 源码 #in…

字符串编码转换

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 最早的字符串编码是美国标准信息交换码&#xff0c;即ASCII码。它仅对10个数字、26个大写英文字母、26个小写英文字母及一些其他符号进行了编码。ASC…

贪心(临项交换)+01背包,蓝桥云课 搬砖

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0搬砖 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 将物品按照w[i] v[i]升序排序然后跑01背包就是答案 下面证明&#xff1a;&#xff08;不要问怎么想到的&#xff0c;做题多了就能想到&#xff…

总负债20.79亿,银行借款在增加,经营所得现金在减少,累计亏损在增加,易点云披露其风险(四)

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 全文共二十五章&#xff0c;总计6万字。 由于篇幅所限&#xff0c;分为&#xff08;一&#xff09;到&#xff08;五&#xff09;篇发布。 本文为《负债20.79亿,银行借款在增加,经营所得现金在减少,易点云披露风险》&am…

力扣爆刷第146天之贪心算法五连刷

力扣爆刷第146天之贪心算法五连刷 文章目录 力扣爆刷第146天之贪心算法五连刷总结一、455. 分发饼干二、376. 摆动序列三、53. 最大子数组和四、122. 买卖股票的最佳时机 II五、5. 跳跃游戏 总结 贪心算法的本质就是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 一…

使用手机短信恢复软件,完成从新手到专家的进阶之路

由于各种原因&#xff0c;如误删、手机设备损坏等&#xff0c;我们可能会面临重要短信丢失的风险。现在市面上有许多手机短信恢复软件可以帮助我们解决这个问题&#xff0c;但从新手到专家的进阶之路并非一蹴而就的过程&#xff0c;它需要耐心、实践和不断地学习。以下是一篇关…

c++编程(15)——list的模拟实现

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 前言list的数据结构list的默认构造尾插与尾删iterator插入和删除构造、析构、赋值copy构造initializer_list构造operator 析构函数 前言 受限于博主当前的技术水平&#xff0c;暂时还不能模拟实现出STL当中用…

HTTP报文

HTTP报文 报文流 HTTP报文是在HTTP引用程序之间发送的数据块&#xff0c;这些数据块以一种文本形式的元信息开头&#xff0c;这些信息描述了报文的内容和含义&#xff0c;后面跟着可选的数据部分&#xff0c;这些报文在客户端&#xff0c;服务器和代理之间流动。 报文流入源…

Java事务入门:从基础概念到初步实践

Java事务入门&#xff1a;从基础概念到初步实践 引言1. Java事务基础概念1.1 什么是事务&#xff1f;1.2 为什么需要事务&#xff1f; 2. Java事务管理2.1 JDBC 的事务管理2.2 Spring 事务管理2.2.1 Spring JDBC2.2.1.1 添加 Spring 配置2.2.1.2 添加业务代码并测试验证 2.2.2…

在做题中学习(62):矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;二维前缀和 思路&#xff1a;读题画图才能理解意思&#xff1a;dun点点的是mat中的一个数&#xff0c;而要求的answer同位置的数 以点为中心上下左右延长 k 个单位所围成长方形的和。 因为最后answ…

拷贝构造、移动构造、拷贝赋值、移动赋值

最近在学习C的拷贝构造函数时发现一个问题&#xff1a;在函数中返回局部的类对象时&#xff0c;并没有调用拷贝构造函数。针对这个问题&#xff0c;查阅了一些资料&#xff0c;这里记录整理一下。 调用拷贝构造函数的三种情况&#xff1a; ① 用一个类去初始化另一个对象时&a…

PLC自动化行业的发展前景好吗?

第一先说plc的薪资&#xff1a; 整体的平均薪资还是非常可观的&#xff0c;在1.3w/月左右。 当然PLC是需要经验积累的&#xff0c;尤其需要拥有大型的系统设计经验&#xff0c;那将会在PLC以至于自动化行业都会吃的开。所以待遇是与自身的经验&#xff0c;能力&#xff0c;所在…

Java设计模式:享元模式实现高效对象共享与内存优化(十一)

码到三十五 &#xff1a; 个人主页 目录 一、引言二、享元设计模式的概念1. 对象状态的划分2. 共享机制 三、享元设计模式的组成四、享元设计模式的工作原理五、享元模式的使用六、享元设计模式的优点和适用场景结语 [参见]&#xff1a; Java设计模式&#xff1a;核心概述&…

GDPU Java 天码行空13

&#xff08;一&#xff09;实验目的 1、掌握JAVA中与网络程序开发相关的知识点&#xff1b; 2、理解并掌握网络编程开发思想及方法&#xff1b; 3、熟悉项目开发的分包方法和依据&#xff1b; 4、实现聊天室中客服端和服务器端的实现方法&#xff1b; 5、熟悉多线程程序开发方…

第五届武汉纺织大学ACM程序设计竞赛 个人题解(待补完)

前言&#xff1a; 上周周日教练要求打的一场重现赛&#xff0c;时长五个小时&#xff0c;题目难度还行&#xff0c;除了部分题目前我还写不出来之外&#xff0c;大部分题都写完或补完了&#xff0c;这边给出比赛链接和我的代码&#xff08;有些是队友的&#xff09;和题解。 正…

工作中有哪些超级好用的C/C++程序库?

视频和讲义发布在这里&#xff1a; B站链接