C 语言是目前最为流行的通用程序设计语言之一,是许多计算机专业人员和计算机爱好者学习程序设计语言的首选。本书共12 章,内容包括C 语言程序设计预备知识,C 语言程序设计基础,基本数据类型、运算符与表达式,基本输入输出和顺序程序设计,选择结构程序设计,循环结构程序设计,数组,函数,指针,预处理命令,复杂数据类型,文件等。
本书注重教材的可读性和实用性,每章开头都给出了学习意义、学习目标及难点提示,对关键知识点进行了详细的说明,并附有大量的图表方便读者正确、直观地对问题进行理解,样例程序由浅入深,强化了知识点、算法、编程方法与技巧,并给出了详细的解释。为了帮助初学者正确地掌握C 语言的语法特点,每章还列举出了初学者在编程过程中常见的错误。另外,本书还配套提供题型丰富的《C 语言程序设计教程(第二版)习题解答与实验指导》教材,为任课教师免费提供电子课件,其中包括全部例题和习题源程序文件。
作者长期在高校从事计算机软件教学,有丰富的教学经验和科研开发能力。本书文字流畅、通俗易懂、概念清楚、深入浅出、例题丰富。
本书为普通高等教育“十一五”国家级规划教材,适合计算机专业的本专科生及研究生使用,也可以作为大学各专业公共教材和全国计算机等级考试参考书。
目录
- 第1章 C语言程序设计预备知识 1
- 1.1 计算机系统组成及工作原理简介 1
- 1.2 进位计数制及其转换 4
- 1.2.1 十进制数的表示 4
- 1.2.2 二进制数、八进制数和十六进制数的表示 4
- 1.2.3 二进制数和十进制数的转换 5
- 1.2.4 二进制数、八进制数和十六进制数的转换 7
- 1.3 机器数的表示形式及其表示范围 8
- 1.3.1 真值与机器数 8
- 1.3.2 数的原码表示 8
- 1.3.3 数的反码表示 9
- 1.3.4 数的补码表示 10
- 1.3.5 补码的加、减运算 11
- 1.3.6 无符号整数 11
- 1.3.7 字符表示法 11
- 1.4 二进制数的位运算 12
- 1.5 本章小结 13
- 习题1 14
- 第2章 C语言程序设计基础 16
- 2.1 程序设计语言的发展及其特点 16
- 2.2 C语言的发展及其特点和应用 18
- 2.3 C语言与C++、Java和C#之间的关系 20
- 2.4 C语言程序的基本结构 21
- 2.5 编制C语言程序的基本步骤 26
- 2.6 本章小结 28
- 习题2 29
- 第3章 基本数据类型、运算符与表达式 31
- 3.1 C语言的数据类型 32
- 3.2 常量、变量和标识符 33
- 3.3 简单数据类型与表示范围 35
- 3.3.1 整型数据 36
- 3.3.2 实型数据 42
- 3.3.3 字符型数据和字符串常量 44
- 3.3.4 简单数据类型的表示范围 47
- 3.3.5 数据的简单输出 49
- 3.4 C语言的运算符与表达式 51
- 3.4.1 赋值运算符、赋值表达式 51
- 3.4.2 强制类型转换符 53
- 3.4.3 算术运算符、算术表达式 55
- 3.4.4 自增自减运算符、负号运算符 56
- 3.4.5 算术运算中数据类型转换规则 58
- 3.4.6 位运算符、位运算表达式 59
- 3.4.7 逗号运算符、逗号表达式 60
- 3.4.8 sizeof运算符、复合赋值运算符 61
- 3.5 运算符的优先级和结合性 62
- 3.6 有符号数与无符号数之间运算问题 62
- 3.7 本章小结及常见错误列举 64
- 习题3 69
- 第4章 基本输入输出和顺序程序设计 73
- 4.1 格式化输出printf 73
- 4.1.1 整数的输出 76
- 4.1.2 实数的输出 80
- 4.1.3 字符和字符串的输出 81
- 4.1.4 格式化输出小结 82
- 4.2 格式化输入scanf 84
- 4.3 字符数据的非格式化输入输出 90
- 4.4 程序的控制结构 93
- 4.4.1 算法的基本概念 93
- 4.4.2 算法的描述方法 95
- 4.4.3 算法的基本结构 97
- 4.5 顺序程序设计举例 99
- 4.6 本章小结及常见错误列举 101
- 习题4 103
- 第5章 选择结构程序设计 107
- 5.1 C语言程序中语句的分类 107
- 5.2 关系运算符、逻辑运算符、条件运算符 109
- 5.2.1 关系运算符和关系表达式 109
- 5.2.2 逻辑运算符和逻辑表达式 110
- 5.2.3 条件运算符和条件表达式 112
- 5.3 选择结构的程序设计 113
- 5.3.1 if语句 114
- 5.3.2 switch语句 118
- 5.4 选择结构程序设计举例 122
- 5.5 本章小结及常见错误列举 128
- 习题5 131
- 第6章 循环结构程序设计 138
- 6.1 循环结构的程序设计 138
- 6.1.1 while语句 139
- 6.1.2 do-while语句 142
- 6.1.3 for语句 143
- 6.1.4 循环嵌套 146
- 6.1.5 break与continue语句 147
- 6.1.6 goto语句 149
- 6.1.7 exit()函数 150
- 6.2 循环结构类型的选择及转换 151
- 6.3 循环结构程序设计举例 153
- 6.4 本章小结及常见错误列举 159
- 习题6 162
- 第7章 数组 169
- 7.1 一维数组 170
- 7.1.1 一维数组的定义和引用 170
- 7.1.2 一维数组的赋值 172
- 7.1.3 一维数组的应用举例 175
- 7.2 二维数组 181
- 7.2.1 二维数组的定义和引用 182
- 7.2.2 二维数组的赋值 183
- 7.2.3 二维数组的应用举例 185
- 7.3 字符串与数组 187
- 7.3.1 字符串的本质 187
- 7.3.2 字符及字符串操作的常用函数 188
- 7.3.3 字符串数组 194
- 7.4 数组综合应用举例 197
- 7.5 本章小结及常见错误列举 200
- 习题7 204
- 第8章 函数 210
- 8.1 函数概述 210
- 8.2 函数的定义与调用 212
- 8.2.1 无参数无返回值的函数 212
- 8.2.2 无参数有返回值的函数 214
- 8.2.3 带参数无返回值的函数 217
- 8.2.4 带参数有返回值的函数 219
- 8.3 函数参数的传递方式 220
- 8.4 变量的作用域和生存期 224
- 8.5 变量的存储类型 229
- 8.6 函数的嵌套和递归调用 234
- 8.6.1 函数的嵌套调用 234
- 8.6.2 函数的递归调用 235
- 8.7 函数的作用域 241
- 8.8 函数封装 242
- 8.9 函数应用综合举例 242
- 8.10 本章小结及常见错误列举 246
- 习题8 250
- 第9章 指针 255
- 9.1 指针与指针变量的概念 255
- 9.2 指针变量的定义和引用 257
- 9.3 指针和地址运算 263
- 9.4 指针与数组 263
- 9.4.1 数组的指针和指向数组的指针变量 264
- 9.4.2 指向多维数组的指针——数组指针 266
- 9.4.3 元素为指针的数组——指针数组 271
- 9.5 指针与字符串 274
- 9.6 指针与动态内存分配 280
- 9.7 多级指针 285
- 9.8 指针作为函数参数 288
- 9.9 指针作为函数的返回值——指针函数 294
- 9.10 指向函数的指针——函数指针 295
- 9.11 带参数的main函数 298
- 9.12 本章小结及常见错误列举 301
- 习题9 306
- 第10章 预处理命令 312
- 10.1 预处理命令简介 312
- 10.2 宏定义 313
- 10.2.1 不带参数的宏定义 313
- 10.2.2 带参数的宏定义 316
- 10.3 文件包含 317
- 10.4 条件编译 319
- 10.5 本章小结及常见错误列举 323
- 习题10 325
- 第11章 复杂数据类型 328
- 11.1 复杂数据类型概述 328
- 11.2 结构体 329
- 11.2.1 结构体类型的定义 329
- 11.2.2 结构体变量的定义和引用 331
- 11.2.3 结构体变量的赋值 334
- 11.2.4 结构体变量内存分配问题透析 337
- 11.2.5 简化结构体类型名 340
- 11.2.6 结构体数组 341
- 11.3 线性链表 344
- 11.4 联合体 350
- 11.4.1 联合体类型的定义 351
- 11.4.2 联合体变量的定义和引用 352
- 11.4.3 联合体变量的赋值 352
- 11.5 位域 356
- 11.6 枚举类型变量的定义和引用 358
- 11.7 复杂数据类型应用综合举例 361
- 11.8 本章小结及常见错误列举 365
- 习题11 369
- 第12章 文件 375
- 12.1 文件的基本概念 375
- 12.2 文件的类别 376
- 12.3 文件操作概述 377
- 12.4 文件指针 378
- 12.5 文件的打开、读写和关闭 378
- 12.5.1 文件的打开与关闭 379
- 12.5.2 文件的读写 380
- 12.5.3 文件读写函数选用原则 392
- 12.6 文件的定位读写 393
- 12.7 文件应用综合举例 396
- 12.8 本章小结及常见错误列举 398
- 习题12 399
- 附录A 常见问题解答 404
- 附录B 常用标准库函数 407
- 附录C C语言的关键字 414
- 附录D 运算符和结合性 415
- 附录E ASCII码 416
- 参考文献 418