第五章-c语言中的函数(下)

函数入门及C Primer Plus第五章编程题 带参数的函数 C Primer Plus第五章编程题 阅读详情
四、参数
  1. 理解:在很多情况下,函数和调用者之间需要数据交互,调用者需要给函数传递一些数据,交互

    的数据称为参数

  2. 形式参数

    (1) 形式参数:简称为形参,在函数定义时,约定调用者需要传递的数据类型及参数名
    (2) 语法:返回值类型 函数名(数据类型 参数名1,数据类型 参数名2,数据类型 参数名3){}
    (3) 使用:形参相当于函数内部的变量,在函数中直接通过参数名进行使用,但是不能出现命名冲突
    
  3. 实际参数

    (1) 实际参数:函数在调用时,给形参传递的数据,简称为实参
    (2) 实参作用:实参给形参赋值,实参的数据类型、个数、顺序和形参一致
    (3) 函数调用:函数名(实参1,实参2,实参3);
    
    #include<stdio.h>
    
    void main(){
    	printf("好好学习....\n");
    	printLine(20,'=');
    	printf("天天向上....\n"); 
    	printLine(30,'+');
    	printf("good good study....\n"); 	
    	printLine(40,'*');
    	printf("day day up...."); 
    } 
    
    void printLine(int a,char s){
    	int n;
    	for(n=1;n<=a;n++){
    		printf("%c",s);
    	} 
    	printf("\n");
    }
    
五、返回值
  1. 理解:函数和调用者之间的一种数据交互,通过调用函数获取的数据结果(函数 给 调用者数

    据结果)

  2. 函数返回值的语法:

    返回值类型 函数名(形参列表){
        // 函数体、函数的实现
    }
    
  3. 函数返回值的分类:

    (1) 返回值类型为 void,代表当前函数不需要返回值任何结果:
        void 函数名(形参列表){}
    
    (2) 返回值类型 为 具体的某种数据类型,代表函数需要返回结果:
        数据类型 函数名(形参列表){
            // 函数体
            return xxx;
        }
        注意:函数的返回值约定了函数和调用者之间交互的数据类型
    
  4. return的作用:

    (1) 将函数的结果返回值给调用者
    (2) 结束当前函数
    
    案例:
    int add(int a,int b){
    	return a+b;  // 返回值当前值,同时后面不能再定义其他内容
    } 
    
  5. 函数返回值的处理方式:

    (1) 第一种处理方式:函数的返回值可以不处理
        #include<stdio.h>
    	void main(){
    		add(6,9);//函数的调用,函数程序运行,返回值结果不予处理 
    	} 
    	// 函数
    	int add(int a,int b){
    		return a+b;
    	}      
    
    (2) 第二种处理方式:定义同类型的变量进行存储返回值
        #include<stdio.h>
        void main(){
            int r=add(6,9);
            printf("%d",r);
        } 
    
        int add(int a,int b){
            return a+b;
        }
    
    (3) 第三种处理方式:直接在使用的位置,调用函数
        #include<stdio.h>
        void main(){
            printf("%d",add(6,19));
        } 
    
        int add(int a,int b){
            return a+b;
        }
    
六、函数的嵌套调用与递归调用
  1. 函数的嵌套调用:一个被调用的函数,在它执行未结束之前又调用其他函数,这种调用关系可以嵌套多层,理论上嵌套层数不受限制。

    #include<stdio.h>
    
    void main(){
    	printf("%d",add(6,19));
    } 
    
    int add(int a,int b){
    	return a+ select(b);
    } 
    
    int select(int r){
    	if(r%2==0) return r/2;
    	else return (r-1)/2;
    }
    
  2. 函数的递归调用

    (1) 理解:一个函数在执行过程中调用自身
    (2) 注意:如果使用递归应用,必须注意设置递归调用出口,否则可能出现无穷递归
    
    (3) 递归思想
        a.递进:每一次推进,计算都比上一次变得简单,直至简单到无需继续推进,就能获得结果。也叫到达出口。
        b.回归:基于出口的结果,逐层向上回归,依次计算每一层的结果,直至回归到最顶层。
    
    案例:
    #include<stdio.h>
    
    void main(){
    	printf("%d",jieCheng(6));
    } 
    
    int jieCheng(int n){
    	if(n==1 || n==0) return 1;
    	return n*jieCheng(n-1);
    }
    
C语言程序设计第五版谭浩强著 第五章部分课后习题答案 #include&lt;stdio.h&gt; main() { int x,y,m,n,u,p; scanf("%d%d",&amp;x,&amp;y); m=x; n=y; while(y!=0) { u=x%y; x=y; y=u; } p=m*n/x; printf("最大公约数=%... 阅读详情

相关推荐

C语言程序设计题库 第五章:函数

本章内容:函数的定义、原型声明、作用域和存储类别,格式受限,已绑定PDF资源。

ahhhh23_的博客 2985

[C编程入门] 第五章:C语言中的函数和递归

函数是C语言中的基本构建块之一,用于封装可重用的代码段。5.1.1 定义和调用函数 语法: 示例: 定义函数:调用函数:5.1.2 函数参数函数可以接受零个或多个参数。 语法: 示例: 函数参数:5.1.3 函数返回值函数可以返回一个值给调用者。 语法: 示例: 函数返回值:5.1.4 函数原型函数原型是在函数定义之前声明函数的一种方法。 语法: 示例: 函数原型:5.1.5 函数重用函数可以被多次调用以执行相同的操作。 示例: 函数重用:C语言中的函

极客代码 978

Ubuntu22.04+Docker一键部署Autoware Universe避坑指南(附鱼香ROS配置)

本文详细介绍了在Ubuntu22.04系统中使用Docker一键部署Autoware Universe的完整流程,包括鱼香ROS工具链配置、Docker环境优化及VSCode开发环境集成。通过实战指南帮助开发者快速搭建自动驾驶开发环境,解决常见部署问题,提升开发效率。

weixin_29254673的博客 413

【C系列5.7】指针专题之函数指针(HZNUOJ 2024程序设计基础第五章作业)

Description Alex刚刚学习了函数指针int (*pfun)(int x, int y),请你用函数指针帮助Alex选出两个数中的较大数。 Input 包含多组输入。 每组输入是两个绝对值不大于100的整数a,b Output a、b中的较大值。

BoBoo文睡不醒 283

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了基于YOLOv11的YOLOFuse多模态融合技术,重点探讨了RGB与红外线(IR)协同检测的实现原理与实战应用。文章详细介绍了双流架构与数据级、特征级、决策级三种融合策略,并通过实战案例展示了其在低光照、复杂环境下显著提升检测精度与鲁棒性的优势,为全天候安防、自动驾驶等场景提供了有效的技术解决方案。

weixin_29041195的博客 649

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2800

【C系列4.11】函数训练之爬楼梯(HZNUOJ 2024程序设计基础第五章作业 Pro )

Description cyn小朋友今天学会了如何爬楼梯,但她腿太短了,能走的步数不多,你能帮她算算他的走法总共有几种吗?假设有h个楼梯,一次只能走一步或者两步或者三步,求总共有几种不同的方法 Input 第一行输入一个整数T,代表有几组测试数据。 接下来每行输入一个整数h(less than 30),代表有几个楼梯。 Output 输出有几种方法。

BoBoo文睡不醒 282

实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比

本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。

weixin_33704234的博客 391

【C系列4.2】函数训练之素数判断(普通篇)(HZNUOJ 2024程序设计基础第五章作业 Pro )

Description cyn小朋友上小学也有一两年啦,今天数学课上mwy老师教他的是什么是素数,cyn小朋友很开心的开始验证老师给出的数字是不是素数啦,你能和他一起验证吗?(主函数代码部分已经固定,请按需写函数部分,如果提交的不是c语言则需提交全部代码) #include int isPrime(int x); int main() { int t; scanf("%d",&t); while(t--) { int n;

BoBoo文睡不醒 316

Linux下开机异常(fsck exited with status code 4)

Linux下开机异常事情是这样的,本来我呢跑着程序听着歌,结果忽然就死机了,我只能强制关机,再次打开系统的时候,就提示这样fsck from util-linux 2.26.2 /dev/sda10 contains a file system with errors, check forced. /dev/sda10: Inodes that were part of a corrupted pr

芳草碧连天 2万+

Codex 接入国产大模型完整指南:CC-Switch 与 Codex++ 的工程化选型

Codex 默认走 OpenAI Responses API,而 DeepSeek、GLM、Kimi 等国产模型只提供 OpenAI-compatible 的 Chat Completions——两套协议在消息结构、流式响应、reasoning 字段、tool call 上都不兼容,所以"改个 Base URL + 填国产 Key"这种朴素操作根本跑不通。本文从架构师视角出发,把 Codex 接入国产大模型这件事讲透:先剖析协议链路到底卡在哪,再对比 CC-Switch和 Codex++两套主流方案的差异

少说,多做 3845

c程序设计语言读书笔记,C程序设计语言读书笔记

第一章 导言第一章带领大家进入了C语言的世界,但是我感觉,如果没有一些基础,要想完全理解这一章的内容,还是有些困难的。在允许使用某种类型变量值的任何场合,都可以使用该类型的更复杂的表达式。无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理。文本流是由多行字符构成的字符序列,而每行字符则由0个或多个字符组成,行末是一个换行符。当把数组名用作参数时,传递给函数的值是数组起始元素的位置...

weixin_39849287的博客 543

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2435

《明解C语言》笔记及课后习题答案 【第五章】

练习5-1/*---从头顺次为数组中的元素赋值0,1,2,3,4---*/ #include &lt;stdio.h&gt; int main(void) { int i, v[5]; for(i = 0;i &lt; 5; i++){ v[i] = i; printf("v[%d]=%d\n",i,v[i]); } return 0; } 练习5-2/*---从头顺...

VividColors的博客 6469

optee技术简介

OP-TEE(Open Portable Trusted Execution Environment)是一种开源的可信执行环境(TEE),专为ARM TrustZone架构设计。TEE是一种独立的执行环境,运行在主操作系统之外,为敏感任务提供安全的计算空间,如加密、身份验证、密钥管理等。

baron-周贺贺-代码改变世界ctw 1279

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C语言第五章-循环题学习

C语言第五章 除了for以外的循环 // // main.c // project1 // // Created by sihan guo on 2019/06/13. // Copyright © 2019 sihan guo. All rights reserved. // #include <stdio.h> #include <stdbool.h> in...

zzugsh的博客 330

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言整理第五章(函数)

这部分是重点!!!!(一)定义函数类型 函数名(类型1 形式参数1,类型2 形式参数2,........)说明部分,可执行的语句序列int sum;sum = a+b;return sum;(1)函数名必须是合法的标识符(2)函数要有返回值,所谓返回值就是你调用完这个函数,这个函数也运行了,之后这个函数要向主函数返回一个什么东西继续支持主函数的运行(3)所谓形式参数就是已经在主函数定义好,复制好的要在函数中操作的数据。

2401_87621863的博客 1637

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

c语言第五章函数课后答案,第五章C语言函数

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段, 使之容易读、写、理解、排除错误、修改和维护。C程序中函数的数目实际上是不限的, 如果说有什么限制...

weixin_31659095的博客 225

C 语言学习 第五章 函数

函数定义(function definition): 函数名( 参数名,...)执行语句其中函数类型如之前所讲的变量类型基本一致,例如:int、char、int*... ... 但值得一提的是,函数类型可以是 void 类型,即不需要返回任何值的,而其他的均需要用 return 语句返回值,否则可能会出现报错。函数名和参数名的取名规则与前面所讲的变量名一致(回忆入口有细心朋友可能发现,在使用有些函数时()中是没有添加任何值的,比如 getchar()函数。

2301_80038875的博客 1088

【C语言】函数之要

定义域里横陈着花括号的界桩,如同商鞅变法时立在城门的丈量木,任谁跨过门槛都得按着规矩削足适履。类型转换暗藏铸剑师的把戏,当char遇上int,如同将匕首回炉重铸成长剑,剑柄的纹路里还留着淬火时的青烟。函数自刎时需留三分剑意,在栈帧筑起的往生塔中,每层都供奉着前世的形参牌位。va_list是占星师的水晶球,在秘术要求调用者与函数立血契:第一个参数必须是显式的北斗七星,后续变参才得在内存银河里寻得归处。qsort里的比较函数,实为刑部尚书的惊堂木,决定数据囚徒的排序牢位。(终章以编译器告喻作结)

weixin_43714713的博客 1689

【C语言】第五章 函数

该文章内容整理自《C程序设计(第四版)》、《高质量C编程指南》、以及网上各大博客 文章目录函数定义变量存储内部函数和外部函数 一个C程序有多个程序模块组成,每个程序模块作为一个源程序文件,一个源程序文件是一个编译单位 函数定义 函数声明(由函数首部,即函数原型表示): 类型名 函数(形参表列); 函数声明主要用于对函数调用的合法性进行检查。此时,参数名可以省略,也即可写为float add(float, float);。另外形参数组可以不指定大小,直接在后面添加方括号,而多维数组时可以省略第一维的大小,剩下

Flowers_for_Algernon的博客 405

C语言教程第五章:函数

概述  在第一章中已经介绍过,C源程序是由函数组成的。 虽然在前面各章的程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独

~缘份天空~ 922

C语言——第五章:函数

文章目录一.概述1.从函数定义角度可分为库函数和用户定义函数2.从函数兼容性角度可分为有返回值函数和无返回值函数3.从主调和被调函数的数据传送角度可分为无参函数和有参函数4.库函数可从功能角度作出分类二.函数定义的一般形式1.无参函数的一般形式2.有参函数的一般形式三.函数的参数和函数的值1.函数的参数2.函数的值四.数组名作为函数参数五.函数的嵌套调用六.函数的递归调用七.变量的作用域1.局部变量2.全局变量八.变量的存储方式可分为静态存储和动态存储1.自动变量的类型说明符为auto2.外部变量的类型说明

maochaofei的博客 820

(C语言教程)第五章:函数

第五章:函数 概述  在第一章中已经介绍过,C源程序是由函数组成的。 虽然在前面各章的程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编

ctohac的专栏 1689

C语言教程第五章:函数2

概述  在第一章中已经介绍过,C源程序是由函数组成的。 虽然在前面各章的程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独

gzblog的专栏 947
上一篇: 第五章-c语言函数
下一篇: 第五章-下-c语言中的变量分析
百知_zmj
博客等级 码龄8年 590粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值