本课程属于船说系列课程之一,💰单课购买点这里
你也可以选择购买『船说系列课程-年度会员』产品『船票』,畅享期内无限制学习已上线的所有船说系列课程:
💰 船票1年期购买入口
💰 船票4年期购买入口
优惠券可以找Bili姐👩💻领取。姐的二维码:
🙋♂️哈喽各位同学,👏欢迎加入《船说:C语言全能实战课》的课程学习中来~
1️⃣ 本课程的开课日期为6月28日,课程节数为200+节,课程学习永久有效。
2️⃣ 做好课前准备,需自行注册以下刷题平台:
✅海贼OJ:https://oj.haizeix.com/
✅欧拉计划:https://projecteuler.net/
PS:无法访问欧拉原站,可不注册欧拉账号,使用中文替代站点看题:http://pe-cn.github.io/
3️⃣ 课程代码&讲义在下方,可以自取。
同时也在Github上线了所有代码:👉 https地址: https://github.com/huguangAOA/Bilibili-Clang.git
4️⃣ 课程内容更新上线后,船长都会在群内通知大家
5️⃣ 同学有问题的话可以咨询船长,老师会在看到后第一时间进行解答哦
有其他搞不明白的,可以找Bili姐
零基础掌握C语言核心知识,打开编程世界之门,轻松搞定期末考试
学习提要
- 学习课程时一定不要跳看课程,每节课都会有着不同的知识点。
- 配置学习环境的配置(必要),推荐配置Linux环境。
- 学习Linux环境的使用和一些Linux环境中常用的命令。
- 需要熟练掌握VIM编辑器(在Linux环境)的使用。
- 知道cppreference参考网站,在后续的学习中知道如何查询。
- 对于编码规范,根据船长的代码规范来规范自己的编码习惯。
授课PPT
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 理解什么是类型,什么是变量;
- 看完课程后有二进制,十六进制的概念,学会各种进制之间的转换;
- 记忆常用类型,以及他们的长度,字符类型需要记住常用的ASCII编码,例如'a' = 97;
- 学会使用printf和scanf,以及如何使用sscanf,sprintf函数;
- 学会使用基本运算符,并理解每个运算符的原理,对于运算符优先级,只要多写代码多尝试,就可以记住了;
- 记住常用的数学函数,以及他们的返回值类型是什么,以及如何使用;
- 看完船长对OJ题目的讲解后,通过自己再实现一次加强对代码的理解;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-2.5-常用数据类型:代码演示--1.types.c
- ACM金牌带你零基础直达C语言精通-2.6-printf函数的基本用法--2.printf.c
- ACM金牌带你零基础直达C语言精通-2.7-scanf函数的基本用法--3.scanf.c
- ACM金牌带你零基础直达C语言精通-2.8-随堂练习1:输出数字位数--4.test1.c
- ACM金牌带你零基础直达C语言精通-2.9-随堂练习2:读入带空格的字符串--5.string.c
- ACM金牌带你零基础直达C语言精通-2.9-随堂练习2:读入带空格的字符串--6.test2.c
- ACM金牌带你零基础直达C语言精通-2.10-sscanf和sprintf函数的讲解--7.sscanf.c
- ACM金牌带你零基础直达C语言精通-2.10-sscanf和sprintf函数的讲解--8.sprintf.c
- ACM金牌带你零基础直达C语言精通-2.11-随堂练习:给输出内容加一个框--9.test3.c
- ACM金牌带你零基础直达C语言精通-2.12-基本运算符--10.operator.c
- ACM金牌带你零基础直达C语言精通-2.13-位运算:讲解与演示--11.digit.c
- ACM金牌带你零基础直达C语言精通-2.14-运算符优先级讲解--12.assign.c
- ACM金牌带你零基础直达C语言精通-2.15-常用数学函数--13.math.c
- ACM金牌带你零基础直达C语言精通-2.16-随堂练习4-5:数学函数的使用--14.test4.c
- ACM金牌带你零基础直达C语言精通-2.16-随堂练习4-5:数学函数的使用--15.test5.c
- ACM金牌带你零基础直达C语言精通-2.17-如何在海贼OJ测试代码--16.HZOJ-1.c
- ACM金牌带你零基础直达C语言精通-2.18-三数的乘积:HZOJ-86--17.HZOJ-86.c
- ACM金牌带你零基础直达C语言精通-2.19-矩形面积与周长:HZOJ-87--18.HZOJ-87.c
- ACM金牌带你零基础直达C语言精通-2.20-取数位Ⅱ:HZOJ-90--19.HZOJ-90-1.c
- ACM金牌带你零基础直达C语言精通-2.20-取数位Ⅱ:HZOJ-90--20.HZOJ-90-2.c
- ACM金牌带你零基础直达C语言精通-2.21-交换两位数:HZOJ-95--21.HZOJ-95.c
- ACM金牌带你零基础直达C语言精通-2.22-求和2:HZOJ-97--22.HZOJ-97.c
- ACM金牌带你零基础直达C语言精通-2.23-计算各位和:HZOJ-101--23.HZOJ-101.c
- ACM金牌带你零基础直达C语言精通-2.24-注水问题:HZOJ-102--24.HZOJ-102.c
课代表笔记
C语言笔记:类型、运算符与表达式
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 明白什么是条件表达式,并熟练掌握每个关系系运算符;
- 学会如何使用if-else语句和switch语句,并且熟练掌握;
- 视频3.10附加内容,搞明白为什么分支结构会降低程序的执行效率;
- 学会while和for语句,并实际自己尝试利用这些语句去实现一些简单逻辑和题目;
- 学习如何使用goto语句,然后实现课程中的每个模拟;
- 理解五种类型语句,一定要理解到循环和分支后面控制的是那条语句;
- 看完课程题目后,一定要自己再去尝试敲一遍,通过自己的思路完成题目;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-3.2-条件表达式:编码演示--1.cond_expr.c
- ACM金牌带你零基础直达C语言精通-3.3-短路原则及编码技巧--2.and_or.c
- ACM金牌带你零基础直达C语言精通-3.5-if-else语句:代码演示--3.if_else.c
- ACM金牌带你零基础直达C语言精通-3.6-随堂练习1:题目讲解--4.test1.c
- ACM金牌带你零基础直达C语言精通-3.7-switch-case语句:基础讲解及代码演示--5.switch_case.c
- ACM金牌带你零基础直达C语言精通-3.8-随堂练习2、3:题目讲解--6.test2.c
- ACM金牌带你零基础直达C语言精通-3.8-随堂练习2、3:题目讲解--7.test3.c
- ACM金牌带你零基础直达C语言精通-3.9-一个月有多少天:HZOJ-113--8.HZOJ-113.c
- ACM金牌带你零基础直达C语言精通-3.12-while语句:代码演示--9.while.c
- ACM金牌带你零基础直达C语言精通-3.12-while语句:代码演示--10.do_while.c
- ACM金牌带你零基础直达C语言精通-3.13-随堂练习4:题目讲解--11.test4.c
- ACM金牌带你零基础直达C语言精通-3.14-for语句:基础讲解及代码演示--12.for.c
- ACM金牌带你零基础直达C语言精通-3.15-随堂练习5:题目讲解--13.test5.c
- ACM金牌带你零基础直达C语言精通-3.16-break与continue语句--14.break_continue.c
- ACM金牌带你零基础直达C语言精通-3.17-goto语句基础功能讲解--15.goto.c
- ACM金牌带你零基础直达C语言精通-3.18-使用goto语句模拟if-else功能--16.goto_if_else.c
- ACM金牌带你零基础直达C语言精通-3.19-使用goto语句模拟while功能--17.goto_while.c
- ACM金牌带你零基础直达C语言精通-3.20-使用goto语句模拟for功能--18.goto_for.c
- ACM金牌带你零基础直达C语言精通-3.21-详解:C语言中的【一条语句】--19.one_stmt.c
- ACM金牌带你零基础直达C语言精通-3.22-分支-课后实战题:第一讲--20.HZOJ-103.c
- ACM金牌带你零基础直达C语言精通-3.22-分支-课后实战题:第一讲--21.HZOJ-107.c
- ACM金牌带你零基础直达C语言精通-3.22-分支-课后实战题:第一讲--22.HZOJ-108.c
- ACM金牌带你零基础直达C语言精通-3.23-分支-课后实战题:第二讲--23.HZOJ-114.c
- ACM金牌带你零基础直达C语言精通-3.23-分支-课后实战题:第二讲--24.HZOJ-118.c
- ACM金牌带你零基础直达C语言精通-3.23-分支-课后实战题:第二讲--25.HZOJ-120.c
- ACM金牌带你零基础直达C语言精通-3.24-循环-课后实战题:第一讲--26.HZOJ-128.c
- ACM金牌带你零基础直达C语言精通-3.24-循环-课后实战题:第一讲--27.HZOJ-130.c
- ACM金牌带你零基础直达C语言精通-3.24-循环-课后实战题:第一讲--28.HZOJ-136.c
- ACM金牌带你零基础直达C语言精通-3.24-循环-课后实战题:第一讲--29.HZOJ-136.c
- ACM金牌带你零基础直达C语言精通-3.24-循环-课后实战题:第一讲--30.HZOJ-136.c
- ACM金牌带你零基础直达C语言精通-3.25-循环-课后实战题:第二讲--31.HZOJ-137.c
- ACM金牌带你零基础直达C语言精通-3.25-循环-课后实战题:第二讲--32.HZOJ-139.c
- ACM金牌带你零基础直达C语言精通-3.25-循环-课后实战题:第二讲--33.HZOJ-140.c
- ACM金牌带你零基础直达C语言精通-3.26-循环-课后实战题:第三讲--34.HZOJ-141.c
- ACM金牌带你零基础直达C语言精通-3.26-循环-课后实战题:第三讲--35.HZOJ-142.c
- ACM金牌带你零基础直达C语言精通-3.26-【补充】昨天和明天--36.HZOJ-119.c
课代表笔记
C语言笔记:控制流
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 理解作用域的基本概念,定义一个变量,它的作用的区域在哪儿在看完课程后可以自己判断;
- 理解为什么程序设计需要函数,以及函数的定义和使用以及声明;
- 对于函数中的形参和实参的区分,以及理解函数的定义和讲解;
- ❗需要熟练掌握递归函数的技巧,但是对于课程中短时间去学会可能会很困难,所以需要通过训练;
- ❗变参函数的学习,以及主函数的参数了解,这两个内容是非常重要的;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-4.1-作用域的基本概念--1.block.c
- ACM金牌带你零基础直达C语言精通-4.2-函数的定义与使用--2.function.c
- ACM金牌带你零基础直达C语言精通-4.3-为什么一定要有函数结构--3.sum.c
- ACM金牌带你零基础直达C语言精通-4.4-实参与形参:李逵与李鬼--4.param.c
- ACM金牌带你零基础直达C语言精通-4.5-函数的定义与声明--5.function_declear.c
- ACM金牌带你零基础直达C语言精通-4.6-递归函数:基础讲解--6.f_function.c
- ACM金牌带你零基础直达C语言精通-4.8-实现递归函数:欧几里得算法--7.gcd.c
- ACM金牌带你零基础直达C语言精通-4.10-【附加内容】递归函数设计:扩展欧几里得算法--8.ex_gcd.c
- ACM金牌带你零基础直达C语言精通-4.11-随堂练习1:令人为难的打印1到100--9.print_100.c
- ACM金牌带你零基础直达C语言精通-4.12-函数拓展1:变参函数--10.max_int.c
- ACM金牌带你零基础直达C语言精通-4.13-主函数也是有参数的!--11.main_2.c
- ACM金牌带你零基础直达C语言精通-4.13-主函数也是有参数的!--12.main_3.c
- ACM金牌带你零基础直达C语言精通-4.14-函数-课后实战题:第一讲--13.HZOJ-464.c
- ACM金牌带你零基础直达C语言精通-4.14-函数-课后实战题:第一讲--14.HZOJ-465.c
- ACM金牌带你零基础直达C语言精通-4.15-函数-课后实战题:第二讲--15.HZOJ-466.c
- ACM金牌带你零基础直达C语言精通-4.15-函数-课后实战题:第二讲--16.HZOJ-467.c
- ACM金牌带你零基础直达C语言精通-4.15-函数-课后实战题:第二讲--17.HZOJ-468.c
- ACM金牌带你零基础直达C语言精通-4.16-函数-课后实战题:第三讲--18.HZOJ-185.c
- ACM金牌带你零基础直达C语言精通-4.16-函数-课后实战题:第三讲--19.HZOJ-183.c
- ACM金牌带你零基础直达C语言精通-4.17-HZOJ-236递归实现组合型枚举--20.HZOJ-235.cpp
- ACM金牌带你零基础直达C语言精通-4.18-HZOJ-236递归实现组合型枚举--21.HZOJ-236.cpp
- ACM金牌带你零基础直达C语言精通-4.19-HZOJ-237递归实现排列型枚举--22.HZOJ-237.cpp
- ACM金牌带你零基础直达C语言精通-4.20-HZOJ-239不规则的街道--23.HZOJ-239.cpp
课代表笔记
C语言笔记:函数与程序结构
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 看完课程,需要有地址的概念,以及对十六进制的理解;
- ❗熟练掌握数组的定义和使用,以及对数组的地址的理解;
- 对于多维数组的理解,理解后可以熟练的使用,以及多维数组对应下标对应的是那个元素,以及地址如何求;
- ❗对于指针的理解, p + 1, *p,以及指针变量的场景和用途,取值是根据什么来进行取值的,指针偏移是如何进行偏移的;
- 指针的等价形式,这个不用去死记硬背,一定要去理解记忆再加上把疑问带到代码中去验证;
- 函数的指针的理解和运用,以及明白函数指针的用途,并理解数组和指针之间的转化;
- 对于内存管理,malloc和calloc是重点内容,这是必须学会和理解的函数,以及理解底层原理是怎么样的;
- 课程后小项目和题目讲解,看一遍,跟着船长做一遍,再自己下来做一遍;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-5.1-必须要知道的概念:【地址】--1.address.c
- ACM金牌带你零基础直达C语言精通-5.4-【代码演示】十六进制数字--2.hex.c
- ACM金牌带你零基础直达C语言精通-5.5-【地址】是一个几位的二进制数据?--3.address_len.c
- ACM金牌带你零基础直达C语言精通-5.6-数组的定义与使用--4.array.c
- ACM金牌带你零基础直达C语言精通-5.7-素数筛算法及代码演示--5.prime.c
- ACM金牌带你零基础直达C语言精通-5.8-二分查找算法及代码演示--6.binary_search.c
- ACM金牌带你零基础直达C语言精通-5.9-二分查找算法及代码演示--7.mult_array.c
- ACM金牌带你零基础直达C语言精通-5.11-字符串:代码演示--8.string.c
- ACM金牌带你零基础直达C语言精通-5.12-考研必考:数组的存储方式--9.row_col_array.c
- ACM金牌带你零基础直达C语言精通-5.13-数组-恪守实战题:第一讲--10.HZOJ-144.c
- ACM金牌带你零基础直达C语言精通-5.13-数组-恪守实战题:第一讲--11.HZOJ-144.c
- ACM金牌带你零基础直达C语言精通-5.13-数组-恪守实战题:第一讲--12.HZOJ-145.c
- ACM金牌带你零基础直达C语言精通-5.13-数组-恪守实战题:第一讲--13.HZOJ-146.c
- ACM金牌带你零基础直达C语言精通-5.14-数组-恪守实战题:第二讲--14.HZOJ-147.c
- ACM金牌带你零基础直达C语言精通-5.14-数组-恪守实战题:第二讲--15.HZOJ-148.c
- ACM金牌带你零基础直达C语言精通-5.14-数组-恪守实战题:第二讲--16.HZOJ-149.c
- ACM金牌带你零基础直达C语言精通-5.15-数组-恪守实战题:第三讲--17.HZOJ-150.c
- ACM金牌带你零基础直达C语言精通-5.15-数组-恪守实战题:第三讲--18.HZOJ-828.c
- ACM金牌带你零基础直达C语言精通-5.17-函数传递指针变量的场景和用途--19.pointer.c
- ACM金牌带你零基础直达C语言精通-5.17-函数传递指针变量的场景和用途--20.funtion_with_pointer.c
- ACM金牌带你零基础直达C语言精通-5.18-交换指针变量:HZOJ-881--21.HZOJ-881A.c
- ACM金牌带你零基础直达C语言精通-5.19-深入理解【p+1】操作--22.pointer_add_one.c
- ACM金牌带你零基础直达C语言精通-5.20-深入理解【*p】操作--23.pointer_get_value.c
- ACM金牌带你零基础直达C语言精通-5.21-随堂练习1:IP转换--24.test1.c
- ACM金牌带你零基础直达C语言精通-5.22-重要:指针的几种等价形式--25.demo1.c
- ACM金牌带你零基础直达C语言精通-5.23-数组指针与函数指针--26.function_pointer.c
- ACM金牌带你零基础直达C语言精通-5.24-常用:内存管理方法--27.memory.c
- ACM金牌带你零基础直达C语言精通-5.25-指针学习技巧总结--28.const.c
- ACM金牌带你零基础直达C语言精通-5.25-指针学习技巧总结--29.typedef.c
- ACM金牌带你零基础直达C语言精通-5.26-qsort 函数的使用方法--30.qsort.c
- ACM金牌带你零基础直达C语言精通-5.27-『回调函数』的基本概念--31.call_back_function_binary_search.c
- ACM金牌带你零基础直达C语言精通-5.28-随堂练习3:个人所得税求解--32.test3.c
- ACM金牌带你零基础直达C语言精通-5.29-【附加内容】快速排序--33.quick_sort.cpp
- ACM金牌带你零基础直达C语言精通-5.31-小项目:从0实现 qsort 函数--34.my_qsort.c
课代表笔记
C语言笔记:指针与数组
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 理解编译过程究竟在做什么,编程过程的几个步骤分别是干什么的;
- ❗理解#include头文件的工作原理,在后续的项目阶段会用到;
- ❗理解#define宏定义的工作原理,以及#和##的工作原理,知道C语言中的内置宏,以及其作用;
- ❗理解#if的工作原理,#if的用法可能会在以后的工作环境中会用到;
- ❗学会利用结构体,结构体会在后续数据结构课程中常用,并理解结构体的内存对齐规则;
- 理解联合体的基本使用,以及内存是如何进行公用的;
- 学会如何使用枚举类型,在之后的编程中可以提高代码的阅读性;
- 了解位域的相关概念;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-6.2-重新认识程序的『编译』过程--1.test.c
- ACM金牌带你零基础直达C语言精通-6.2-重新认识程序的『编译』过程--1.test.o
- ACM金牌带你零基础直达C语言精通-6.3-『编译阶段』究竟在做什么?--2.project1
- ACM金牌带你零基础直达C语言精通-6.4-『链接阶段』究竟在做什么?--3.project2
- ACM金牌带你零基础直达C语言精通-6.5-明确概念:声明和定义--4.project3
- ACM金牌带你零基础直达C语言精通-6.6-认识:预处理命令家族--5.pre_processing.c
- ACM金牌带你零基础直达C语言精通-6.6-认识:预处理命令家族--output.c
- ACM金牌带你零基础直达C语言精通-6.7-『#include』的工作原理--6.project4
- ACM金牌带你零基础直达C语言精通-6.8-『#define』基础知识--7.define.c
- ACM金牌带你零基础直达C语言精通-6.8-『#define』基础知识--output2.c
- ACM金牌带你零基础直达C语言精通-6.9-编译器内置宏--8.built_in.c
- ACM金牌带你零基础直达C语言精通-6.10-宏定义中 # 和 ## 的作用--9.string_cat.c
- ACM金牌带你零基础直达C语言精通-6.11-随堂练习:没有 BUG 的 MAX 宏--10.max.c
- ACM金牌带你零基础直达C语言精通-6.12-『#if』基础知识--11.ifdef.c
- ACM金牌带你零基础直达C语言精通-6.12-『#if』基础知识--12.if_function.c
- ACM金牌带你零基础直达C语言精通-6.12-『#if』基础知识--output3.c
- ACM金牌带你零基础直达C语言精通-6.13-课后实战题1:带等级的日志打印功能--13.log.c
- ACM金牌带你零基础直达C语言精通-6.14-课后实战题2:统计函数运行时间--14.time.c
- ACM金牌带你零基础直达C语言精通-6.15-课后实战题3:让 C 函数支持默认参数--15.args.c
- ACM金牌带你零基础直达C语言精通-6.16-课后实战题4:不许抄我作业!--16.hahaha.c
- ACM金牌带你零基础直达C语言精通-6.17-结构体的基本使用--17.struct.c
- ACM金牌带你零基础直达C语言精通-6.18-『对齐规则』全解析--18.struct_size.c
- ACM金牌带你零基础直达C语言精通-6.19-联合体的基本使用--19.union.c
- ACM金牌带你零基础直达C语言精通-6.20-枚举类型的基本使用--20.enum.c
- ACM金牌带你零基础直达C语言精通-6.20-枚举类型的基本使用--21.coloc.c
- ACM金牌带你零基础直达C语言精通-6.21-随堂练习:两种方法封装COLOR工具--21.coloc.c
- ACM金牌带你零基础直达C语言精通-6.22-位域相关概念与使用--22.bit.c
- ACM金牌带你零基础直达C语言精通-6.22-位域相关概念与使用--23.hex.c
- ACM金牌带你零基础直达C语言精通-6.24-【附加内容】链表:代码演示--24.linklist.cpp
- ACM金牌带你零基础直达C语言精通-6.25~6.26-实现一种有趣的链表结构--26.funny_linklist.c
课代表笔记
C语言笔记:预处理命令与结构体
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 理解3个标准流是如何和文件之间进行传输的,终端也是一个文件,在linux系统下一切皆文件;
- 理解3个标准流的缓存区的作用,以及如何利用缓存区进行输入输出;
- 学会使用fscanf和fprintf函数对标准流的窥探,学会两种方法进行对标准流的输出和输入的重定向;
- 理解scanf是如何进行读取数据的,然后在读取过程中发现问题时,去利用对缓存区的理解,然后进行对自己的代码进行Debug;
- 最后实现printf函数,跟着船长先敲一遍代码,然后自己再敲一遍代码,如果不理解的地方再回看视频,最后通过自己的想法再敲一遍代码进行实现;
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-7.2-三个标准流:stdin、stdout、stderr--1.stderr.c
- ACM金牌带你零基础直达C语言精通-7.2-三个标准流:stdin、stdout、stderr--2.stdout.c
- ACM金牌带你零基础直达C语言精通-7.3-窥探标准流的工具:fscanf 和 fprintf--3.fprintf.c
- ACM金牌带你零基础直达C语言精通-7.4-标准流的重定向--4.freopen.c
- ACM金牌带你零基础直达C语言精通-7.4-标准流的重定向--5.control_reopen.c
- ACM金牌带你零基础直达C语言精通-7.4-标准流的重定向--6.terminal_output.c
- ACM金牌带你零基础直达C语言精通-7.4-标准流的重定向--output.txt
- ACM金牌带你零基础直达C语言精通-7.5-重学:scanf 函数--7.scanf_c.c
- ACM金牌带你零基础直达C语言精通-7.5-scanf 函数--8.getchar_fflush.c
- ACM金牌带你零基础直达C语言精通-7.5-scanf 函数--input.txt
- ACM金牌带你零基础直达C语言精通-7.6-实现 printf 函数:输出『hello world』--9.my_printf.c
- ACM金牌带你零基础直达C语言精通-7.6~7.9-实现 printf 函数:输出『hello world』--9.my_printf.c
课代表笔记
C语言笔记:重学输入和输出
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 进行本章学习之前,一定要有前面章节基础支持的支撑,如果对于本章的位置那些地方吃力那么就需要回顾之前的内容;
- 进行本章学习尽量在一段时间进行连续性的学习;
- 理解程序是如何进行对文件进行操作;
- 学会对学生管理系统的两种优化的方式,并理解优化的过程是优化的什么地方;
- 对于用程序做项目,最重要的是写代码前的思路分析,然后再是程序设计,只要思路清晰,一定可以找到对应的代码进行设计;
- 对于该项目完成后,可以后续的进行自己对于该项目的优化和改进。
授课PPT
参考程序
- ACM金牌带你零基础直达C语言精通-8.2-初识程序中的文件类型--1.fprintf.c
- ACM金牌带你零基础直达C语言精通-8.3-详解:文件打开模式--2.file_access.c
- ACM金牌带你零基础直达C语言精通-8.4-读写文件的方法与技巧--3.file_operator.c
- ACM金牌带你零基础直达C语言精通-8.5~8.9-学生信息管理系统-交互界面设计--4.student_system.c
- ACM金牌带你零基础直达C语言精通-8.10-操作文件读写位置:fseek与ftell--5.fseek_and_ftell.c
- ACM金牌带你零基础直达C语言精通-8.10-操作文件读写位置:fseek与ftell--6.fscanf_and_fseek.c
- ACM金牌带你零基础直达C语言精通-8.11-知识补充:设置文件位置时的中心--7.fseek_position.c
- ACM金牌带你零基础直达C语言精通-8.12-再学:文件打开模式--8.fseek_and_faccess.c
- ACM金牌带你零基础直达C语言精通-8.14-优化1:代码演示--9.student_system.c
- ACM金牌带你零基础直达C语言精通-8.15-二进制文件操作:fwrite与fread--10.fwrite_fread.c
- ACM金牌带你零基础直达C语言精通-8.16-优化2:实现数据的二进制存储--11.student_system.c
- ACM金牌带你零基础直达C语言精通-8.17-编程技巧:界面切换流程--12.user_interface.c
- ACM金牌带你零基础直达C语言精通-8.19~8.30-项目文件--13.project.zip
- ACM金牌带你零基础直达C语言精通-8.20-编程技巧:注册函数--14.attribute.c
课代表笔记
C语言笔记:文件操作
独家欧拉计划50题,开启编码之旅,掌握编程本质。从初识到蜕变,全面提升编码能力
授课PPT
学习提要
- ❗在学习过程中一定要跟着船长一起敲代码;
- 跟着船长敲一遍,自己再敲一遍不懂就看,最后单独靠自己实现一遍;
- 先理解解题过程,然后将解题过程转换为代码,如果解题过程都不清晰,那么代码也无法敲出来;
- 如果有自己的思路可以尝试区实现自己的思路;
授课PPT
- ACM金牌带你零基础直达C语言精通-10.1~10.3-EP01:3或5的倍数
- ACM金牌带你零基础直达C语言精通-10.4~10.7-EP02:偶斐波那契数
- ACM金牌带你零基础直达C语言精通-10.8~10.10-EP04:最大回文乘积
- ACM金牌带你零基础直达C语言精通-10.11~10.13-EP06:平方和与和平法之差
- ACM金牌带你零基础直达C语言精通-10.14~10.15-EP30:各位数字的五次幂
- ACM金牌带你零基础直达C语言精通-10.16~10.17-EP34:数字阶乘和
- ACM金牌带你零基础直达C语言精通-10.18~10.19-EP36:双进制回文数
- ACM金牌带你零基础直达C语言精通-10.20~10.21-EP28:螺旋数阵对角线
- ACM金牌带你零基础直达C语言精通-10.22~10.23-EP03:最大质因数
参考程序
- ACM金牌带你零基础直达C语言精通-10.1~10.3-EP01:3或5的倍数--EP01-1.c
- ACM金牌带你零基础直达C语言精通-10.1~10.3-EP01:3或5的倍数--EP01-2.c
- ACM金牌带你零基础直达C语言精通-10.4~10.7-EP02:偶斐波那契数--EP02-1.c
- ACM金牌带你零基础直达C语言精通-10.4~10.7-EP02:偶斐波那契数--EP02-2.c
- ACM金牌带你零基础直达C语言精通-10.4~10.7-EP02:偶斐波那契数--EP02-3.c
- ACM金牌带你零基础直达C语言精通-10.8~10.10-EP04:最大回文乘积--EP04-1.c
- ACM金牌带你零基础直达C语言精通-10.8~10.10-EP04:最大回文乘积--EP04-2.c
- ACM金牌带你零基础直达C语言精通-10.11~10.13-EP06:平方和与和平法之差--EP06.c
- ACM金牌带你零基础直达C语言精通-10.11~10.13-EP06:平方和与和平法之差--EP06-2.c
- ACM金牌带你零基础直达C语言精通-10.14~10.15-EP30:各位数字的五次幂--EP30.c
- ACM金牌带你零基础直达C语言精通-10.16~10.17-EP34:数字阶乘和--EP34.c
- ACM金牌带你零基础直达C语言精通-10.18~10.19-EP36:双进制回文数--EP36.c
- ACM金牌带你零基础直达C语言精通-10.20~10.21-EP28:螺旋数对角阵--EP28.c
- ACM金牌带你零基础直达C语言精通-10.22~10.23-EP03:最大质因子--EP03.c
课代表笔记
欧拉计划1-50题的题目解析和题目答案:欧拉计划:EP01-50
授课PPT
- ACM金牌带你零基础直达C语言精通-11.1~11.2-EP05:最小公倍数
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数
- ACM金牌带你零基础直达C语言精通-11.12-EP10:质数求和
- ACM金牌带你零基础直达C语言精通-11.13~11.14-EP35:圆周素数
- ACM金牌带你零基础直达C语言精通-11.15~11.16-EP37:可截素数
- ACM金牌带你零基础直达C语言精通-11.17~11.18-EP46:哥德巴赫的另一个猜想
- ACM金牌带你零基础直达C语言精通-11.19~11.20-EP08:连续数字最大乘积
- ACM金牌带你零基础直达C语言精通-11.21~11.22-EP11:方阵中的最大乘积
- ACM金牌带你零基础直达C语言精通-11.23~11.26-EP14:最长考拉兹序列
- ACM金牌带你零基础直达C语言精通-11.27~11.28-EP17:【整数英文表达的字母计数】
- ACM金牌带你零基础直达C语言精通-11.29~11.30-EP32:【全数字乘积】
- ACM金牌带你零基础直达C语言精通-11.31~11.32-EP33:【消去数字分数】
- ACM金牌带你零基础直达C语言精通-11.33~11.34-EP38:【全数字倍数】
- ACM金牌带你零基础直达C语言精通-11.35~11.38-EP44【五边形数】
- ACM金牌带你零基础直达C语言精通-11.39~11.40-EP45【判断立方数】
参考程序
- ACM金牌带你零基础直达C语言精通-11.1~11.2-EP05:最小公倍数--EP05.c
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数-EO07-1.c
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数-EP07-2.c
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数-EP07-3.c
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数-EP07-test1.c
- ACM金牌带你零基础直达C语言精通-11.3~11.11-EP07:第10001个质数-EP07-test2.c
- ACM金牌带你零基础直达C语言精通-11.12-EP10:质数求和-EP10.c
- ACM金牌带你零基础直达C语言精通-11.13~11.14-EP35:圆周素数-EP35.c
- ACM金牌带你零基础直达C语言精通-11.15~11.16-EP37:可截素数-EP37.c
- ACM金牌带你零基础直达C语言精通-11.17~11.18-EP46:哥德巴赫的另一个猜想-EP46.c
- ACM金牌带你零基础直达C语言精通-11.19~11.20-EP08:连续数字最大乘积-EP08.h
- ACM金牌带你零基础直达C语言精通-11.19~11.20-EP08:连续数字最大乘积-EP08.c
- ACM金牌带你零基础直达C语言精通-11.19~11.20-EP08:连续数字最大乘积-EP08.cI
- ACM金牌带你零基础直达C语言精通-11.21~11.22-EP11:方阵中的最大乘积-EP11.c
- ACM金牌带你零基础直达C语言精通-11.23~11.26-EP14:最长考拉兹序列-EP14.c
- ACM金牌带你零基础直达C语言精通-11.23~11.26-EP14:最长考拉兹序列-EP14-2.c
- ACM金牌带你零基础直达C语言精通-11.27~11.28-EP17:【整数英文表达的字母计数】-EP17.c
- ACM金牌带你零基础直达C语言精通-11.29~11.30-EP32:【全数字乘积】-EP32.c
- ACM金牌带你零基础直达C语言精通-11.31~11.32-EP33:【消去数字分数】-EP33.c
- ACM金牌带你零基础直达C语言精通-11.33~11.34-EP38:【全数字倍数】-EP38.c
- ACM金牌带你零基础直达C语言精通-11.35~11.38-EP44:binary_search.c
- ACM金牌带你零基础直达C语言精通-11.35~11.38-EP44:EP44-test.c
- ACM金牌带你零基础直达C语言精通-11.35~11.38-EP44:EP44.c
- ACM金牌带你零基础直达C语言精通-11.39~11.40-EP45:EP45.c
授课PPT
- ACM金牌带你零基础直达C语言精通-12.1~12.4-EP09【毕达哥拉斯三元组】
- ACM金牌带你零基础直达C语言精通-12.5~12.8-EP12【有很多约数的三角形数】
- ACM金牌带你零基础直达C语言精通-12.9~12.12-EP13【100个50位数字的和】
- ACM金牌带你零基础直达C语言精通-12.13~12.14-EP25【1000位的斐波那契数列值】
- ACM金牌带你零基础直达C语言精通-12.15~12.16-EP15【网格路径】
- ACM金牌带你零基础直达C语言精通-12.17~12.18-EP16【2的1000次方的各位数字的和】
- ACM金牌带你零基础直达C语言精通-12.19~12.22-EP18【最大路径和 I】
参考程序
- ACM金牌带你零基础直达C语言精通-12.1~12.4-EP09-1.c
- ACM金牌带你零基础直达C语言精通-12.1~12.4-EP09-2.c
- ACM金牌带你零基础直达C语言精通-12.5~12.8-EP12-1.c
- ACM金牌带你零基础直达C语言精通-12.5~12.8-EP12-2.c
- ACM金牌带你零基础直达C语言精通-12.9~12.12-EP13-add.c
- ACM金牌带你零基础直达C语言精通-12.9~12.12-EP13.c
- ACM金牌带你零基础直达C语言精通-12.13~12.14-EP25.c
- ACM金牌带你零基础直达C语言精通-12.15~12.16-EP15.c
- ACM金牌带你零基础直达C语言精通-12.17~12.18-EP16.c
- ACM金牌带你零基础直达C语言精通-12.19~12.22-EP18-1.cpp
- ACM金牌带你零基础直达C语言精通-12.19~12.22-EP18-2.cpp
从零开始学习Linux开发,实战掌握文件操作、多进程编程,快速提升开发技能
本章学习参考说明
授课PPT
本章学习参考说明
探索嵌入式编程技巧,从C语言基础到嵌入式设备中简单多任务编程模式处理,掌握C语言硬件控制方式,开启万物互联世界的编程之旅
本章参考工具:
Arduino IDE 2.3.2 官方下载链接
Arduino IDE 2 官方使用文档
Arduino 安装说明
在线开发板Wokwi
windows平台ESP WROOM-32开发板驱动
VSCode及相关插件
ESP32核心模块使用手册:esp32-wroom-32_datasheet_cn.pdf
ESP32模块使用手册:ESP32-DEVKit-32-dev-guide.pdf
ESP32官方参考文档
其他开发板管理器地址:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
http://dan.drown.org/stm32duino/package_STM32duino_index.json
https://arduino.me/packages/esp32.json
https://dl.espressif.com/dl/package_esp32_index.json
https://espressif.github.io/arduino-esp32/package_esp32_index.json
MacOS下ESP32 WROOM-32 模块参数:
Windows10下ESP32 WROOM-32 模块参数:
硬件模块购买与技术支持微信:
参考程序:
树莓派使用参考
#文件:/etc/apt/sources.list
deb http://mirror.nju.edu.cn/debian bookworm main contrib non-free non-free-firmware
deb http://mirror.nju.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb http://mirror.nju.edu.cn/debian bookworm-updates main contrib non-free non-free-firmware
#更新完成sources.list文件保存后执行:
sudo apt update
sudo apt install samba samba-common-bin
#安装成功后创建指定共享目录
mkdir ~/share_folds
#打开samba配置文件:/etc/samba/smb.conf在文件最后添加如下配置:
[share_folds]
path = /home/song/share_folds
writeable = yes
browseable = yes
public = no
#保存退出后,添加用户到samba服务
sudo smbpasswd -a 你的用户名
这里提示输入密码,记住所输入密码。
#重启samba服务
sudo systemctl restart samba
#查看服务是否执行:
ps -e | grep smb
#查看服务运行状态:
sudo systemctl status samba
sudo apt install cmake libjpeg62-turbo-dev
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make
sudo make install
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so"
以上命令如何能执行成功,会看到如下提示信息:
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
o: www-folder-path......: ./www/
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled
现在可以在树莓派所在的同一局域网内使用浏览器打开以下地址:
本章学习参考说明
参考程序:
本章学习参考说明
1、顺序执行与事件驱动
2、状态机与任务轮询
3、从0开始实现一个多任务执行系统
4、主流实时多任务操作系统(FreeRTOS)介绍
参考程序:
本章学习参考说明
课程PPT:
参考程序:
本章学习参考说明
课程PPT:
参考程序: