C++ 函数类型及实用例题

请各位大佬一键三连支持一下

目录

请各位大佬一键三连支持一下

1. 无参数无返回值函数

2. 有参数无返回值函数

3. 无参数有返回值函数

4. 有参数有返回值函数

5. 函数重载

6. 递归函数

7. 带默认参数的函数

8. 内联函数


下面我将介绍 C++ 中不同类型的函数,并为每种类型提供实用的例题和解答。

1. 无参数无返回值函数

cpp

#include <iostream>
using namespace std;// 函数声明
void greet();int main() {greet(); // 函数调用return 0;
}// 函数定义
void greet() {cout << "欢迎使用本程序!" << endl;
}

例题:编写一个函数,打印一个由星号(*)组成的 5x5 正方形。

cpp

void printSquare() {for(int i = 0; i < 5; i++) {for(int j = 0; j < 5; j++) {cout << "* ";}cout << endl;}
}

2. 有参数无返回值函数

cpp

void printTable(int num) {for(int i = 1; i <= 10; i++) {cout << num << " x " << i << " = " << num*i << endl;}
}int main() {printTable(5); // 打印5的乘法表return 0;
}

例题:编写一个函数,接收一个整数n,打印n行的金字塔图案。

cpp

void printPyramid(int n) {for(int i = 1; i <= n; i++) {// 打印空格for(int j = 1; j <= n-i; j++) {cout << " ";}// 打印星号for(int k = 1; k <= 2*i-1; k++) {cout << "*";}cout << endl;}
}

3. 无参数有返回值函数

cpp

int getRandomNumber() {return rand() % 100; // 返回0-99的随机数
}int main() {int num = getRandomNumber();cout << "随机数: " << num << endl;return 0;
}

例题:编写一个函数,返回当前系统时间的小时数。

cpp

#include <ctime>int getCurrentHour() {time_t now = time(0);tm *ltm = localtime(&now);return ltm->tm_hour;
}

4. 有参数有返回值函数

cpp

int max(int a, int b) {return a > b ? a : b;
}int main() {cout << "较大的数是: " << max(10, 20) << endl;return 0;
}

例题:编写一个函数,计算两个数的最大公约数(GCD)。

cpp

int gcd(int a, int b) {while(b != 0) {int temp = b;b = a % b;a = temp;}return a;
}

5. 函数重载

cpp

// 计算整数的平方
int square(int x) {return x * x;
}// 计算浮点数的平方
double square(double x) {return x * x;
}int main() {cout << "整数的平方: " << square(5) << endl;cout << "浮点数的平方: " << square(5.5) << endl;return 0;
}

例题:重载函数计算面积,分别处理圆形、矩形和三角形。

cpp

const double PI = 3.14159;// 圆形面积
double area(double radius) {return PI * radius * radius;
}// 矩形面积
double area(double length, double width) {return length * width;
}// 三角形面积
double area(double base, double height, char) {return 0.5 * base * height;
}

6. 递归函数

cpp

int factorial(int n) {if(n <= 1) return 1;return n * factorial(n-1);
}int main() {cout << "5的阶乘是: " << factorial(5) << endl;return 0;
}

例题:编写递归函数计算斐波那契数列的第n项。

cpp

int fibonacci(int n) {if(n <= 1) return n;return fibonacci(n-1) + fibonacci(n-2);
}

7. 带默认参数的函数

cpp

void printInfo(string name, int age = 18, string country = "中国") {cout << "姓名: " << name << endl;cout << "年龄: " << age << endl;cout << "国家: " << country << endl;
}int main() {printInfo("张三"); // 使用默认年龄和国家printInfo("李四", 25); // 使用默认国家printInfo("王五", 30, "美国"); // 不使用任何默认值return 0;
}

例题:编写计算幂的函数,默认指数为2。

cpp

double power(double base, int exponent = 2) {double result = 1.0;for(int i = 0; i < exponent; i++) {result *= base;}return result;
}

8. 内联函数

cpp

inline int cube(int x) {return x * x * x;
}int main() {cout << "3的立方是: " << cube(3) << endl;return 0;
}

例题:编写内联函数判断一个数是否为偶数。

cpp

inline bool isEven(int num) {return num % 2 == 0;
}

这些例题涵盖了C++函数的主要类型和用法,通过练习这些例题,你可以更好地理解和掌握C++函数的使用。

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

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

相关文章

AtCoder Beginner Contest 404 A-E 题解

还是ABC好打~比ARC好打多了&#xff08; 题解部分 A - Not Found 给定你一个长度最大25的字符串&#xff0c;任意输出一个未出现过的小写字母 签到题&#xff0c;map或者数组下标查询一下就好 #include<bits/stdc.h>using namespace std;#define int long long #def…

trae ai编程工具

Trae&#xff0c;致力于成为真正的 AI 工程师&#xff08;The Real Al Engineer&#xff09;。Trae 旗下的 AI IDE 产品&#xff0c;以智能生产力为核心&#xff0c;无缝融入你的开发流程&#xff0c;与你默契配合&#xff0c;更高质量、高效率完成每一个任务。 版本差异 国内…

Web 架构之前后端分离

文章目录 思维导图一、引言二、前后端分离的概念代码示例&#xff08;简单的前后端分离交互&#xff09;后端&#xff08;使用 Python Flask 框架&#xff09;前端&#xff08;使用 JavaScript 和 jQuery&#xff09; 三、前后端分离的优势3.1 提高开发效率3.2 代码可维护性增强…

理解 Elasticsearch 的评分机制和 Explain API

作者&#xff1a;来自 Elastic Kofi Bartlett 深入了解 Elasticsearch 的评分机制并探索 Explain API。 想获得 Elastic 认证吗&#xff1f;查看下一期 Elasticsearch Engineer 培训的时间&#xff01; Elasticsearch 拥有大量新功能&#xff0c;帮助你为你的使用场景构建最佳…

Jupyter Notebook / Lab 疑难杂症记:从命令找不到到环境冲突与网络阻塞的排查实录

Jupyter Notebook / Lab 疑难杂症记&#xff1a;从命令找不到到环境冲突与网络阻塞的排查实录 摘要&#xff1a; 本文记录了一次复杂的 Jupyter Notebook / Lab 故障排查过程。从最初的“command not found”错误出发&#xff0c;我们深入挖掘了可执行文件存在的矛盾、conda 环…

C++之set和map的运用

目录 序列式容器和关联式容器 熟识set 在STL中的底层结构&#xff1a; set的构造和迭代器 set的增删查 multiset和set的差异 练习题&#xff1a; 熟识map map类的介绍 pair类型介绍 map的构造 map的增删查 map的数据修改 测试样例&#xff1a; multimap和map的差…

【Bluedroid】蓝牙 SDP(服务发现协议)模块代码解析与流程梳理

本文深入剖析Bluedroid蓝牙协议栈中 SDP&#xff08;服务发现协议&#xff09;服务记录的全生命周期管理流程&#xff0c;涵盖初始化、记录创建、服务搜索、记录删除等核心环节。通过解析代码逻辑与数据结构&#xff0c;揭示各模块间的协作机制&#xff0c;包括线程安全设计、回…

【实战项目】简易版的 QQ 音乐:一

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能自我实现简易版的 QQ 音乐。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a…

Linux_进程退出与进程等待

一、进程退出 ‌退出场景‌ ‌正常终止‌&#xff1a;代码执行完毕且结果符合预期&#xff08;退出码为 0&#xff09;。‌异常终止‌&#xff1a;运行结果错误&#xff08;退出码非 0&#xff09;或进程被信号强制终止。&#xff08;如 SIGINT 或 SIGSEGV&#xff09;。 ‌退…

GD32F407单片机开发入门(二十八)USB口介绍及CDC类虚拟串口通讯详解及源码

文章目录 一.概要二.USB2.0基本介绍及虚拟串口介绍三.GD32单片机USB模块框图四.GD32单片机USB设备模式五.GD32F407VET6 USB设备CDC类六.配置一个USB虚拟串口收发例程七.工程源代码下载八.小结 一.概要 GD32F407VET6USB虚拟串口是一种采用GD32F407VET6单片机&#xff0c;通过US…

MySQL 主从配置超详细教程

文章目录 前言一、安装 MySQL二、主服务器&#xff08;Master&#xff09;配置三、从服务器&#xff08;Slave&#xff09;配置四、测试主从复制五、注意事项 前言 MySQL 主从配置是一种实用的数据库架构&#xff0c;主服务器处理写入操作&#xff0c;从服务器负责只读操作&am…

Python爬虫实战:获取百度学术专题文献数据并分析,为读者课题研究做参考

一、引言 在信息爆炸的当下,学术研究需要大量相关资料支撑。百度学术作为重要学术资源平台,蕴含丰富学术文献。利用爬虫技术获取百度学术特定主题文章数据,能为学术研究提供全面、及时信息。本研究旨在用 Python 实现对百度学术 “主题爬虫” 相关文章的爬取,并对数据深入…

手撕基于AMQP协议的简易消息队列-6(服务端模块的编写)

在MQServer中编写服务端模块代码 在MQServer中编写makefile文件来编译服务端模块 .PHONY: server CFLAG -I../ThirdLib/lib/include LFLAG -L../ThirdLib/lib/lib -lgtest -lprotobuf -lsqlite3 -pthread -lmuduo_net -lmuduo_base -lz server:server.cpp ../MQCommon/messag…

linux tar命令详解。压缩格式对比

1.压缩格式对比 压缩格式命令选项文件扩展名压缩率速度无压缩-cvf.tar无最快gzip-czvf.tar.gz中等较快bzip2-cjvf.tar.bz2较高较慢xz-cJvf.tar.xz最高最慢 9. 更多参考 【Linux基础】文件压缩tar命令指南tar压缩方式对比

解锁跨平台开发的新时代——Compose Multiplatform

解锁跨平台开发的新时代——Compose Multiplatform 在当今移动和桌面应用程序开发领域,跨平台解决方案是开发者们梦寐以求的工具。而由JetBrains打造的Compose Multiplatform正是这样一款现代UI框架,它基于Kotlin技术,为开发者构建高性能且美观的用户界面提供了极大的便利和…

【算法学习】递归、搜索与回溯算法(二)

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在&#xff08;一&#xff09;中我们挑了几个经典例题&#xff0c;已经对递归、搜索与回溯算法进行了初步讲解&#xff0c;今天我们来进一步讲解…

HTTP请求与缓存、页面渲染全流程

文章目录 前言**1. HTTP请求与缓存处理****缓存机制**• 强缓存&#xff08;Cache-Control / Expires&#xff09;• 协商缓存&#xff08;Last-Modified / ETag&#xff09; **2. 服务器响应与数据解析****3. HTML DOM 构建****4. CSSOM 构建****5. 渲染树&#xff08;Render …

限流算法学习笔记(一)Go Rate Limiter

文章目录 1. 背景与概述1.1 什么是速率限制1.2 Go Rate Limiter 的定义与价值 2. 核心思想与设计理念2.1 令牌桶算法的基本原理2.2 惰性评估设计2.3 多种处理策略的平衡2.4 简单易用的偶发控制 3. 架构设计与组件3.1 整体架构3.2 Limiter 组件3.3 Reservation 组件3.4 Limit 类…

n8n工作流自动化平台的实操:生成统计图的两种方式

1.成果展示 1.1n8n的工作流 牵涉节点&#xff1a;Postgres、Code、QuickChart、Edit Fields、HTTP Request 12.显示效果 2.实操过程 2.1节点说明 2.1.1Postgres节点&#xff1a; 注&#xff1a;将明细数据进行汇总。 2.1.2code节点&#xff1a; 注&#xff1a;将 查询的数…

JavaScript中数组和对象不同遍历方法的顺序规则

在JavaScript中&#xff0c;不同遍历方法的顺序规则和适用场景存在显著差异。以下是主要方法的遍历顺序总结&#xff1a; 一、数组遍历方法 for循环 • 严格按数组索引顺序遍历&#xff08;0 → length-1&#xff09; • 支持break和continue中断循环 • 性能最优&#xff0c;…