第1章 C语言概述与程序逻辑 1
1.1 C语言概述 1
实例1 C语言简介——简单的C语言应用程序 1
实例2 C语言环境使用介绍——用“*”输出字母“A”形状 3
1.2程序和程序逻辑 6
实例3程序与算法的概念——梵塔推理 7
实例4算法图形描述——求n! 8
1.3课后习题 10
1.3.1实训 10
1.3.2习题 10
第2章 C语言基础知识 12
2.1常量和变量 12
实例5常量和变量——输出常量与变量的值 12
2.2数据类型 15
实例6基本数据类型——输出不同数据类型的值 15
实例7不同数据类型间的转换——强制类型转换练习 18
2.3常用的运算符和表达式 20
实例8运算符及表达式——输出各表达式的结果 21
实例9关系、逻辑运算符和表达式——关系运算和逻辑运算的结果 23
实例10运算符的优先级——复杂表达式的运算结果 25
2.4课后习题 27
2.4.1实训 27
2.4.2习题 27
第3章 基本程序设计 31
3.1顺序结构程序设计 31
实例11字符型数据的输入和输出——顺序输出字符 31
实例12格式化数据的输入和输出——互换两个变量的值 32
3.2选择结构程序设计 38
实例13 if语句——根据条件确定公司是否已经为司机投保 38
实例14 switch语句——计算长方形、圆形和三角形的面积 41
3.3循环结构程序设计 45
实例15 while循环语句——求1+2+…+100的和 45
实例16 for循环语句——统计大写字母和小写字母的个数 46
实例17 do-while循环语句——求1+2+…+100和I2+2 2+…+30 2的值 48
实例18循环的嵌套结构——百钱买百鸡问题 49
3.4课后习题 52
3.4.1实训 52
3.4.2习题 52
第4章 数组 55
4.1一维数组 55
实例19一维数组的定义与引用——平均成绩的统计 55
实例20一维数组的初始化与引用——查询数据中的最大值 58
4.2二维数组 60
实例21二维数组的定义与引用——统计总成绩及平均成绩 60
实例22二维数组的初始化与引用——求矩阵的乘积 63
4.3字符数组与字符串 66
实例23字符数组的定义与引用——字母替换 66
4.4课后习题 70
4.4.1实训 70
4.4.2习题 70
第5章 函数 73
5.1函数的定义与返回值 73
实例24函数的定义与引用——判断当天是该年的第几天 73
5.2函数的调用 76
实例25函数的调用——求两个整数之和 76
实例26函数的参数形式——求1!+2!+3!+…+n!的值 77
5.3函数的嵌套与递归调用 80
实例27函数的嵌套调用——编程计算(1!)2+(2!)2+(3!)2+(4!)2+(5!)2的值 80
实例28函数的递归调用——求n! 81
5.4函数中标识符的作用域与存储类 84
实例29函数中标识符的作用域——初识局部变量与全局变量 85
实例30函数中标识符的存储类——打印1~5的阶乘值 85
5.5宏替换与文件包含 89
实例31不带参数的宏定义——已知半径求周长和面积 89
实例32带参数的宏定义——宏名替换表达式 90
实例33文件包含——计算两个整数绝对值阶乘的差值 92
5.6课后习题 94
5.6.1实训 94
5.6.2习题 94
第6章 指针 98
6.1指针变量的定义与引用 98
实例34指针变量的定义与引用——寻找变量在内存中的“家” 98
6.2一维数组与指针 103
实例35数组名的值和数组元素的地址——按序输出内存中各“家”的地址 103
实例36通过指针引用一维数组元素——本周和下周做值日的同学安排 104
6.3二维数组和指针 107
实例37二维数组名和数组元素的地址——二维数组的成员介绍 108
实例38指针数组和行指针——二维数组与指针 109
6.4函数间参数的传递 114
实例39指针变量作为函数的参数——交换两个变量的值后找出最大值 114
实例40函数之间传递地址——打印杨辉三角 115
实例41指向函数的指针变量——两个数的和值除以差值 117
6.5指针与字符串 120
实例42字符串的存储形式——统计各类字符的个数 121
实例43二维数组存储多个字符串——图书查询系统 123
实例44字符串常用函数的使用——输出你的姓名 124
6.6课后习题 128
6.6.1实训 128
6.6.2习题 128
第7章 结构体和共用体 133
7.1结构体 133
实例45结构体类型变量、指针变量的定义与引用——我的个人信息 133
实例46结构体类型的数组的定义与引用——成绩统计 136
实例47函数之间结构体类型变量的数据传递——输出排序后的姓名和学号 138
7.2链表 141
实例48单向链表的建立——输出5名同学的信息 141
实例49动态链表的建立及常用操作——输出学生的信息 143
实例50链表的操作——学生信息管理系统 145
7.3共用体与枚举类型 152
实例51共用体类型的定义与变量引用——灵活应用存储空间 152
实例52枚举类型——输出给定月份的天数 154
7.4课后习题 157
7.4.1实训 157
7.4.2习题 158
第8章 位运算 162
8.1位运算 162
实例53位运算符与运算功能——两个数的几种位运算 162
8.2位段 167
实例54位段——两个数的位运算 167
8.3课后习题 172
8.3.1实训 172
8.3.2习题 172
第9章 文件 174
9.1文件 174
实例55文件的概念——读/写文件 174
实例56文件的打开与关闭——奇偶数的不同去向 176
实例57文件的读/写——将数据写入文件 180
实例58文件的定位与检测函数——字母定位与逆序输出 184
9.2课后习题 188
9.2.1实训 188
9.2.2习题 188
第10章 综合实训 191
10.1实例1——学生成绩管理系统 191
10.1.1项目实训目的 191
10.1.2系统功能描述 191
10.1.3系统总体设计 192
10.1.4程序实现 195
10.2实例2——电子时钟 208
10.2.1项目实训目的 208
10.2.2系统功能描述 208
10.2.3系统总体设计 208
10.2.4程序实现 211
10.3实例3——俄罗斯方块游戏 216
10.3.1项目实训目的 216
10.3.2系统功能描述 216
10.3.3系统总体设计 217
10.3.4程序实现 220
10.4实训 229
附录 230
附录A 标准ASCII码字符集 230
附录B C语言关键字 232
附录C 常用的C库函数 233
参考文献 238