C语言程序设计(双色)(含微课)
定价:¥59.80
作者: 杨振华,程江珂,韩大伟
出版时间:2025-10
最新印次日期:2025-10
出版社:上海交通大学出版社
- 上海交通大学出版社
- 9787313335319
- 1-1
- 568428
- 68268149-9
- 2025-10
- 工学
- 计算机类
- 计算机类
- 本科
内容简介
本书基于初学者的认知规律构建知识体系,以通俗易懂的语言、丰富多样的实例,全面系统地介绍了C语言的基础知识,以及使用C语言进行程序开发所需的关键技术。本书分为基础知识篇、核心技术篇和高级应用篇,共13章。基础知识篇主要介绍C语言概述、算法、C语言程序设计基础、顺序结构程序设计、选择结构程序设计和循环结构程序设计;核心技术篇主要介绍数组、函数和指针;高级应用篇主要介绍预处理命令、用户自定义数据类型、文件,以及项目实战——学生信息管理系统。
本书可作为各类院校C语言程序设计课程的专用教材,也可供程序设计爱好者自学使用。
本书可作为各类院校C语言程序设计课程的专用教材,也可供程序设计爱好者自学使用。
目录
基础知识篇
第1章 C语言概述
1.1 C语言的发展
1.2 C语言程序的开发步骤
1.3 C语言程序的开发环境
1.4 第一个C语言程序
1.4.1 最简单的C语言程序结构
1.4.2 C语言程序的格式特点
1.5 实战演练
本章小结
思考与练习1
第2章 算法
2.1 算法的概念
2.2 算法的特点
2.3 算法的表示
2.3.1 自然语言
2.3.2 流程图
2.3.3 N-S流程图
2.4 实战演练
2.4.1 判断是否为闰年
2.4.2 斐波那契数列
本章小结
思考与练习2
第3章 C语言程序设计基础
3.1 C语言程序的构成元素
3.2 标识符和关键字
3.2.1 标识符
3.2.2 关键字
3.3 常量
3.3.1 整型常量
3.3.2 实型常量
3.3.3 字符型常量
3.3.4 符号常量
3.4 变量
3.4.1 整型变量
3.4.2 实型变量
3.4.3 字符型变量
3.5 数据类型
3.5.1 数据类型概述
3.5.2 数据类型转换
3.6 运算符和表达式
3.6.1 算术运算符和算术表达式
3.6.2 赋值运算符和赋值表达式
3.6.3 逗号运算符和逗号表达式
3.6.4 位运算符和位运算
3.7 实战演练
3.8 常见错误分析
本章小结
思考与练习3
第4章 顺序结构程序设计
4.1 C语句概述
4.2 格式输入/输出函数
4.2.1 格式输出函数——printf()
4.2.2 格式输入函数——scanf()
4.3 字符输入/输出函数
4.3.1 字符输出函数——putchar()
4.3.2 字符输入函数——getchar()
4.4 实战演练
4.4.1 输出字符表情
4.4.2 简单模拟ATM机取款操作
4.4.3 大小写字母转换
4.5 常见错误分析
本章小结
思考与练习4
第5章 选择结构程序设计
5.1 关系运算符和关系表达式
5.1.1 关系运算符
5.1.2 关系表达式
5.2 逻辑运算符和逻辑表达式
5.2.1 逻辑运算符
5.2.2 逻辑表达式
5.3 if语句的基本形式
5.3.1 if语句形式
5.3.2 if-else语句形式
5.3.3 if-else-if语句形式
5.4 if语句的嵌套
5.5 条件运算符和条件表达式
5.6 switch语句
5.7 实战演练
5.7.1 制作简易评教系统
5.7.2 加油站加油问题
5.8 常见错误分析
本章小结
思考与练习5
第6章 循环结构程序设计
6.1 while循环语句
6.2 do-while循环语句
6.3 for循环语句
6.3.1 for循环语句的一般形式
6.3.2 for循环语句的说明
6.4 循环嵌套
6.5 转移语句
6.5.1 break语句
6.5.2 continue语句
6.6 实战演练
6.6.1 计算等比数列之和
6.6.2 计算斐波那契数列
6.6.3 验证四方定理
6.7 常见错误分析
本章小结
思考与练习6
核心技术篇
第7章 数组
7.1 一维数组
7.1.1 一维数组的定义
7.1.2 一维数组的引用
7.1.3 一维数组的初始化
7.2 二维数组
7.2.1 二维数组的定义
7.2.2 二维数组的引用
7.2.3 二维数组的初始化
7.3 字符数组和字符串
7.3.1 字符数组的定义和引用
7.3.2 字符数组的初始化
7.3.3 字符串
7.3.4 字符数组的输入/输出
7.3.5 字符串处理函数
7.4 实战演练
7.4.1 使用冒泡法对数据进行排序
7.4.2 计算学生平均成绩
7.4.3 统计字符串中数字和字母个数
7.5 常见错误分析
本章小结
思考与练习7
第8章 函数
8.1 函数的基本概念
8.2 函数的定义
8.3 函数的调用
8.3.1 函数的调用形式
8.3.2 函数的声明
8.3.3 函数的参数传递
8.3.4 返回语句和函数的返回值
8.4 函数的嵌套调用
8.5 函数的递归调用
8.6 数组作为函数的参数
8.6.1 数组元素作为函数的参数
8.6.2 数组名作为函数的参数
8.7 局部变量和全局变量
8.7.1 局部变量
8.7.2 全局变量
8.8 变量的存储类别
8.8.1 局部变量的存储类别
8.8.2 全局变量的存储类别
8.8.3 各种类型变量的作用域和存在性小结
8.9 内部函数和外部函数
8.9.1 内部函数
8.9.2 外部函数
8.10 实战演练
8.10.1 验证哥德巴赫猜想
8.10.2 解决汉诺塔问题
8.10.3 计算销售额的增长率
8.11 常见错误分析
本章小结
思考与练习8
第9章 指针
9.1 指针的概念
9.2 指针变量
9.2.1 指针变量的定义
9.2.2 指针变量的初始化
9.2.3 指针变量的引用
9.2.4 空指针与void指针
9.3 指针与数组
9.3.1 指针与一维数组
9.3.2 指针与二维数组
9.3.3 指针与字符串
9.3.4 指针数组
9.4 指针与函数
9.4.1 指针变量作为函数参数
9.4.2 指针作为函数的返回值
9.4.3 函数的指针
9.5 指向指针的指针变量
9.6 实战演练
9.6.1 猜数字游戏
9.6.2 删除有序数组中的重复元素
9.6.3 统计字符串中的单词个数
9.7 常见错误分析
本章小结
思考与练习9
高级应用篇
第10章 预处理命令
10.1 宏定义
10.1.1 不带参数的宏定义
10.1.2 带参数的宏定义
10.1.3 撤销宏定义
10.2 文件包含命令
10.3 条件编译命令
10.4 实战演练
10.5 常见错误分析
本章小结
思考与练习10
第11章 用户自定义数据类型
11.1 结构体
11.1.1 结构体类型的声明
11.1.2 结构体变量的定义
11.1.3 结构体变量的初始化
11.1.4 结构体变量的引用
11.2 结构体数组
11.2.1 结构体数组的定义
11.2.2 结构体数组的初始化
11.2.3 结构体数组的引用
11.3 结构体指针
11.3.1 指向结构体变量的指针
11.3.2 指向结构体数组的指针
11.3.3 结构体作为函数参数
11.4 链表
11.4.1 链表概述
11.4.2 处理动态链表的函数
11.4.3 建立动态链表
11.5 共用体
11.6 枚举类型
11.7 用typedef声明新类型名
11.8 实战演练
11.8.1 统计某公司员工信息
11.8.2 模拟约瑟夫环游戏
11.9 常见错误分析
本章小结
思考与练习11
第12章 文件
12.1 文件概述
12.2 文件基本操作
12.2.1 文件打开函数——fopen()
12.2.2 文件关闭函数——fclose()
12.3 文件读/写
12.3.1 字符读/写函数
12.3.2 字符串读/写函数
12.3.3 格式化读/写函数
12.3.4 数据块读/写函数
12.4 文件定位
12.5 实战演练
12.5.1 凯撒密码加密
12.5.2 模拟简单的学生信息管理系统
本章小结
思考与练习12
第13章 项目实战——学生信息管理系统
13.1 开发背景
13.2 开发环境
13.3 系统功能设计
13.4 预处理模块和结构体设计
13.5 函数设计
13.5.1 主函数
13.5.2 录入记录模块
13.5.3 查找记录模块
13.5.4 删除记录模块
13.5.5 修改记录模块
13.5.6 插入记录模块
13.5.7 排序记录模块
13.5.8 统计总数模块
13.5.9 显示记录模块
本章小结
附录
附录1 常用字符与其ASCII码值对照表
附录2 运算符的优先级与结合性表
附录3 常用标准库函数
参考文献
第1章 C语言概述
1.1 C语言的发展
1.2 C语言程序的开发步骤
1.3 C语言程序的开发环境
1.4 第一个C语言程序
1.4.1 最简单的C语言程序结构
1.4.2 C语言程序的格式特点
1.5 实战演练
本章小结
思考与练习1
第2章 算法
2.1 算法的概念
2.2 算法的特点
2.3 算法的表示
2.3.1 自然语言
2.3.2 流程图
2.3.3 N-S流程图
2.4 实战演练
2.4.1 判断是否为闰年
2.4.2 斐波那契数列
本章小结
思考与练习2
第3章 C语言程序设计基础
3.1 C语言程序的构成元素
3.2 标识符和关键字
3.2.1 标识符
3.2.2 关键字
3.3 常量
3.3.1 整型常量
3.3.2 实型常量
3.3.3 字符型常量
3.3.4 符号常量
3.4 变量
3.4.1 整型变量
3.4.2 实型变量
3.4.3 字符型变量
3.5 数据类型
3.5.1 数据类型概述
3.5.2 数据类型转换
3.6 运算符和表达式
3.6.1 算术运算符和算术表达式
3.6.2 赋值运算符和赋值表达式
3.6.3 逗号运算符和逗号表达式
3.6.4 位运算符和位运算
3.7 实战演练
3.8 常见错误分析
本章小结
思考与练习3
第4章 顺序结构程序设计
4.1 C语句概述
4.2 格式输入/输出函数
4.2.1 格式输出函数——printf()
4.2.2 格式输入函数——scanf()
4.3 字符输入/输出函数
4.3.1 字符输出函数——putchar()
4.3.2 字符输入函数——getchar()
4.4 实战演练
4.4.1 输出字符表情
4.4.2 简单模拟ATM机取款操作
4.4.3 大小写字母转换
4.5 常见错误分析
本章小结
思考与练习4
第5章 选择结构程序设计
5.1 关系运算符和关系表达式
5.1.1 关系运算符
5.1.2 关系表达式
5.2 逻辑运算符和逻辑表达式
5.2.1 逻辑运算符
5.2.2 逻辑表达式
5.3 if语句的基本形式
5.3.1 if语句形式
5.3.2 if-else语句形式
5.3.3 if-else-if语句形式
5.4 if语句的嵌套
5.5 条件运算符和条件表达式
5.6 switch语句
5.7 实战演练
5.7.1 制作简易评教系统
5.7.2 加油站加油问题
5.8 常见错误分析
本章小结
思考与练习5
第6章 循环结构程序设计
6.1 while循环语句
6.2 do-while循环语句
6.3 for循环语句
6.3.1 for循环语句的一般形式
6.3.2 for循环语句的说明
6.4 循环嵌套
6.5 转移语句
6.5.1 break语句
6.5.2 continue语句
6.6 实战演练
6.6.1 计算等比数列之和
6.6.2 计算斐波那契数列
6.6.3 验证四方定理
6.7 常见错误分析
本章小结
思考与练习6
核心技术篇
第7章 数组
7.1 一维数组
7.1.1 一维数组的定义
7.1.2 一维数组的引用
7.1.3 一维数组的初始化
7.2 二维数组
7.2.1 二维数组的定义
7.2.2 二维数组的引用
7.2.3 二维数组的初始化
7.3 字符数组和字符串
7.3.1 字符数组的定义和引用
7.3.2 字符数组的初始化
7.3.3 字符串
7.3.4 字符数组的输入/输出
7.3.5 字符串处理函数
7.4 实战演练
7.4.1 使用冒泡法对数据进行排序
7.4.2 计算学生平均成绩
7.4.3 统计字符串中数字和字母个数
7.5 常见错误分析
本章小结
思考与练习7
第8章 函数
8.1 函数的基本概念
8.2 函数的定义
8.3 函数的调用
8.3.1 函数的调用形式
8.3.2 函数的声明
8.3.3 函数的参数传递
8.3.4 返回语句和函数的返回值
8.4 函数的嵌套调用
8.5 函数的递归调用
8.6 数组作为函数的参数
8.6.1 数组元素作为函数的参数
8.6.2 数组名作为函数的参数
8.7 局部变量和全局变量
8.7.1 局部变量
8.7.2 全局变量
8.8 变量的存储类别
8.8.1 局部变量的存储类别
8.8.2 全局变量的存储类别
8.8.3 各种类型变量的作用域和存在性小结
8.9 内部函数和外部函数
8.9.1 内部函数
8.9.2 外部函数
8.10 实战演练
8.10.1 验证哥德巴赫猜想
8.10.2 解决汉诺塔问题
8.10.3 计算销售额的增长率
8.11 常见错误分析
本章小结
思考与练习8
第9章 指针
9.1 指针的概念
9.2 指针变量
9.2.1 指针变量的定义
9.2.2 指针变量的初始化
9.2.3 指针变量的引用
9.2.4 空指针与void指针
9.3 指针与数组
9.3.1 指针与一维数组
9.3.2 指针与二维数组
9.3.3 指针与字符串
9.3.4 指针数组
9.4 指针与函数
9.4.1 指针变量作为函数参数
9.4.2 指针作为函数的返回值
9.4.3 函数的指针
9.5 指向指针的指针变量
9.6 实战演练
9.6.1 猜数字游戏
9.6.2 删除有序数组中的重复元素
9.6.3 统计字符串中的单词个数
9.7 常见错误分析
本章小结
思考与练习9
高级应用篇
第10章 预处理命令
10.1 宏定义
10.1.1 不带参数的宏定义
10.1.2 带参数的宏定义
10.1.3 撤销宏定义
10.2 文件包含命令
10.3 条件编译命令
10.4 实战演练
10.5 常见错误分析
本章小结
思考与练习10
第11章 用户自定义数据类型
11.1 结构体
11.1.1 结构体类型的声明
11.1.2 结构体变量的定义
11.1.3 结构体变量的初始化
11.1.4 结构体变量的引用
11.2 结构体数组
11.2.1 结构体数组的定义
11.2.2 结构体数组的初始化
11.2.3 结构体数组的引用
11.3 结构体指针
11.3.1 指向结构体变量的指针
11.3.2 指向结构体数组的指针
11.3.3 结构体作为函数参数
11.4 链表
11.4.1 链表概述
11.4.2 处理动态链表的函数
11.4.3 建立动态链表
11.5 共用体
11.6 枚举类型
11.7 用typedef声明新类型名
11.8 实战演练
11.8.1 统计某公司员工信息
11.8.2 模拟约瑟夫环游戏
11.9 常见错误分析
本章小结
思考与练习11
第12章 文件
12.1 文件概述
12.2 文件基本操作
12.2.1 文件打开函数——fopen()
12.2.2 文件关闭函数——fclose()
12.3 文件读/写
12.3.1 字符读/写函数
12.3.2 字符串读/写函数
12.3.3 格式化读/写函数
12.3.4 数据块读/写函数
12.4 文件定位
12.5 实战演练
12.5.1 凯撒密码加密
12.5.2 模拟简单的学生信息管理系统
本章小结
思考与练习12
第13章 项目实战——学生信息管理系统
13.1 开发背景
13.2 开发环境
13.3 系统功能设计
13.4 预处理模块和结构体设计
13.5 函数设计
13.5.1 主函数
13.5.2 录入记录模块
13.5.3 查找记录模块
13.5.4 删除记录模块
13.5.5 修改记录模块
13.5.6 插入记录模块
13.5.7 排序记录模块
13.5.8 统计总数模块
13.5.9 显示记录模块
本章小结
附录
附录1 常用字符与其ASCII码值对照表
附录2 运算符的优先级与结合性表
附录3 常用标准库函数
参考文献

















