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

【初学者入门C语言】之函数

函数

1.说明

函数分为自定义函数和库函数,库函数就比如我们前面所说的sqrt();需要声明math.h头文件,调用该函数就可实现求平方根的功能,如果我们想要的功能库函数没有,那就需要用到自定义函数了。

2.用处

将程序分解成更小的块,便于检查;降低理解难度,提高程序质量;减小程序体积,提高代码可重用性;

3.函数的定义

1.格式

返回值类型 函数名(类型1 形参名1,类型2 形参名2.......){

}

返回值类型如果是int型那么函数内容里的最后必须返回一个符合函数返回值类型的值,void型则不需要返回值。

2.形参

形参全名形式参数,又称虚拟变量。实参和形参可以重名。形参只是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。必须注意实参的个数,类型应与形参一一对应。

3.实参

实参全名实际参数,在调用函数时()里写的是实参,实参可以是常量、变量、表达式或者函数。需要注意的是,在进行函数调用时,这些实参必须要有明确的值。

参数传递的本质就是用实参来初始化形参而不是替换形参

4.举例

写一个求和的函数,需要返回求和的值就用int型,如果只需要输出,那么用void函数也行,在函数里直接输出

int型:

函数部分:

int sum(int x, int y) { int sum=x+y; return sum; }

int sum(int x, int y) { return x + y; }

代码实现:

代码语言:javascript

AI代码解释

#include <stdio.h> int sum(int x, int y); int main() { int x, y; scanf("%d%d", &x, &y); printf("%d", sum(x, y)); return 0; } int sum(int x, int y) { return x + y; }

执行结果:

void型:

函数部分:

void sum(int x, int y) { printf("%d", x + y); }

代码实现:

代码语言:javascript

AI代码解释

#include <stdio.h> void sum(int x, int y); int main() { int x, y; scanf("%d%d", &x, &y); sum(x, y); return 0; } void sum(int x, int y) { printf("%d", x + y); }

执行结果:

需要注意的是int型的函数会返回值,所以就把它当做一个值赋给别人或输出,而void型就直接当做单独的语句后面加分号执行

4.函数的声明

main函数是执行代码的入口,执行到我们定义的函数,上面却没有声明,那么就会不认识它。就像我们在使用库函数,也要声明math.h头文件一样。

声明格式:

函数返回类型 函数名(这里要和定义函数时保持一致);

5.小试牛刀

1.题目

输入某班学生C语言课程的成绩(具体人数由用户键盘输入),用函数编程统计优秀人数(分数大于80分)。

2.代码

代码语言:javascript

AI代码解释

#include "stdio.h" int count(int b[100], int c); int main() { int n, s; int stu[100]; printf("请输入学生总人数:"); scanf("%d", &n); printf("请输入成绩:\n"); for (int i = 0; i < n; i++) { scanf("%d", &stu[i]); } s = count(stu, n); printf("优秀人数为:%d\n", s); return 0; } int count(int b[100], int c) { int t = 0; for (int i = 0; i < c; i++) { if (b[i] >= 80) { t++; } } return t; }
3.执行结果

各位C语言的初学者有问题随时都可以问我,随时为您解惑!!!

http://www.jsqmd.com/news/468817/

相关文章:

  • 开源工具cursor-free-vip:突破Cursor功能限制的开发效率增强指南
  • MinIO 社区版被故意阉割,Web管理功能全面移除,来试试国产的RustFS?
  • CW2015电源管理芯片避坑指南:常见问题与解决方案
  • 行测高频成语:安之若素
  • YOLOv8训练-推理一体化:全流程部署指南
  • 养龙虾迅速走红!OpenClaw部署保姆级教程,两步解锁专属龙虾AI助理!
  • 机器人开发工程师:技术核心、挑战与人才甄选
  • 看了500份简历,被HR淘汰的就这3个问题!
  • Nodemailer使用教程:在Node.js中发送电子邮件
  • 3月12日(进阶4)
  • Redis 平替来了!SpringBoot 集成 Dragonfly,性能暴涨 25 倍
  • 今年NVIDIA GTC,将会是VLA、端到端和WAM的高光时刻
  • 请介绍下 C++ 模板中的 SFINAE?它的原则是什么?
  • Flutter 三方库 common_locale_data 的鸿蒙化适配指南 - 实现具备全球化区域元数据与多语言辅助能力的底层数据池、支持端侧国际化业务的精细化治理实战
  • 好奇Clawhub/Skillhub上的插件/Skills(案例一)
  • CMakeLists.txt配置详细介绍
  • openclaw使用笔记,如何启动
  • 图文手把手!小艺接入 OpenClaw 超简单
  • 0311晨间日记
  • 周鸿祎回应“龙虾安全”争议:它是好东西绝非病毒,不发展才是最大安全隐患
  • 搜维尔科技:使用Manus Pro数据手套在实验室远程操控22自由度机械手
  • Flutter 三方库 serial_csv 的鸿蒙化适配指南 - 实现极速的流式 CSV 数据编解码、支持端侧超大规模表格数据的高效序列化实战
  • Flutter 三方库 system_shortcuts 的鸿蒙化适配指南 - 实现快速触发系统级快捷功能、支持 WiFi 开关、亮度调节与系统设置一键直达
  • 小团队开发小 web 项目,使用 PHP 还是 next.js ?
  • python flask django美食短视频分享交流社区系统
  • Matplotlib:tick_params的用法
  • JAVA按模版导出Word文档(无需转换word格式)
  • 50个深蹲,就能练遍整个下半身!
  • 搜维尔科技:SenseGlove R1专为无缝控制人形机器人手而设计,融合了主动力反馈、毫米级手指追踪精度和振动触觉反馈
  • 2026年,济南联想信创服务器供应商究竟哪家强?最新评测为你揭晓答案!