C语言是一门基础性的程序设计语言,学习C语言有助于计算机专业的学生更好地学习其他程序设计语言。本书的主要内容包括:C语言程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体、文件、位运算等内容。书中每章都提供了丰富的案例和精心挑选的课后练习题,重点章节还提供了相关实训项目。本书体系结构完整,内容介绍深入浅出,注重理论与实践相结合,每个案例都经过精心调试并配有源代码和运行结果,方便读者学习。
曾昭江,软件设计师,讲师。曾获”蓝桥杯”全国软件大赛广东赛区(Java高职组)优秀指导教师奖,曾参与高职高专人才水平评估中专业剖析与说课等工作。主要担任C语言、Java面向对象程序设计、PHP程序设计、网站建设与管理等课程的教学。并在国家相关刊物发表专业论文多篇,参与科研课题多项,并参与《计算机应用基础》、《数据库原理与应用》精品课程的建设。
目录
第1章 C语言程序设计基础 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.2 算法的概念及描述 3
1.2.1 算法的概念 3
1.2.2 算法的描述 4
1.2.3 常用算法 6
1.3 C语言的发展及特点 7
1.3.1 C语言的发展 7
1.3.2 C语言的特点 7
1.4 C语言程序的基本结构 8
1.4.1 结构化程序设计 8
1.4.2 C语言程序的结构 9
1.5 C语言程序的开发环境 9
1.5.1 在Visual C++ 6.0中开发C语言程序 10
1.5.2 使用Dev C++开发C语言程序 12
1.6 C语言程序举例 14
本章小结 16
习题1 17
第2章 顺序结构程序设计 19
2.1 顺序结构程序举例 19
2.2 数据的表现形式 21
2.2.1 常量和变量 21
2.2.2 C语言中的数据类型 22
2.2.3 整型数据 23
2.2.4 实型数据 25
2.2.5 字符型数据 26
2.2.6 枚举类型数据 28
2.3 运算符和表达式 28
2.3.1 C语言中的运算符 28
2.3.2 算术运算符和算术表达式 29
2.3.3 关系运算符和关系表达式 31
2.3.4 逻辑运算符和逻辑表达式 32
2.3.5 赋值运算符和赋值表达式 34
2.4 C语言中的语句 35
2.4.1 C语言中的语句的分类及作用 35
2.4.2 赋值语句 36
2.5 数据的输入/输出 37
2.5.1 printf()函数输出数据 37
2.5.2 scanf()函数输入数据 39
2.5.3 字符的输入/输出 40
本章小结 41
习题2 42
第3章 选择结构程序设计 45
3.1 选择结构程序举例 45
3.2 选择结构和条件判断 47
3.3 if语句实现选择结构 48
3.3.1 if语句实现选择结构举例 49
3.3.2 简单的if语句结构 51
3.3.3 if-else语句结构 51
3.3.4 if-else-if语句结构 52
3.4 选择结构的嵌套 54
3.4.1 if语句的3种应用 54
3.4.2 if语句的嵌套 55
3.4.3 if语句嵌套的应用 56
3.5 switch语句实现多分支选择结构 57
3.5.1 switch语句的一般形式 58
3.5.2 switch语句的实际应用 59
本章小结 62
习题3 62
第4章 循环结构程序设计 65
4.1 循环结构程序举例 65
4.2 while语句实现循环结构 66
4.3 do-while语句实现循环结构 68
4.4 for语句实现循环结构 70
4.5 几种循环结构的比较 73
4.6 循环结构的嵌套 73
4.7 改变循环执行的状态 74
4.7.1 break语句提前结束整个循环 74
4.7.2 continue语句提前结束本次循环 76
4.7.3 break语句和continue语句的区别 76
本章小结 77
习题4 78
第5章 数组 81
5.1 一维数组的定义、引用和初始化 81
5.1.1 一维数组的定义 81
5.1.2 一维数组的引用 82
5.1.3 一维数组的初始化 84
5.1.4 一维数组程序举例 84
5.2 二维数组的定义、引用和初始化 88
5.2.1 二维数组的定义 88
5.2.2 二维数组的引用 89
5.2.3 二维数组的初始化 90
5.2.4 二维数组程序举例 91
5.3 字符数组的定义、引用和初始化 93
5.3.1 字符数组的定义 93
5.3.2 字符数组的初始化 94
5.3.3 字符数组的引用 95
5.3.4 字符串处理函数 96
5.3.5 字符数组程序举例 101
本章小结 102
习题5 103
第6章 函数 107
6.1 概述 107
6.2 函数的定义 108
6.2.1 无参函数的定义 108
6.2.2 有参函数的定义 109
6.2.3 空函数的定义 109
6.3 函数的参数和返回值 110
6.3.1 形参和实参 110
6.3.2 函数的返回值 111
6.4 函数的调用和声明 114
6.4.1 调用函数的一般形式 114
6.4.2 调用函数的方式 115
6.4.3 函数的声明 116
6.5 函数的嵌套调用 118
*6.6 函数的递归调用 120
*6.7 数组作为函数的参数 124
*6.8 函数中变量的作用域 127
6.8.1 局部变量 127
6.8.2 全局变量 128
本章小结 131
习题6 131
第7章 指针 134
7.1 变量的地址和指针 134
7.2 指针变量的定义和基类型 135
7.3 为指针变量赋值 137
7.3.1 为指针变量赋地址值 137
7.3.2 为指针变量赋其他值 139
7.4 对指针变量的操作 140
7.4.1 指针变量的赋值运算 140
7.4.2 指针变量的算术运算 142
7.4.3 指针变量的关系运算 143
*7.5 函数之间地址值的传递 144
7.5.1 指针变量作为函数的参数 144
7.5.2 指针变量作为函数返回的地址值 146
本章小结 148
习题7 149
第8章 结构体 152
8.1 结构体类型 152
8.2 结构体变量 153
8.2.1 结构体变量的定义 153
8.2.2 结构体变量的引用 155
8.2.3 结构体变量的初始化 156
8.3 结构体数组 157
8.3.1 结构体数组的定义 157
8.3.2 结构体数组的初始化 158
8.3.3 结构体数组的应用 159
本章小结 160
习题8 160
第9章 文件 163
9.1 文件的相关概念 163
9.1.1 文件的分类 163
9.1.2 文件指针变量 163
9.2 文件的打开与关闭 164
9.2.1 文件的打开 164
9.2.2 文件的关闭 164
9.3 文件的顺序读写 165
9.3.1 fputc()函数和fgetc()函数 165
9.3.2 fgets()函数和fputs()函数 167
9.3.3 fprintf()函数和fscanf()函数 168
*9.4 文件的随机读写 169
*9.5 文件操作的出错检测 171
本章小结 171
习题9 171
第10章 位运算 173
10.1 位运算符和位运算 173
10.1.1 按位与运算符 173
10.1.2 按位或运算符 174
10.1.3 按位异或运算符 175
10.1.4 取反运算符 176
10.1.5 左移运算符 177
10.1.6 右移运算符 177
10.1.7 位运算符与赋值运算符组合 178
10.1.8 不同长度的数据进行位运算 178
10.2 位运算程序举例 178
10.3 位段 179
本章小结 182
习题10 182
实训1 顺序结构程序设计 184
实训2 选择结构程序设计 185
实训3 循环结构程序设计 186
实训4 数组的应用 190
实训5 函数的应用 195
实训6 学生成绩管理系统 198
附录A ASCII码表 213
附录B 运算符的优先级与结合性 214
参考文献 216