Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

XuetangX

C语言程序设计精髓

Harbin Institute of Technology via XuetangX

Overview

我们会用15周的时间来深入讲解C语言,在授课过程中,我们会注重多解释一些“为什么”以及错误程序的分析,从环环相扣的问题入手,将一些易被忽视且对高水平程序设计很重要的“点”,沿着数据结构从简单到复杂的主线逐一展开,在实例的“不断深化和提升”中引出知识点,通过对问题的举一反三和前后知识点的融会贯通,由浅入深地引导你循序渐进地编写规模逐步增大的程序。

在过去30年90%的时间里,C语言独领风骚,仅偶尔被 Java 超越,可见其魅力。C语言作为一种高级语言,其实并不高级,但正是这种“低级”给我们更多思考的机会。期望通过本课程的学习,你不只是简单地能够掌握一种语言的语法,还能理解隐含在语法背后的思想,并初步具备灵活使用这些思想进行编写程序解决实际问题的能力。如果你掌握了这些,你会发现,迈向成功的最后一步不过是选择一种合适的编程工具而已。


Syllabus

  • 学习本课前你必须知道的那些事儿
    • 第一章 初识C语言从认识变量和常量开始
      • 第一节:为什么要学C语言
      • 第二节:如何定义一个变量
      • 第三节:变量的表数范围和存储形式
      • 第四节:宏变量与const变量
    • 第二章 数字间的那些事儿,做点计算哈
      • 第一节:算术运算
      • 第二节:赋值运算
      • 第三节:增1和减1运算
      • 第四节:自动类型转换
      • 第五节:强制类型转换
    • 第三章 从键盘中来,到键盘中,开始输入和输出啦
      • 第一节:数据的格式化屏幕输出
      • 第二节:数据的格式化键盘输出
      • 第三节:单个字符的输入输出
      • 第四节:进阶:用getchar()输入数据存在的问题(含错误案例分析)
      • 第五节:用%c输入数据存在的问题(含错误案例分析)
    • 第四章 无处不在的抉择
      • 第一节:关系运算符和逻辑运算符
      • 第二节:条件语句
      • 第三节:开关语句——条条道路通罗马
      • 第四节:进阶:数值溢出和精度损失问题
      • 第五节:进阶:软件测试与错误实例分析
    • 第五章 周而复始的循环之道
      • 第一节:计数控制的循环
      • 第二节:递推
      • 第三节:条件控制的循环
      • 第四节:嵌套循环
      • 第五节:穷举
      • 第六节:进阶:软件调试与错误实例分析
    • 第六章 函数:分工与合作的艺术
      • 第一节:函数定义、调用、参数传递和函数原型
      • 第二节:函数封装与程序的健壮性
      • 第三节:进阶:断言与防御式编程
      • 第四节:进阶:代码风格
    • 第七章 《盗梦空间》的逻辑:探寻递归的奥秘
      • 第一节:从嵌套调用到递归调用
      • 第二节:递归是如何执行的
      • 第三节:进阶:尾递归是什么鬼?
      • 第四节:变量的作用域
      • 第五节:进阶:变量的生存期
      • 第六节:进阶: 多文件结构
    • 第八章 一堆数据来了,你准备好了吗?
      • 第一节:数组的定义和初始化
      • 第二节:向函数传递一堆相同类型的数据
      • 第三节:查找算法——众里寻他千百度
      • 第四节:排序算法——让世界变得更有序
    • 第九章 指针:C语言世界中所向披靡的“金箍棒”
      • 第一节:指针变量的定义、初始化及其解引用
      • 第二节:指针变量作函数参数
      • 第三节:进阶:函数指针及其应用
      • 第四节:进阶:数组的趣味应用
    • 第十章 字符串:C语言世界中的大力水手
      • 第一节:字符串的存储与表示
      • 第二节:字符串处理操作
      • 第三节:向函数传递和从函数返回字符串
      • 第四节:进阶:缓冲区溢出与缓冲区溢出攻击
    • 第十一章 指针的孪生兄弟
      • 第一节:指针的运算
      • 第二节:指针和一维数组间的关系
      • 第三节:指针和二维数组间的关系
      • 第四节:进阶:指针数组及其应用
    • 第十二章 海陆空齐上阵:又来了一堆数据
      • 第一节:结构体类型
      • 第二节:结构体与数组的嵌套
      • 第三节:结构体的相关计算和操作
      • 第四节:向函数传递一堆不同类型的数据
      • 第五节:枚举类型和共用体类型有什么用
      • 第六节:进阶:典型应用实例——洗发牌模拟
    • 第十三章 原来内存也可以这么玩,我是指针我怕谁
      • 第一节:何为动态内存分配
      • 第二节:动态数组
      • 第三节:进阶:常见的内存错误及其解决对策
    • 第十四章 结构设计的艺术
      • 第一节:数据的链式存储——单向链表
      • 第二节:进阶内容:其他数据结构简介
    • 第十五章 学会保存你的数据
      • 第一节:二进制文件与文本文件
      • 第二节:文件的打开和关闭
      • 第三节:格式化数据的文件读写
      • 第四节:字符和字符串的文件读写
      • 第五节:内存数据块的文件读写
      • 第六节:随机读写与文件缓冲
    • 期末考试

      Taught by

      Xiaohong Su, Lingling Zhao, and Lin Ye

      Tags

      Reviews

      Start your review of C语言程序设计精髓

      Never Stop Learning.

      Get personalized course recommendations, track subjects and courses with reminders, and more.

      Someone learning on their laptop while sitting on the floor.