本书以大案例“学生成绩管理系统”为主线,循序渐进导入C语言程序设计知识,所选案例丰富,贴近生活,注重培养程序设计的思路、方法、技巧以及良好的编程风格,帮助初学者快速、轻松运用C语言进行结构化程序设计,学会与计算机交流沟通,熟悉计算机解决问题的方式方法,具备计算思维能力和利用C语言程序求解问题的实践应用能力。
全书共10章,内容包括C语言程序设计基础,基本数据及其运算,顺序结构程序设计及其应用,选择结构程序设计及其应用,循环结构程序设计及其应用,数组,函数,结构体、共用体和枚举类型,指针,文件。其中前6章,各章设计独立的案例,重点是学习、掌握C语言程序设计的语法规则。第7~10章,逐步完成和完善“学生成绩管理系统”,从设计、开发、优化到系统的*后完善,完成系统设计的同时介绍相关知识点。全书贯穿算法,实例丰富,实用性强。本书配有多媒体课件、电子教案及网络资源,便于教学以及读者自学使用。
本书适合作为高等院校理工科“C语言程序设计”课程的教材,也可作为计算机培训机构与考研辅导班、编程自学人员的参考书,还可作为软件应用开发人员、程序爱好者以及计算机等级考试者的参考书。
第1章 C语言程序设计基础
案例1 创建一个C语言程序
1.1 认识C语言
1.1.1 C语言的产生和发展
1.1.2 C语言的特点
1.2 C语言程序的实现
1.2.1 C程序的实现过程
1.2.2 C程序的结构
1.3 C程序的开发环境
1.4 程序算法基础
1.4.1 程序和程序设计语言
1.4.2 程序设计方法
1.4.3 算法
1.5 软件编程规范
1.5.1 程序的可读性原则
1.5.2 匈牙利命名法
1.6 小结
1.7 拓展案例
1.8 思考与练习
第2章 基本数据及其运算
案例2 计算圆的面积
2.1 基本字符、标识符和关键字
2.1.1 基本字符
2.1.2 标识符
2.1.3 关键字
2.2 C语言的数据类型
2.2.1 C语言的数据类型分类
2.2.2 整型数据
2.2.3 实型数据
2.2.4 字符型数据
2.3 常量和变量
2.3.1 常量
2.3.2 变量
2.4 运算符和表达式
2.4.1 算术运算符和算术表达式
2.4.2 赋值运算符和赋值表达式
2.4.3 逗号运算符和逗号表达式
2.4.4 数据间的混合运算与类型转换
2.5 小结
2.6 拓展案例
2.7 思考与练习
第3章 顺序结构程序设计及其应用
案例3 编写程序实现两个变量的值的交换
3.1 结构化程序设计的基本概念
3.1.1 结构化程序设计的基本思想
3.1.2 C程序中的基本语句
3.2 数据的输入和输出
3.2.1 格式输出函数
3.2.2 格式输入函数
3.2.3 单个字符的输出和输入函数
3.3 小结
3.4 拓展案例
3.5 思考与练习
第4章 选择结构程序设计及其应用
案例4 百分制转换等级制
4.1 选择结构判定条件的构成
4.1.1 关系运算符和关系表达式
4.1.2 逻辑运算符和逻辑表达式
4.2 单分支和双分支选择结构程序设计
4.2.1 单分支if语句
4.2.2 双分支if…else语句
4.2.3 条件运算符与条件表达式
4.3 多分支选择结构程序设计
4.3.1 嵌套if…else语句
4.3.2 if语句嵌套的不同形式
4.3.3 switch语句
4.4 小结
4.5 拓展案例
4.6 思考与练习
第5章 循环结构程序设计及其应用
案例5 纸的厚度问题
5.1 while语句
5.1.1 while语句的一般格式
5.1.2 while语句的执行过程
5.2 do…while语句
5.2.1 do…while语句的一般格式
5.2.2 do…while语句的执行过程
5.3 for循环语句
5.3.1 for循环语句的一般格式
5.3.2 for循环语句的执行过程
5.3.3 for循环语句的几种形式
5.4 循环的嵌套
5.5 三种循环语句的比较
5.6 break、continue和goto语句
5.6.1 break与continue 语句
5.6.2 goto语句和标号语句
5.7 小结
5.8 拓展案例
5.9 思考与练习
第6章 数组
案例6 求多只鸡的总体重和平均体重
6.1 一维数组
6.1.1 一维数组的定义
6.1.2 一维数组的引用
6.1.3 一维数组的初始化
6.2 二维数组
6.2.1 二维数组的定义
6.2.2 二维数组的引用
6.2.3 二维数组的初始化
6.3 字符数组与字符串
6.3.1 字符数组的定义、引用和初始化
6.3.2 字符串
6.3.3 字符串处理函数
6.4 小结
6.5 拓展案例
6.6 思考与练习
第7章 函数
案例7 设计学生成绩管理系统
7.1 函数的声明及定义
7.1.1 函数的声明
7.1.2 函数的定义
7.1.3 学生成绩管理系统的菜单显示
7.2 函数的调用
7.2.1 函数调用的一般格式
7.2.2 函数调用的方式
7.2.3 函数的形式参数和实际参数
7.2.4 学生成绩管理系统的结构设计
7.3 函数参数的传递
7.3.1 参数的值传递
7.3.2 参数的地址传递
7.4 函数的嵌套和递归
7.4.1 函数的嵌套调用
7.4.2 递归调用和递归函数
7.5 变量的作用域与存储类型
7.5.1 变量的作用域
7.5.2 变量的存储类型
7.6 小结
7.7 拓展案例
7.8 思考与练习
第8章 结构体、共用体和枚举类型
案例8 学生成绩管理系统的实现
8.1 结构体
8.1.1 结构体类型的定义
8.1.2 结构体变量的定义
8.1.3 结构体变量的引用
8.1.4 结构体变量的初始化
8.2 结构体数组
8.2.1 结构体数组的定义
8.2.2 结构体数组的引用
8.2.3 结构体数组的初始化
8.3 结构体和函数参数的传递
8.3.1 结构体变量作为函数参数
8.3.2 结构体数组作为函数参数
8.3.3 函数的返回值是结构体类型变量
8.4 学生成绩管理系统的实现
8.4.1 存储结构设计
8.4.2 录入数据与浏览记录
8.4.3 查询与修改记录
8.5 共用体
8.5.1 共用体变量的定义
8.5.2 共用体变量的引用
8.6 枚举类型
8.6.1 枚举类型的定义
8.6.2 枚举变量的定义
8.7 类型定义
8.7.1 定义基本类型的别名
8.7.2 定义自定义的数据类型的别名
8.7.3 类型定义的步骤
8.8 小结
8.9 拓展案例
8.10 思考与练习
第9章 指针
案例9 学生成绩管理系统的优化
9.1 指针的基本用法
9.1.1 指针的概念
9.1.2 指针变量的定义、初始化和使用
9.1.3 指针变量作为函数参数
9.2 指针与数组
9.2.1 数组的指针和指向数组的指针变量
9.2.2 数组元素的引用
9.2.3 数组名作为函数参数
9.2.4 字符串与指针
9.2.5 指针数组
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.7 思考与练习
第10章 文件
案例10 用文件完善学生成绩管理系统
10.1 文件概述
10.1.1 文件的基础知识
10.1.2 文件的打开和关闭
10.2 文件的读写
10.2.1 文本文件的读写
10.2.2 二进制文件的读写
10.2.3 文本文件的格式化读写
10.2.4 其他读写函数
10.2.5 文件的定位与随机读写
10.3 学生成绩管理系统的数据存取
10.3.1 添加文件存储函数
10.3.2 添加文件装入函数
10.3.3 修改主函数实现数据存取
10.4 小结
10.5 拓展案例
10.6 思考与练习
附 录
附录A ASCII码表
附录B C语言运算符的优先级和结合性
附录C 常用库函数
参考文献