C语言程序设计(下)
C语言程序设计(下)
20万+ 人选课
更新日期:2025/10/21
开课时间2025/10/20 - 2026/01/18
课程周期13 周
开课状态开课中
每周学时-
课程简介

欢迎大家进入C语言程序设计第二部分的学习。


本学期开始本课程注入全新的智能学习体验:我们融合知识图谱技术,系统梳理C语言核心知识与编程范式,帮助学习者构建清晰的知识脉络;引入AI助教,随时答疑解惑、提供个性化学习路径与实时反馈;更结合AI辅助编程,助力代码调试、优化与理解,让编程实践更加高效与深入。

相信大家已经掌握了C语言的基本语法,学会用三种基本结构编写程序,能够解决一般的数值处理问题、穷举问题等。 就如同学习汉语,大家已经学习了字、组词、造句,能够写短文了,接下来是怎样写长文章?对应C语言来说,我们如何设计较长的程序?如何解决相对复杂的问题?如何重复使用某一段代码?


有人说编程是艺术,用C就可以写出很“美“的代码。例如如果我们不用循环结构,不用递归算法,能不能在屏幕上输出从1到1000?学完这部分,大家就可以试试啦。


C语言的基本结构是函数,其基本含义是:一个软件可以由多个源程序(文件)组成;一个源程序(文件)可以由多个函数组成;函数就是一段具有某种功能的程序,除主函数之外,用户写的这段程序叫做用户定义函数,由函数名,参数,说明语句和执行语句构成。定义后的函数可以重复被主函数或其他函数调用。所以说,函数是实现模块化设计的基础。


更为神奇的是,如果我们把函数的组成部分细化,列出一个树状的结构,你会发现你学过的C语言的基础知识内容都在里面啦,学过函数后,你也可以试试啊。


怎么使用函数呢?函数的递归调用是难点,要掌握编写递归算法的关键,通过典型的递归问题掌握编写递归程序的技巧;其次要将前面各章中的一些题目用递归算法实现,通过对比分析,加深对递归的理解和掌握。


接下来,我们学习指针。指针是C语音的特色,也是C语言中最灵活的地方。


如何学习指针呢? C语言中指针就是地址。大家要掌握指向变量的指针,指向数组的指针,指向函数的指针,指向指针的指针,指针数组等。注意从定义和引用的形式上区分不同功能的指针,要理解指针与数组的关系,以及定义了指针之后,如何引用变量的值等具体问题。


结构、联合与枚举都是C语言中的构造数据类型,是基本数据类型的某种组合。


链表是指针、结构体的高级应用,也是C语言各阶段语法知识的综合体现。链表就是动态的数据结构。要掌握链表如何定义,如何建立简单的单向链表,以及学会编写链表中节点的插入、删除等基本操作。在上述知识和练习基础上,练习编写小软件,例如:学生档案管理系统等。


以往程序中对数据的操作均在内存上实现,随着程序运行的结束,变量的内存空间和变量的值均消失。C语言中可以利用文件实现数据在外存上的存取操作。


首先要掌握文件的基本概念,其中重要的是文件型指针,文件通过文件指针操作。要学会使用文件读写函数,分别实现文件的按字符读写、按字符串读写、按数据块读写和按格式读写;还有文件当前状态的测试函数等,必须熟练使用这些函数。

课程大纲
第一周:函数(一)
1.3函数调用、声明和返回
1.4函数间参数传递
1.1函数定义
1.2模块化程序设计
第一周编程作业
第二周:函数(二)
2.1函数递归调用
第二周编程作业
第三周:函数(三)
3.1变量存储属性
3.2编译预处理
【用AI写程序】:AI将代码变得更模块化
【AI计算专栏】:浮点数误差
第三周编程作业
第四周:指针(一)
4.1指针的定义、初始化和引用
4.2指针与数组
第四周编程作业
第五周:指针(二)
5.1指针与字符串
5.2多维数组指针
第五周编程作业
第六周:指针(三)
6.1指针与函数
6.2指针与指针
【虚拟实验】:指针基本概念实验
【用AI写程序】:AI帮你检查内存泄漏
【AI计算专栏】:特征值分解
第六周编程作业
第七周:链表(一)
7.1结构的概念
7.2结构数组
7.3结构指针
7.4结构与函数
7.5联合
第七周编程作业
第八周:链表(二)
8.1typedef自定义类型
8.2枚举类型
8.3链表的概念
8.4链表的基本操作
【虚拟实验】:动态链表实验
【用AI写程序】:AI辅助生成数据结构
【AI计算专栏】:用C实现K近邻算法
第八周编程作业
第九周文件
9.1文件概述
9.2文件型指针
9.3文件的打开与关闭
9.4文件的顺序读写
9.5文件的随机读写
9.6文件检测
9.7文件应用实例
【用AI写程序】:AI辅助项目管理
【AI计算专栏】:用C实现动作识别
第九周编程作业
第十周总结与练习
10.1C语言知识总结
10.2C语言练习
第十周编程作业
期末考试复习题
期末考试复习题
期末考试复习题答案
期末考试复习题答案