c语言基础笔记08

【C语言基础学习笔记】一、初始C语言(3) 说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(比如吐槽:这作者咋这样呀,这么简单的还要敲代码验证,真菜呀!…我:好吧,我不装了,我摊牌了,我确实菜,真的菜,咋滴啦,还不允许初学者菜呀!) EOF-- - end of file 文件结束标志 值: - 1 提示:本小结是初始C语言最后一小部分内容,之后会有一个初始C语言总结的文章,包含初始C语言(1)(2)(3)复习专用的思维导图,一些用于编程练习的ca 阅读详情

本部分包含函数的嵌套调用和链式访问、以及函数的递归。

练习题4道:1.函数的递归练习:接受一个整型值(无符号),按照顺序打印它的每一位。2.编写函数不允许创建临时变量,求字符串的长度。3.求n的阶乘。(不考虑溢出)4.求第n个斐波那契数。(不考虑溢出)

笔记:

 图片(c语言笔记).

文字(基于c++修改后的c语言笔记).

  • 6 函数
    • 6.1 概述
      • 作用:将一段经常使用的代码封装起来,减少重复代码
      • 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。
    • 6.2 函数的定义
      • 函数的定义一般主要有5个步骤:
        • 1、返回值类型
        • 2、函数名
        • 3、参数表列
        • 4、函数体语句
        • 5、return 表达式
      • 语法:
        • 图示:

        • 返回值类型 :一个函数可以返回一个值。在函数定义中
        • 函数名:给函数起个名称
        • 参数列表:使用该函数时,传入的数据
        • 函数体语句:花括号内的代码,函数内需要执行的语句
        • return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据
    • 6.3 函数的调用
      • 功能:使用定义好的函数
      • 语法:函数名(参数)
      • 参数列表里的变量叫形式参数,简称形参
        • int add(int num1, int num2)//定义中的num1,num2称为形式参数,简称形参
      • 调用时的变量称为实际参数,简称实参
        • int sum = add(a, b);//调用时的a,b称为实际参数,简称实参
      • 总结:函数定义里小括号内称为形参,函数调用时传入的参数称为实参
    • 6.4 值传递
      • 所谓值传递,就是函数调用时实参将数值传入给形参
      • 值传递时,如果形参发生改变,并不会影响实参
      • 注意:如果函数不需要返回值,定义返回值类型时可以学void
      • 总结: 值传递时,形参是修饰不了实参的
    • 6.5 函数的常见样式
      • 常见的函数样式有4种
      • 无参无返
      • 有参无返
      • 无参有返
      • 有参有返
    • 6.6 函数的声明
      • 意义:函数声明后,可以在main主方法后面编译函数的具体内容。
      • 作用: 告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
      • 函数的声明可以多次,但是函数的定义只能有一次
    • 6.7 函数的分文件编写
      • 作用:让代码结构更加清晰
      • 函数分文件编写一般有4个步骤
        • 创建后缀名为.h的头文件
        • 创建后缀名为.cpp的源文件
        • 在头文件中写函数的声明
        • 在源文件中写函数的定义

 代码:

add.h头文件


void Add(int x, int y);

void Addprint();

add.c源文件

#include<windows.h>
#include <stdio.h>

void Add(int x, int y)
{
	printf("结果为:%d", x + y);

}
void Addprint()
{
	printf("下面进行加法运算\n");
	Sleep(1000);
}

源.c源文件

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
#include "add.h"


//函数的递归练习:接受一个整型值(无符号),按照顺序打印它的每一位。
void print(unsigned int num)
{
	if (num > 9)
	{
		print(num / 10);
	}
	printf("%d ", num%10);
}

//编写函数不允许创建临时变量,求字符串的长度。
int my_strlen(char*	p)
{
	if (*p != 0)
		return 1 + my_strlen(p + 1);
	else
		return 0;
}


int factorial(int n)
{
	if (n >= 1)
		return n * factorial(n - 1);
	else
		return 1;
}

int Fib(int n)
{
	if (n > 2)
		return Fib(n - 1) + Fib(n - 2);
	else if (n <= 2)
		return 1;
}

int main()
{
	//函数的嵌套调用和链式访问
	int x = 0;
	int y = 0;

	printf("输入两个数相加\n");
	scanf("%d %d", &x, &y);
	Add(x, y);

	//函数的递归
	//main();//死递归
	//函数的递归练习:接受一个整型值(无符号),按照顺序打印它的每一位。
	unsigned int num = 0;
	scanf("%d", &num);
	print(num);

	//编写函数不允许创建临时变量,求字符串的长度。
	char arr1[] = "hello";
	printf("%s的字符串长度为%d.", arr1, my_strlen(arr1));

	//求n的阶乘。(不考虑溢出)
	int n = 0;
	printf("输入n,求n的阶乘:");
	scanf("%d", &n);
	printf("值为%d", factorial(n));

	//求第n个斐波那契数。(不考虑溢出)
	int n = 0;
	printf("输入n,求n的斐波那契数:");
	scanf("%d", &n);
	printf("值为%d", Fib(n));

}

【C语言基础学习笔记】一、初始C语言(1) 说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(比如吐槽:这作者咋这样呀,这么简单的还要敲代码验证,真菜呀!…我:好吧,我不装了,我摊牌了,我确实菜,真的菜,咋滴啦,还不允许初学者菜呀!) 1.第一个c语言程序 #include<stdio.h> int main() { printf("hello world!\n"); return 0; } //所有的c语言程序都有相同的一个框架 int 阅读详情

相关推荐

【C语言基础一百题1】C语言基础100题全新整理版

最后一个寒假,想复习一下c语言的基础知识,正好也做一个查缺补漏的工作,于是找个C语言基础100题作为练习。 但是原来的100题涉及很多绘图的问题,而且有些题目过于混乱并且在摘记过程中没有经过加工,所以我自己对原来的题目做了一下调整并且删掉了原来的绘图的题目,在原来题目涉及不多的地方增加了新的题目,新题目多取自谭老的《C语言程序设计》完全可以在VC++6.0环境下运行,100道题目,基本涉及到C语言知识点的所有方面。 虽然都是基础的题目,但在整个总结的过程中也发现了自己很多问题,自我解决问题的过程也是自己

ぁ風雲變色ぁ 2万+

函数实验:编写5个函数分别用来求两个整数的加、减、乘、除及取余数。制作一个菜单,列出这5种运算,以便让用户能够用输入运算符的方法选择进行的运算。

#include <stdio.h> add(int x,int y) { printf("%d\n",x+y); } sub(int x,int y) { printf("%d\n",x-y); } cheng(int x,int y) { printf("%d\n",x*y); } chu(int x,int y) { printf("%d\n",x/y); } quyu(int x,int y) { printf("%d\n",x%y); } meau() { int x,y;

iKUNqa的博客 3460

C语言基础知识入门大全

C语言入门知识

#@学生小羊的博客 3718

【C/C++】用回调函数实现计算器

一、问题概述 用C语言实现一个简易计算器,可以用来实现加减乘除的功能 二、问题分析 这个问题大可用switch,case语句实现 但是这里我们用一种比较高大上的方法 函数指针和指针数组中   回调函数   三、代码实现 #include void Add(int x,int y) { printf("%d\n",x+y); } void Sub(int x,int y) {

皓皓松的博客 1646

黑马程序员——C语言基础教程笔记

黑马程序员——C语言基础教程笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录黑马程序员——C语言基础教程笔记前言Day-11.C语言概论1.1 什么是C语言1.1.1 C语言特点1.1.2 学习C语言的理由1.1.3 发展方向1.1.4 C语言中的关键字2.3.Day-21.引入库2.读入数据总结 前言 研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun.

BinHeon的博客 6765

第一讲,c语言基础

1. C语言是一种(还有C++、python、java等),用于人与计算机进行交流。2. C语言是一种,必须通过编译器编译和链接器链接,生成二进制的可执行文件。3. 简单理解:人们通过计算机语言在特定的编译器写程序,由编译器转化成计算机可识别的二进制文件,给计算机下达指令,让计算机工作。

yn0403的博客 1万+

c语言基础笔记07

本部分包含函数的概念,库函数,自定义函数的定义,函数的调用&参数。

Hoghst_debug的博客 280

零基础也能懂的Arduino ESP32离线安装包图文教程

手把手教你完成Arduino ESP32离线安装包的配置,无需联网也能快速搭建开发环境,适合初学者和网络受限用户,轻松实现arduino esp32离线安装包部署。

weixin_36213081的博客 2673

C语言基础:第08天笔记

数组是相同类型,有序数列的集合。语法:类型说明符/数据类型 数组名[数组容量]说明:数组的类型说明符由数组中的元素来决定,类型说明符也就是数据类型,元素是什么类型,数组就是什么类型。同一个数组中所有元素的类型都是一致的。数组名也是标识符,我们所说的数组(名),大家可以理解为数据类型是数组的变量(名)。命名规则与变量名相同。遵循标识符命名规则(标识符命名规则:不能以数字开头,只能包含数字、字母、下划线)。

bsbsjsns的博客 506

SoC设计中的RDC陷阱:如何避免异步复位导致的亚稳态问题

本文深入探讨了SoC设计中由异步复位引发的复位域交叉(RDC)陷阱及其导致的亚稳态风险。通过分析实际案例,文章系统性地提出了以同步复位优先、异步复位同步释放为核心的设计原则,并介绍了电路级加固与验证策略,为构建稳健的SoC复位架构提供了实用指南。

weixin_29280657的博客 419

别再为数码管引脚发愁了!用STM32的普通IO口驱动TM1650数码管模块(附完整模拟I2C代码)

本文详细介绍了如何利用STM32的普通IO口通过模拟I2C协议驱动TM1650数码管模块,提供了完整的硬件连接方案和软件实现代码。通过模拟I2C技术,开发者可以灵活使用任意GPIO引脚控制多位数码管显示,解决了传统驱动方式占用大量IO资源的问题。文章包含TM1650寄存器解析、亮度控制等实用功能实现,并分享了常见问题排查与性能优化技巧。

weixin_30764771的博客 659

学习笔记—C语言基础篇08

一、结构体(struct) typedef struct Stu //结构体名称 {      //结构体成员; }stu; 结构体嵌套 tyoedef struct St1 { char a[10]; char* b; int c; short d; double f; }st1; typedef struct St2 {

浮生 若梦 327

[Linux]双网卡 CentOS 系统中指定网络请求走特定网卡的配置方法

本文详细介绍了在双网卡CentOS系统中指定特定域名/IP通过指定网卡传输流量的方法。核心步骤包括:1)确认网卡信息(ip addr)和域名IP解析(nslookup);2)添加临时路由(ip route add);3)持久化配置(创建route-eth1文件);4)验证配置(ip route show和curl测试)。文章还提供了网关查询、路由删除等常见问题的解决方法,并区分了不同CentOS版本重启网络服务的命令差异。通过合理配置路由规则,可实现流量的定向传输需求。

wingaso的博客 1572

C语言基础知识复习笔记08:数据在内存中的存储

数据的存储

qq_57030936的博客 928

面向企业架构师的 SAP BTP 全景实践:多云、账户、运行时与端到端开发路径

摘要:SAP BTP为企业提供多云、多运行时(Cloud Foundry/Kyma/ABAP Cloud)的数字化转型平台,支持快速构建扩展应用。关键选择包括:1)根据合规与性能选择区域;2)区分Trial(90天限制)与Free Tier(无期限)方案;3)按场景选择运行时(CF适合微服务/Kyma适合云原生/ABAP Cloud适合S/4HANA扩展)。建议优先使用Free Tier进行POC,并通过BTP Cockpit统一管理,实现从验证到生产的平滑过渡。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 253

FastGPT智能体开发:FastGPT OpenAPI 知识库接口

FastGPT OpenAPI 知识库接口

王国平的博客 323

iOS开发之c语言基础Lesson-08 指针 上课笔记 与 试题练习

1 ////////////////Lesson 08 指针 课堂笔记 与练习///////////// 2 3 //指针:本质是一个指针变量,只不过该变量用来存储地址。 4 //地址:内存单元的编号,也是一个数,只不过是以0x开头的十六进制数。 5 6 // int a = 10; 7 // ...

weixin_30699741的博客 121

[QMT量化交易小白入门]-二十八、有了回测年化收益好的策略,如何在QMT量化实盘呢(附python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 2927

C语言基础学习笔记

此博文是整理本人初入编程世界学习C语言的经历,零基础想学习C语言的可参考本文的学习方式,内容包含视频+笔记+思维导图总结,根据视频资源编写自己见解的学习笔记,再从笔记中提炼总结思维导图。笔记看得云里雾里是正常的,一是需要配合视频,二是因为写笔记时是想到哪里记到哪里,每个人侧重点不同,笔记仅供参考。

weixin_45068267的博客 2129

Vue3 - 实现用户上传本地视频文件到服务器+上传进度条+暂停续传+中断取消上传等,视频上传后可在线播放预览已上传的视频,视频文件上传视频回显示例代码(支持Element、Antd等upload组件

实现视频上传和视频预览,vue3实现视频上传功能,上传视频回显,视频流上传播放功能,vue与axios上传视频并显示上传进度,upload组件实现视频文件上传视频回显,upload组件实现视频上传及进度条展示,视频上传及实时进度条显示,视频上传过程中如何中断上传,VUE3+element 上传视频,大文件分片上传+断点续传,axios大文件切片上传,Vue3上传视频后如何播放预览,上传本地视频到后端服务器及在线预览播放视频+移除视频+进度条上传,将已选视频上传服务端并可预览视频,详细实现选择视频并上传到服务

🏆 前端领域优质创作者 3114

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C语言基础笔记(全)

printf函数可以输出各种类型的数据,包括整型、浮点型、字符型、字符串型等,实际原理是printf函数将这些类型的数据格式化为字符串后,放入标准缓冲区,然后将结果显示到屏幕上printf函数根据format给出的格式打印输出到stdout(标准输出)和其他参数中代码格式%c字符%d带符号整数%f浮点数%s一串字符%u无符号整数%x无符号十六进制数,用小写字母%X无符号十六进制数,用大写字母%p一个指针%%一个'%'符号。

señoritaw的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【C语言基础学习笔记】+ 【C语言进阶学习笔记】总结篇(坚持才有收获!)

【C语言基础学习笔记系列】 【C语言基础学习笔记】一、初始C语言(1) 【C语言基础学习笔记】一、初始C语言(2) 【C语言基础学习笔记】一、初始C语言(3) 【C语言基础学习笔记】一、初始C语言(总结篇) 【C语言基础学习笔记】二、分支与循环语句(1) 【C语言基础学习笔记】二、分支与循环语句(2) 【C语言基础学习笔记】二、分支与循环语句(3) 【C语言基础学习笔记】三、函数(1) 【C语言基础学习笔记】三、函数(2)— 函数递归详解 【C语言基础学习—三子棋游戏】(包含详细讲解+优化策略及实现) 【C

大家好我叫张同学 7814

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C 语言基础笔记 p1

起源:1972 年由丹尼斯・里奇(Dennis Ritchie)在贝尔实验室开发,最初用于编写 UNIX 操作系统。特点面向过程的编程语言,结构化强,逻辑清晰。高效性:接近底层硬件,执行速度快,适合系统级开发。可移植性:代码能在不同平台(Windows、Linux、Mac)上运行(需重新编译)。功能强大:支持指针、位运算等底层操作,是很多高级语言的基础(如 Python、Java 的底层部分用 C 实现)。应用场景:操作系统、嵌入式开发、驱动程序、游戏引擎、数据库等。c运行。

cindddwww的博客 2258

C语言基础知识笔记——万字学习记录

Hi,大家好,我是半亩花海。本文主要参考浙大翁恺老师的C语言讲解以及其他博主的C语言学习笔记,进而梳理C语言的基础知识,为后续系统性学习数据结构和其他语言等知识夯实一定的基础。

沉思默想,深度学习,半亩星河半亩月,半亩花海半亩云。 2612

C语言基础笔记

/ 定义数组int arr[5];// 初始化数组// 省略大小的初始化指针是存储另一个变量内存地址的变量。int *p;// 定义一个指向整型的指针char *cp;// 定义一个指向字符型的指针float *fp;// 定义一个指向浮点型的指针// 定义一个表示学生的结构体int age;float gpa;

weixin_74748597的博客 1157

C语言基础语法汇总

C语言基础语法汇总

qq_46332212的博客 4183
上一篇: c语言基础笔记07
下一篇: c语言基础学习09
Ohrkaninchen
博客等级 码龄5年 18粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohrkaninchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值